| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335 |
- //
- // TemplateNameTokenLexicon.swift
- // App for Indeed
- //
- // Per-word vocabulary for AI-invented CV template titles (often camelCase or
- // concatenated English) when no full-string key exists in Localizable.strings.
- //
- import Foundation
- enum TemplateNameTokenLexicon {
- static func lookup(_ token: String, language: AppLanguage) -> String? {
- let trimmed = token.trimmingCharacters(in: .whitespacesAndNewlines)
- guard !trimmed.isEmpty else { return nil }
- let table = table(for: language)
- for candidate in lookupCandidates(for: trimmed) {
- if let hit = table[candidate] { return hit }
- }
- return nil
- }
- /// English key plus common inflections (plurals, -ics, etc.) used in AI titles.
- private static func lookupCandidates(for token: String) -> [String] {
- var seen = Set<String>()
- var results: [String] = []
- func append(_ value: String) {
- let v = value.trimmingCharacters(in: .whitespacesAndNewlines)
- guard !v.isEmpty, seen.insert(v).inserted else { return }
- results.append(v)
- }
- append(token)
- append(token.capitalized)
- append(normalizedKey(token))
- let key = normalizedKey(token)
- if key.hasSuffix("ies"), key.count > 4 {
- append(String(key.dropLast(3)) + "y")
- }
- if key.hasSuffix("ics"), key.count > 4 {
- append(String(key.dropLast(1)))
- }
- if key.hasSuffix("ions"), key.count > 5 {
- append(String(key.dropLast(1)))
- append(String(key.dropLast(3)) + "ion")
- }
- if key.hasSuffix("ness"), key.count > 5 {
- append(String(key.dropLast(4)))
- }
- if key.hasSuffix("ity"), key.count > 4 {
- append(String(key.dropLast(3)) + "e")
- append(String(key.dropLast(3)) + "y")
- }
- if key.hasSuffix("es"), key.count > 3 {
- append(String(key.dropLast(2)))
- append(String(key.dropLast(1)))
- }
- if key.hasSuffix("s"), key.count > 2, !key.hasSuffix("ss") {
- append(String(key.dropLast(1)))
- }
- return results
- }
- private static func normalizedKey(_ token: String) -> String {
- token.prefix(1).uppercased() + token.dropFirst().lowercased()
- }
- private static func table(for language: AppLanguage) -> [String: String] {
- switch language {
- case .english:
- return [:]
- case .chineseSimplified:
- return zhHans
- case .chineseTraditional:
- return zhHant
- case .arabic:
- return ar
- case .german:
- return de
- case .french, .frenchCanada:
- return fr
- case .swedish:
- return sv
- }
- }
- static let zhHans: [String: String] = buildTable(\.zhHans)
- static let zhHant: [String: String] = buildTable(\.zhHant)
- static let ar: [String: String] = buildTable(\.ar)
- static let de: [String: String] = buildTable(\.de)
- static let fr: [String: String] = buildTable(\.fr)
- static let sv: [String: String] = buildTable(\.sv)
- }
- // MARK: - Master vocabulary (one row per English token, all locales)
- private struct TemplateNameTokenRow {
- let key: String
- let zhHans: String
- let zhHant: String
- let de: String
- let fr: String
- let sv: String
- let ar: String
- }
- private let templateNameTokenRows: [TemplateNameTokenRow] = [
- .init(key: "AI", zhHans: "人工智能", zhHant: "人工智慧", de: "KI", fr: "IA", sv: "AI", ar: "ذكاء اصطناعي"),
- .init(key: "ATS", zhHans: "ATS", zhHant: "ATS", de: "ATS", fr: "ATS", sv: "ATS", ar: "ATS"),
- .init(key: "Aesthetic", zhHans: "美学", zhHant: "美學", de: "Ästhetik", fr: "Esthétique", sv: "Estetik", ar: "جمالي"),
- .init(key: "Aesthetics", zhHans: "美学", zhHant: "美學", de: "Ästhetik", fr: "Esthétique", sv: "Estetik", ar: "جماليات"),
- .init(key: "Airy", zhHans: "通透", zhHant: "通透", de: "Luftig", fr: "Aérien", sv: "Luftig", ar: "خفيف"),
- .init(key: "Apex", zhHans: "巅峰", zhHant: "巔峰", de: "Spitze", fr: "Sommet", sv: "Topp", ar: "قمة"),
- .init(key: "Arc", zhHans: "弧线", zhHant: "弧線", de: "Bogen", fr: "Arc", sv: "Båge", ar: "قوس"),
- .init(key: "Artistic", zhHans: "艺术", zhHant: "藝術", de: "Künstlerisch", fr: "Artistique", sv: "Konstnärlig", ar: "فني"),
- .init(key: "Atlas", zhHans: "地图", zhHant: "地圖", de: "Atlas", fr: "Atlas", sv: "Atlas", ar: "أطلس"),
- .init(key: "Axis", zhHans: "轴线", zhHant: "軸線", de: "Achse", fr: "Axe", sv: "Axel", ar: "محور"),
- .init(key: "Balance", zhHans: "平衡", zhHant: "平衡", de: "Balance", fr: "Équilibre", sv: "Balans", ar: "توازن"),
- .init(key: "Beacon", zhHans: "灯塔", zhHant: "燈塔", de: "Leuchtfeuer", fr: "Phare", sv: "Fyr", ar: "منارة"),
- .init(key: "Blueprint", zhHans: "蓝图", zhHant: "藍圖", de: "Bauplan", fr: "Plan", sv: "Ritning", ar: "مخطط"),
- .init(key: "Bloom", zhHans: "绽放", zhHant: "綻放", de: "Blüte", fr: "Floraison", sv: "Blomning", ar: "ازدهار"),
- .init(key: "Blue", zhHans: "蓝", zhHant: "藍", de: "Blau", fr: "Bleu", sv: "Blå", ar: "أزرق"),
- .init(key: "Bold", zhHans: "大胆", zhHant: "大膽", de: "Mutig", fr: "Audacieux", sv: "Djärv", ar: "جريء"),
- .init(key: "Brilliance", zhHans: "光彩", zhHant: "光彩", de: "Glanz", fr: "Éclat", sv: "Glans", ar: "تألق"),
- .init(key: "Briefing", zhHans: "简报", zhHant: "簡報", de: "Kurzüberblick", fr: "Synthèse", sv: "Sammanfattning", ar: "موجز"),
- .init(key: "Bright", zhHans: "明亮", zhHant: "明亮", de: "Hell", fr: "Lumineux", sv: "Ljus", ar: "مشرق"),
- .init(key: "Canvas", zhHans: "画布", zhHant: "畫布", de: "Leinwand", fr: "Toile", sv: "Duk", ar: "لوحة"),
- .init(key: "Cascade", zhHans: "层叠", zhHant: "層疊", de: "Kaskade", fr: "Cascade", sv: "Kaskad", ar: "تتالي"),
- .init(key: "Chairman", zhHans: "主席", zhHant: "主席", de: "Vorsitzender", fr: "Président", sv: "Ordförande", ar: "رئيس"),
- .init(key: "Charter", zhHans: "宪章", zhHant: "憲章", de: "Charta", fr: "Charte", sv: "Stadga", ar: "ميثاق"),
- .init(key: "Chronicle", zhHans: "纪事", zhHant: "紀事", de: "Chronik", fr: "Chronique", sv: "Krönika", ar: "سجل"),
- .init(key: "Circuit", zhHans: "电路", zhHant: "電路", de: "Schaltung", fr: "Circuit", sv: "Krets", ar: "دائرة"),
- .init(key: "Clarity", zhHans: "明晰", zhHant: "明晰", de: "Klarheit", fr: "Clarté", sv: "Klarhet", ar: "وضوح"),
- .init(key: "Clean", zhHans: "洁净", zhHant: "潔淨", de: "Sauber", fr: "Propre", sv: "Ren", ar: "نظيف"),
- .init(key: "Clear", zhHans: "清晰", zhHant: "清晰", de: "Klar", fr: "Clair", sv: "Klar", ar: "واضح"),
- .init(key: "Compass", zhHans: "罗盘", zhHant: "羅盤", de: "Kompass", fr: "Boussole", sv: "Kompass", ar: "بوصلة"),
- .init(key: "Conduit", zhHans: "管道", zhHant: "管道", de: "Leitung", fr: "Conduit", sv: "Ledning", ar: "قناة"),
- .init(key: "Core", zhHans: "核心", zhHant: "核心", de: "Kern", fr: "Noyau", sv: "Kärna", ar: "جوهر"),
- .init(key: "Corporate", zhHans: "企业", zhHant: "企業", de: "Unternehmen", fr: "Entreprise", sv: "Företag", ar: "مؤسسي"),
- .init(key: "Craft", zhHans: "工艺", zhHant: "工藝", de: "Handwerk", fr: "Artisanat", sv: "Hantverk", ar: "حرفة"),
- .init(key: "Crisp", zhHans: "清爽", zhHant: "清爽", de: "Knackig", fr: "Net", sv: "Skarp", ar: "حاد"),
- .init(key: "Creative", zhHans: "创意", zhHant: "創意", de: "Kreativ", fr: "Créatif", sv: "Kreativ", ar: "إبداعي"),
- .init(key: "Crest", zhHans: "峰顶", zhHant: "峰頂", de: "Kamm", fr: "Crête", sv: "Kam", ar: "قمة"),
- .init(key: "Design", zhHans: "设计", zhHant: "設計", de: "Design", fr: "Design", sv: "Design", ar: "تصميم"),
- .init(key: "Dimension", zhHans: "维度", zhHant: "維度", de: "Dimension", fr: "Dimension", sv: "Dimension", ar: "بعد"),
- .init(key: "Docket", zhHans: "待办", zhHant: "待辦", de: "Dokument", fr: "Rôle", sv: "Diarium", ar: "سجل"),
- .init(key: "Driven", zhHans: "驱动", zhHant: "驅動", de: "Orientiert", fr: "Orienté", sv: "Driven", ar: "موجه"),
- .init(key: "Dynamic", zhHans: "动态", zhHant: "動態", de: "Dynamisch", fr: "Dynamique", sv: "Dynamisk", ar: "ديناميكي"),
- .init(key: "Dynamo", zhHans: "动力", zhHant: "動力", de: "Dynamik", fr: "Dynamique", sv: "Dynamik", ar: "ديناميكي"),
- .init(key: "Echo", zhHans: "回音", zhHant: "回音", de: "Echo", fr: "Écho", sv: "Eko", ar: "صدى"),
- .init(key: "Edge", zhHans: "边缘", zhHant: "邊緣", de: "Kante", fr: "Bord", sv: "Kant", ar: "حافة"),
- .init(key: "Effortless", zhHans: "轻松", zhHant: "輕鬆", de: "Mühelos", fr: "Sans effort", sv: "Ansträngningslös", ar: "بلا جهد"),
- .init(key: "Elegance", zhHans: "优雅", zhHant: "優雅", de: "Eleganz", fr: "Élégance", sv: "Elegans", ar: "أناقة"),
- .init(key: "Element", zhHans: "元素", zhHant: "元素", de: "Element", fr: "Élément", sv: "Element", ar: "عنصر"),
- .init(key: "Elevate", zhHans: "提升", zhHant: "提升", de: "Erheben", fr: "Élever", sv: "Lyft", ar: "رفع"),
- .init(key: "Elite", zhHans: "精英", zhHant: "精英", de: "Elite", fr: "Élite", sv: "Elit", ar: "نخبة"),
- .init(key: "Ember", zhHans: "余烬", zhHant: "餘燼", de: "Glut", fr: "Braise", sv: "Glöd", ar: "جمر"),
- .init(key: "Essence", zhHans: "本质", zhHant: "本質", de: "Essenz", fr: "Essence", sv: "Essens", ar: "جوهر"),
- .init(key: "Estate", zhHans: "庄园", zhHant: "莊園", de: "Anwesen", fr: "Domaine", sv: "Egendom", ar: "عقار"),
- .init(key: "Executive", zhHans: "高管", zhHant: "高階", de: "Führungskraft", fr: "Cadre", sv: "Chefsnivå", ar: "تنفيذي"),
- .init(key: "Expression", zhHans: "表达", zhHant: "表達", de: "Ausdruck", fr: "Expression", sv: "Uttryck", ar: "تعبير"),
- .init(key: "Expressions", zhHans: "表达", zhHant: "表達", de: "Ausdruck", fr: "Expressions", sv: "Uttryck", ar: "تعبيرات"),
- .init(key: "Facet", zhHans: "刻面", zhHant: "刻面", de: "Facette", fr: "Facette", sv: "Facett", ar: "وجه"),
- .init(key: "Focus", zhHans: "聚焦", zhHant: "聚焦", de: "Fokus", fr: "Focus", sv: "Fokus", ar: "تركيز"),
- .init(key: "Focused", zhHans: "专注", zhHant: "專注", de: "Fokussiert", fr: "Ciblé", sv: "Fokuserad", ar: "مركّز"),
- .init(key: "Forge", zhHans: "锻造", zhHant: "鍛造", de: "Schmiede", fr: "Forge", sv: "Smedja", ar: "حدادة"),
- .init(key: "Form", zhHans: "形态", zhHant: "形態", de: "Form", fr: "Forme", sv: "Form", ar: "شكل"),
- .init(key: "Format", zhHans: "格式", zhHant: "格式", de: "Format", fr: "Format", sv: "Format", ar: "تنسيق"),
- .init(key: "Forward", zhHans: "前瞻", zhHant: "前瞻", de: "Voraus", fr: "Avant", sv: "Framåt", ar: "مستقبلي"),
- .init(key: "Foundation", zhHans: "基础", zhHant: "基礎", de: "Fundament", fr: "Fondation", sv: "Grund", ar: "أساس"),
- .init(key: "Frame", zhHans: "框架", zhHant: "框架", de: "Rahmen", fr: "Cadre", sv: "Ram", ar: "إطار"),
- .init(key: "Frontier", zhHans: "前沿", zhHant: "前沿", de: "Grenze", fr: "Frontière", sv: "Gräns", ar: "حدود"),
- .init(key: "Fusion", zhHans: "融合", zhHant: "融合", de: "Fusion", fr: "Fusion", sv: "Fusion", ar: "دمج"),
- .init(key: "Future", zhHans: "未来", zhHant: "未來", de: "Zukunft", fr: "Futur", sv: "Framtid", ar: "مستقبل"),
- .init(key: "Gallery", zhHans: "画廊", zhHant: "畫廊", de: "Galerie", fr: "Galerie", sv: "Galleri", ar: "معرض"),
- .init(key: "Genesis", zhHans: "起源", zhHant: "起源", de: "Genesis", fr: "Genèse", sv: "Genesis", ar: "بداية"),
- .init(key: "Grace", zhHans: "优雅", zhHant: "優雅", de: "Anmut", fr: "Grâce", sv: "Grace", ar: "رشاقة"),
- .init(key: "Graceful", zhHans: "雅致", zhHant: "雅致", de: "Anmutig", fr: "Gracieux", sv: "Graciös", ar: "أنيق"),
- .init(key: "Gradient", zhHans: "渐变", zhHant: "漸變", de: "Verlauf", fr: "Dégradé", sv: "Gradient", ar: "تدرج"),
- .init(key: "Grid", zhHans: "网格", zhHant: "網格", de: "Gitter", fr: "Grille", sv: "Rutnät", ar: "شبكة"),
- .init(key: "Harmony", zhHans: "和谐", zhHant: "和諧", de: "Harmonie", fr: "Harmonie", sv: "Harmoni", ar: "انسجام"),
- .init(key: "Harbor", zhHans: "港湾", zhHant: "港灣", de: "Hafen", fr: "Havre", sv: "Hamn", ar: "ميناء"),
- .init(key: "Heritage", zhHans: "传承", zhHant: "傳承", de: "Erbe", fr: "Héritage", sv: "Arv", ar: "تراث"),
- .init(key: "Horizon", zhHans: "地平线", zhHant: "地平線", de: "Horizont", fr: "Horizon", sv: "Horisont", ar: "أفق"),
- .init(key: "Icon", zhHans: "标志", zhHant: "標誌", de: "Ikone", fr: "Icône", sv: "Ikon", ar: "أيقونة"),
- .init(key: "Iconic", zhHans: "经典", zhHant: "經典", de: "Ikonisch", fr: "Iconique", sv: "Ikonisk", ar: "أيقوني"),
- .init(key: "Identity", zhHans: "身份", zhHant: "身份", de: "Identität", fr: "Identité", sv: "Identitet", ar: "هوية"),
- .init(key: "Impact", zhHans: "影响", zhHant: "影響", de: "Wirkung", fr: "Impact", sv: "Effekt", ar: "تأثير"),
- .init(key: "Imprint", zhHans: "印记", zhHant: "印記", de: "Prägung", fr: "Empreinte", sv: "Avtryck", ar: "بصمة"),
- .init(key: "Insight", zhHans: "洞察", zhHant: "洞察", de: "Einblick", fr: "Perspicacité", sv: "Insikt", ar: "بصيرة"),
- .init(key: "Inspire", zhHans: "启发", zhHant: "啟發", de: "Inspiration", fr: "Inspirer", sv: "Inspirera", ar: "إلهام"),
- .init(key: "Inspired", zhHans: "灵感", zhHant: "靈感", de: "Inspiriert", fr: "Inspiré", sv: "Inspirerad", ar: "ملهم"),
- .init(key: "Innovate", zhHans: "创新", zhHant: "創新", de: "Innovation", fr: "Innovation", sv: "Innovation", ar: "ابتكار"),
- .init(key: "Journey", zhHans: "旅程", zhHant: "旅程", de: "Reise", fr: "Parcours", sv: "Resa", ar: "رحلة"),
- .init(key: "Keystone", zhHans: "基石", zhHant: "基石", de: "Schlüsselstein", fr: "Clé de voûte", sv: "Hörnsten", ar: "حجر الزاوية"),
- .init(key: "Kite", zhHans: "风筝", zhHant: "風箏", de: "Drachen", fr: "Cerf-volant", sv: "Drake", ar: "طائرة ورقية"),
- .init(key: "Landmark", zhHans: "地标", zhHant: "地標", de: "Wahrzeichen", fr: "Repère", sv: "Landmärke", ar: "معلم"),
- .init(key: "Lattice", zhHans: "格栅", zhHant: "格柵", de: "Gitter", fr: "Treillis", sv: "Galler", ar: "شبكة"),
- .init(key: "Lead", zhHans: "引领", zhHant: "引領", de: "Führung", fr: "Conduite", sv: "Ledarskap", ar: "قيادة"),
- .init(key: "Leadership", zhHans: "领导力", zhHant: "領導力", de: "Führung", fr: "Leadership", sv: "Ledarskap", ar: "قيادة"),
- .init(key: "Legacy", zhHans: "传承", zhHant: "傳承", de: "Vermächtnis", fr: "Héritage", sv: "Arv", ar: "إرث"),
- .init(key: "Ledger", zhHans: "账本", zhHant: "帳本", de: "Hauptbuch", fr: "Registre", sv: "Huvudbok", ar: "دفتر"),
- .init(key: "Lens", zhHans: "镜头", zhHant: "鏡頭", de: "Linse", fr: "Objectif", sv: "Lins", ar: "عدسة"),
- .init(key: "Linea", zhHans: "线条", zhHant: "線條", de: "Linie", fr: "Ligne", sv: "Linje", ar: "خط"),
- .init(key: "Linear", zhHans: "线性", zhHant: "線性", de: "Linear", fr: "Linéaire", sv: "Linjär", ar: "خطي"),
- .init(key: "Lumen", zhHans: "光度", zhHant: "光度", de: "Lumen", fr: "Lumen", sv: "Lumen", ar: "لومن"),
- .init(key: "Luminous", zhHans: "明亮", zhHant: "明亮", de: "Leuchtend", fr: "Lumineux", sv: "Lysande", ar: "مضيء"),
- .init(key: "Marigold", zhHans: "金盏花", zhHant: "金盞花", de: "Ringelblume", fr: "Souci", sv: "Ringblomma", ar: "آذريون"),
- .init(key: "Mastery", zhHans: "精通", zhHant: "精通", de: "Meisterschaft", fr: "Maîtrise", sv: "Mästerskap", ar: "إتقان"),
- .init(key: "Matrix", zhHans: "矩阵", zhHant: "矩陣", de: "Matrix", fr: "Matrice", sv: "Matris", ar: "مصفوفة"),
- .init(key: "Meridian", zhHans: "子午", zhHant: "子午", de: "Meridian", fr: "Méridien", sv: "Meridian", ar: "خط الزوال"),
- .init(key: "Mesh", zhHans: "网状", zhHant: "網狀", de: "Netz", fr: "Maillage", sv: "Nät", ar: "شبكة"),
- .init(key: "Minimal", zhHans: "简约", zhHant: "簡約", de: "Minimal", fr: "Minimaliste", sv: "Minimal", ar: "بسيط"),
- .init(key: "Modern", zhHans: "现代", zhHant: "現代", de: "Modern", fr: "Moderne", sv: "Modern", ar: "عصري"),
- .init(key: "Momentum", zhHans: "动能", zhHant: "動能", de: "Schwung", fr: "Élan", sv: "Momentum", ar: "زخم"),
- .init(key: "Mono", zhHans: "单色", zhHant: "單色", de: "Einfarbig", fr: "Monochrome", sv: "Monokrom", ar: "أحادي"),
- .init(key: "Monarch", zhHans: "君主", zhHant: "君主", de: "Monarch", fr: "Monarque", sv: "Monark", ar: "ملك"),
- .init(key: "Mosaic", zhHans: "马赛克", zhHant: "馬賽克", de: "Mosaik", fr: "Mosaïque", sv: "Mosaik", ar: "فسيفساء"),
- .init(key: "Motion", zhHans: "动感", zhHant: "動感", de: "Bewegung", fr: "Mouvement", sv: "Rörelse", ar: "حركة"),
- .init(key: "Narrative", zhHans: "叙事", zhHant: "敘事", de: "Erzählung", fr: "Récit", sv: "Berättelse", ar: "سرد"),
- .init(key: "Native", zhHans: "原生", zhHant: "原生", de: "Nativ", fr: "Natif", sv: "Nativ", ar: "أصلي"),
- .init(key: "Nexus", zhHans: "枢纽", zhHant: "樞紐", de: "Nexus", fr: "Nexus", sv: "Nexus", ar: "رابط"),
- .init(key: "Noble", zhHans: "尊贵", zhHant: "尊貴", de: "Edel", fr: "Noble", sv: "Ädel", ar: "نبيل"),
- .init(key: "North", zhHans: "北方", zhHant: "北方", de: "Norden", fr: "Nord", sv: "Norr", ar: "شمال"),
- .init(key: "Nova", zhHans: "新星", zhHant: "新星", de: "Nova", fr: "Nova", sv: "Nova", ar: "نجم"),
- .init(key: "Ocean", zhHans: "海洋", zhHant: "海洋", de: "Ozean", fr: "Océan", sv: "Ocean", ar: "محيط"),
- .init(key: "Oasis", zhHans: "绿洲", zhHant: "綠洲", de: "Oase", fr: "Oasis", sv: "Oas", ar: "واحة"),
- .init(key: "Opus", zhHans: "作品", zhHant: "作品", de: "Opus", fr: "Opus", sv: "Opus", ar: "opus"),
- .init(key: "Orbit", zhHans: "轨道", zhHant: "軌道", de: "Orbit", fr: "Orbite", sv: "Omloppsbana", ar: "مدار"),
- .init(key: "Origin", zhHans: "起源", zhHant: "起源", de: "Ursprung", fr: "Origine", sv: "Ursprung", ar: "أصل"),
- .init(key: "Outline", zhHans: "轮廓", zhHant: "輪廓", de: "Umriss", fr: "Contour", sv: "Kontur", ar: "مخطط"),
- .init(key: "Palette", zhHans: "调色", zhHant: "調色", de: "Palette", fr: "Palette", sv: "Palett", ar: "لوحة"),
- .init(key: "Path", zhHans: "路径", zhHant: "路徑", de: "Pfad", fr: "Chemin", sv: "Väg", ar: "مسار"),
- .init(key: "Peak", zhHans: "峰", zhHant: "峰", de: "Gipfel", fr: "Sommet", sv: "Topp", ar: "قمة"),
- .init(key: "Performance", zhHans: "绩效", zhHant: "績效", de: "Leistung", fr: "Performance", sv: "Prestation", ar: "أداء"),
- .init(key: "Pinnacle", zhHans: "巅峰", zhHant: "巔峰", de: "Gipfel", fr: "Apogée", sv: "Topp", ar: "ذروة"),
- .init(key: "Pioneer", zhHans: "先锋", zhHant: "先鋒", de: "Pionier", fr: "Pionnier", sv: "Pionjär", ar: "رائد"),
- .init(key: "Pixel", zhHans: "像素", zhHant: "像素", de: "Pixel", fr: "Pixel", sv: "Pixel", ar: "بكسل"),
- .init(key: "Pinstripe", zhHans: "细条纹", zhHant: "細條紋", de: "Nadelstreifen", fr: "Rayures fines", sv: "Smala ränder", ar: "خطوط"),
- .init(key: "Poise", zhHans: "从容", zhHant: "從容", de: "Haltung", fr: "Assurance", sv: "Balans", ar: "اتزان"),
- .init(key: "Portrait", zhHans: "肖像", zhHant: "肖像", de: "Porträt", fr: "Portrait", sv: "Porträtt", ar: "صورة"),
- .init(key: "Prelude", zhHans: "序章", zhHant: "序章", de: "Präludium", fr: "Prélude", sv: "Preludium", ar: "مقدمة"),
- .init(key: "Prestige", zhHans: "声望", zhHant: "聲望", de: "Prestige", fr: "Prestige", sv: "Prestige", ar: "هيبة"),
- .init(key: "Principal", zhHans: "首席", zhHant: "首席", de: "Leitend", fr: "Principal", sv: "Ledande", ar: "رئيسي"),
- .init(key: "Prime", zhHans: "首要", zhHant: "首要", de: "Prime", fr: "Premier", sv: "Prim", ar: "أول"),
- .init(key: "Prism", zhHans: "棱镜", zhHant: "稜鏡", de: "Prisma", fr: "Prisme", sv: "Prisma", ar: "منشور"),
- .init(key: "Professional", zhHans: "专业", zhHant: "專業", de: "Professionell", fr: "Professionnel", sv: "Professionell", ar: "احترافي"),
- .init(key: "Profile", zhHans: "档案", zhHant: "檔案", de: "Profil", fr: "Profil", sv: "Profil", ar: "ملف"),
- .init(key: "Progress", zhHans: "进步", zhHant: "進步", de: "Fortschritt", fr: "Progrès", sv: "Framsteg", ar: "تقدم"),
- .init(key: "Pulse", zhHans: "脉动", zhHant: "脈動", de: "Puls", fr: "Pulsation", sv: "Puls", ar: "نبض"),
- .init(key: "Pure", zhHans: "纯净", zhHant: "純淨", de: "Rein", fr: "Pur", sv: "Ren", ar: "نقي"),
- .init(key: "Quantum", zhHans: "量子", zhHant: "量子", de: "Quantum", fr: "Quantum", sv: "Quantum", ar: "كم"),
- .init(key: "Quest", zhHans: "探索", zhHant: "探索", de: "Quest", fr: "Quête", sv: "Quest", ar: "رحلة"),
- .init(key: "Quorum", zhHans: "法定人数", zhHant: "法定人數", de: "Quorum", fr: "Quorum", sv: "Kvorum", ar: "نصاب"),
- .init(key: "Radiance", zhHans: "光辉", zhHant: "光輝", de: "Glanz", fr: "Éclat", sv: "Glans", ar: "إشراق"),
- .init(key: "Realm", zhHans: "领域", zhHant: "領域", de: "Reich", fr: "Royaume", sv: "Rike", ar: "مجال"),
- .init(key: "Refined", zhHans: "精致", zhHant: "精緻", de: "Verfeinert", fr: "Raffiné", sv: "Förfinad", ar: "مُنقّى"),
- .init(key: "Reflection", zhHans: "映像", zhHant: "映像", de: "Reflexion", fr: "Réflexion", sv: "Reflektion", ar: "انعكاس"),
- .init(key: "Regent", zhHans: "摄政", zhHant: "攝政", de: "Regent", fr: "Régent", sv: "Ställföreträdare", ar: "وصي"),
- .init(key: "Resonance", zhHans: "共鸣", zhHant: "共鳴", de: "Resonanz", fr: "Résonance", sv: "Resonans", ar: "صدى"),
- .init(key: "Rhythm", zhHans: "韵律", zhHant: "韻律", de: "Rhythmus", fr: "Rythme", sv: "Rytm", ar: "إيقاع"),
- .init(key: "Rise", zhHans: "崛起", zhHant: "崛起", de: "Aufstieg", fr: "Ascension", sv: "Uppgång", ar: "صعود"),
- .init(key: "River", zhHans: "河", zhHant: "河", de: "Fluss", fr: "Rivière", sv: "Flod", ar: "نهر"),
- .init(key: "Sculptor", zhHans: "雕刻", zhHant: "雕刻", de: "Bildhauer", fr: "Sculpteur", sv: "Bildhuggare", ar: "نحات"),
- .init(key: "Serene", zhHans: "宁静", zhHant: "寧靜", de: "Gelassen", fr: "Serein", sv: "Lugn", ar: "هادئ"),
- .init(key: "Serenity", zhHans: "宁静", zhHant: "寧靜", de: "Gelassenheit", fr: "Sérénité", sv: "Lugn", ar: "سكينة"),
- .init(key: "Shape", zhHans: "形态", zhHant: "形態", de: "Form", fr: "Forme", sv: "Form", ar: "شكل"),
- .init(key: "Sharp", zhHans: "锐利", zhHant: "銳利", de: "Scharf", fr: "Net", sv: "Skarp", ar: "حاد"),
- .init(key: "Shift", zhHans: "转换", zhHant: "轉換", de: "Wandel", fr: "Shift", sv: "Skift", ar: "تحول"),
- .init(key: "Signature", zhHans: "签名", zhHant: "簽名", de: "Signatur", fr: "Signature", sv: "Signatur", ar: "توقيع"),
- .init(key: "Silhouette", zhHans: "剪影", zhHant: "剪影", de: "Silhouette", fr: "Silhouette", sv: "Silhuett", ar: "silhouette"),
- .init(key: "Simplicity", zhHans: "简约", zhHant: "簡約", de: "Einfachheit", fr: "Simplicité", sv: "Enkelhet", ar: "بساطة"),
- .init(key: "Slate", zhHans: "石板", zhHant: "石板", de: "Schiefer", fr: "Ardoise", sv: "Skiffer", ar: "لوح"),
- .init(key: "Sleek", zhHans: "流畅", zhHant: "流暢", de: "Schlank", fr: "Élégant", sv: "Slank", ar: "أنيق"),
- .init(key: "Skyline", zhHans: "天际", zhHant: "天際", de: "Skyline", fr: "Horizon urbain", sv: "Silhuett", ar: "أفق"),
- .init(key: "Spark", zhHans: "火花", zhHant: "火花", de: "Funke", fr: "Étincelle", sv: "Gnista", ar: "شرارة"),
- .init(key: "Spectrum", zhHans: "光谱", zhHant: "光譜", de: "Spektrum", fr: "Spectre", sv: "Spektrum", ar: "طيف"),
- .init(key: "Spirit", zhHans: "精神", zhHant: "精神", de: "Geist", fr: "Esprit", sv: "Ande", ar: "روح"),
- .init(key: "Spotlight", zhHans: "聚光", zhHant: "聚光", de: "Rampenlicht", fr: "Projecteur", sv: "Rampljus", ar: "spotlight"),
- .init(key: "Sterling", zhHans: "纯正", zhHant: "純正", de: "Erstklassig", fr: "Excellence", sv: "Förstklassig", ar: "ممتاز"),
- .init(key: "Stone", zhHans: "石", zhHant: "石", de: "Stein", fr: "Pierre", sv: "Sten", ar: "حجر"),
- .init(key: "Story", zhHans: "故事", zhHant: "故事", de: "Story", fr: "Histoire", sv: "Berättelse", ar: "قصة"),
- .init(key: "Strategic", zhHans: "战略", zhHant: "戰略", de: "Strategisch", fr: "Stratégique", sv: "Strategisk", ar: "استراتيجي"),
- .init(key: "Stream", zhHans: "流线", zhHant: "流線", de: "Strom", fr: "Flux", sv: "Ström", ar: "تيار"),
- .init(key: "Structure", zhHans: "结构", zhHant: "結構", de: "Struktur", fr: "Structure", sv: "Struktur", ar: "هيكل"),
- .init(key: "Studio", zhHans: "工作室", zhHant: "工作室", de: "Atelier", fr: "Atelier", sv: "Ateljé", ar: "استوديو"),
- .init(key: "Style", zhHans: "风格", zhHant: "風格", de: "Stil", fr: "Style", sv: "Stil", ar: "أسلوب"),
- .init(key: "Styled", zhHans: "风格化", zhHant: "風格化", de: "Gestylt", fr: "Stylisé", sv: "Stylad", ar: "منسق"),
- .init(key: "Summit", zhHans: "顶峰", zhHant: "頂峰", de: "Gipfel", fr: "Sommet", sv: "Topp", ar: "قمة"),
- .init(key: "Surge", zhHans: "浪潮", zhHant: "浪潮", de: "Schub", fr: "Impulsion", sv: "Våg", ar: "موجة"),
- .init(key: "Swiss", zhHans: "瑞士", zhHant: "瑞士", de: "Schweizer", fr: "Suisse", sv: "Schweizisk", ar: "سويسري"),
- .init(key: "Swift", zhHans: "迅捷", zhHant: "迅捷", de: "Schnell", fr: "Rapide", sv: "Snabb", ar: "سريع"),
- .init(key: "Synergy", zhHans: "协同", zhHant: "協同", de: "Synergie", fr: "Synergie", sv: "Synergi", ar: "تآزر"),
- .init(key: "Tabular", zhHans: "表格", zhHant: "表格", de: "Tabellarisch", fr: "Tabulaire", sv: "Tabellformad", ar: "جدولي"),
- .init(key: "Tapestry", zhHans: "织锦", zhHant: "織錦", de: "Tapisserie", fr: "Tapisserie", sv: "Tapet", ar: "نسيج"),
- .init(key: "Tempo", zhHans: "节奏", zhHant: "節奏", de: "Tempo", fr: "Tempo", sv: "Tempo", ar: "إيقاع"),
- .init(key: "Tone", zhHans: "色调", zhHant: "色調", de: "Ton", fr: "Ton", sv: "Ton", ar: "نبرة"),
- .init(key: "Trail", zhHans: "轨迹", zhHant: "軌跡", de: "Pfad", fr: "Piste", sv: "Stig", ar: "مسار"),
- .init(key: "Triumph", zhHans: "凯旋", zhHant: "凱旋", de: "Triumph", fr: "Triomphe", sv: "Triumf", ar: "انتصار"),
- .init(key: "True", zhHans: "真实", zhHant: "真實", de: "Wahr", fr: "Vrai", sv: "Sann", ar: "حقيقي"),
- .init(key: "Trust", zhHans: "信任", zhHant: "信任", de: "Vertrauen", fr: "Confiance", sv: "Förtroende", ar: "ثقة"),
- .init(key: "UI", zhHans: "界面", zhHant: "介面", de: "UI", fr: "UI", sv: "UI", ar: "واجهة"),
- .init(key: "Unity", zhHans: "统一", zhHant: "統一", de: "Einheit", fr: "Unité", sv: "Enhet", ar: "وحدة"),
- .init(key: "Urban", zhHans: "都市", zhHant: "都市", de: "Urban", fr: "Urbain", sv: "Urban", ar: "حضري"),
- .init(key: "UX", zhHans: "体验", zhHant: "體驗", de: "UX", fr: "UX", sv: "UX", ar: "تجربة"),
- .init(key: "Vale", zhHans: "谷", zhHant: "谷", de: "Tal", fr: "Vallée", sv: "Dal", ar: "وadi"),
- .init(key: "Valor", zhHans: "勇气", zhHant: "勇氣", de: "Tapferkeit", fr: "Vaillance", sv: "Tapperhet", ar: "شجاعة"),
- .init(key: "Vault", zhHans: "宝库", zhHant: "寶庫", de: "Tresor", fr: "Coffre", sv: "Valv", ar: "خزنة"),
- .init(key: "Vector", zhHans: "向量", zhHant: "向量", de: "Vektor", fr: "Vecteur", sv: "Vektor", ar: "متجه"),
- .init(key: "Venture", zhHans: "创业", zhHant: "創業", de: "Unternehmung", fr: "Aventure", sv: "Satsning", ar: "مشروع"),
- .init(key: "Vertex", zhHans: "顶点", zhHant: "頂點", de: "Scheitelpunkt", fr: "Sommet", sv: "Toppunkt", ar: "رأس"),
- .init(key: "Vibe", zhHans: "氛围", zhHant: "氛圍", de: "Stimmung", fr: "Ambiance", sv: "Stämning", ar: "أجواء"),
- .init(key: "Vibrant", zhHans: "活力", zhHant: "活力", de: "Lebhaft", fr: "Vibrant", sv: "Livfull", ar: "حيوي"),
- .init(key: "Vision", zhHans: "愿景", zhHant: "願景", de: "Vision", fr: "Vision", sv: "Vision", ar: "رؤية"),
- .init(key: "Visionary", zhHans: "远见", zhHant: "遠見", de: "Visionär", fr: "Visionnaire", sv: "Visionär", ar: "رؤيوي"),
- .init(key: "Visual", zhHans: "视觉", zhHant: "視覺", de: "Visuell", fr: "Visuel", sv: "Visuell", ar: "بصري"),
- .init(key: "Vital", zhHans: "关键", zhHant: "關鍵", de: "Vital", fr: "Vital", sv: "Vital", ar: "حيوي"),
- .init(key: "Vivid", zhHans: "鲜明", zhHant: "鮮明", de: "Lebhaft", fr: "Vif", sv: "Livfull", ar: "حي"),
- .init(key: "Voice", zhHans: "声音", zhHant: "聲音", de: "Stimme", fr: "Voix", sv: "Röst", ar: "صوت"),
- .init(key: "Voyage", zhHans: "航程", zhHant: "航程", de: "Reise", fr: "Voyage", sv: "Resa", ar: "رحلة"),
- .init(key: "Wave", zhHans: "波浪", zhHant: "波浪", de: "Welle", fr: "Vague", sv: "Våg", ar: "موجة"),
- .init(key: "White", zhHans: "白", zhHant: "白", de: "Weiß", fr: "Blanc", sv: "Vit", ar: "أبيض"),
- .init(key: "Zen", zhHans: "禅", zhHant: "禪", de: "Zen", fr: "Zen", sv: "Zen", ar: "zen"),
- .init(key: "Zenith", zhHans: "天顶", zhHant: "天頂", de: "Zenit", fr: "Zénith", sv: "Zenit", ar: "ذروة"),
- .init(key: "Flux", zhHans: "流变", zhHant: "流變", de: "Fluss", fr: "Flux", sv: "Flöde", ar: "flux"),
- .init(key: "Flow", zhHans: "流动", zhHant: "流動", de: "Fluss", fr: "Flux", sv: "Flöde", ar: "flow")
- ]
- private func buildTable(_ keyPath: KeyPath<TemplateNameTokenRow, String>) -> [String: String] {
- Dictionary(uniqueKeysWithValues: templateNameTokenRows.map { ($0.key, $0[keyPath: keyPath]) })
- }
|