Ariver
2026-06-27 369c8f03db2f6d507697ab2296db5e6f81c8cd1e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
import fs from "node:fs";
import path from "node:path";
 
export const LOCALES = [
  { code: "zh-Hans", appCode: "zh-Hans", htmlLang: "zh-Hans", ascLocale: "zh-Hans", ascName: "简体中文", nativeName: "简体中文", suffix: "", dir: "ltr" },
  { code: "en", appCode: "en", htmlLang: "en-US", ascLocale: "en-US", ascName: "英语(美国)", nativeName: "English", suffix: "en", dir: "ltr" },
  { code: "ar", appCode: "ar", htmlLang: "ar", ascLocale: "ar", ascName: "阿拉伯语", nativeName: "العربية", suffix: "ar", dir: "rtl" },
  { code: "cs", appCode: "cs", htmlLang: "cs", ascLocale: "cs", ascName: "捷克语", nativeName: "Čeština", suffix: "cs", dir: "ltr" },
  { code: "da", appCode: "da", htmlLang: "da", ascLocale: "da", ascName: "丹麦语", nativeName: "Dansk", suffix: "da", dir: "ltr" },
  { code: "de", appCode: "de", htmlLang: "de", ascLocale: "de", ascName: "德语", nativeName: "Deutsch", suffix: "de", dir: "ltr" },
  { code: "es", appCode: "es", htmlLang: "es-ES", ascLocale: "es-ES", ascName: "西班牙语(西班牙)", nativeName: "Español", suffix: "es", dir: "ltr" },
  { code: "fr", appCode: "fr", htmlLang: "fr-FR", ascLocale: "fr-FR", ascName: "法语", nativeName: "Français", suffix: "fr", dir: "ltr" },
  { code: "id", appCode: "id", htmlLang: "id", ascLocale: "id", ascName: "印度尼西亚语", nativeName: "Indonesia", suffix: "id", dir: "ltr" },
  { code: "it", appCode: "it", htmlLang: "it", ascLocale: "it", ascName: "意大利语", nativeName: "Italiano", suffix: "it", dir: "ltr" },
  { code: "ja", appCode: "ja", htmlLang: "ja", ascLocale: "ja", ascName: "日语", nativeName: "日本語", suffix: "ja", dir: "ltr" },
  { code: "ko", appCode: "ko", htmlLang: "ko", ascLocale: "ko", ascName: "韩语", nativeName: "한국어", suffix: "ko", dir: "ltr" },
  { code: "ms", appCode: "ms", htmlLang: "ms", ascLocale: "ms", ascName: "马来语", nativeName: "Melayu", suffix: "ms", dir: "ltr" },
  { code: "no", appCode: "no", htmlLang: "no", ascLocale: "no", ascName: "挪威语", nativeName: "Norsk", suffix: "no", dir: "ltr" },
  { code: "nl", appCode: "nl", htmlLang: "nl", ascLocale: "nl", ascName: "荷兰语", nativeName: "Nederlands", suffix: "nl", dir: "ltr" },
  { code: "pl", appCode: "pl", htmlLang: "pl", ascLocale: "pl", ascName: "波兰语", nativeName: "Polski", suffix: "pl", dir: "ltr" },
  { code: "pt-BR", appCode: "pt-BR", htmlLang: "pt-BR", ascLocale: "pt-BR", ascName: "葡萄牙语(巴西)", nativeName: "Português (BR)", suffix: "pt-BR", dir: "ltr" },
  { code: "ro", appCode: "ro", htmlLang: "ro", ascLocale: "ro", ascName: "罗马尼亚语", nativeName: "Română", suffix: "ro", dir: "ltr" },
  { code: "ru", appCode: "ru", htmlLang: "ru", ascLocale: "ru", ascName: "俄语", nativeName: "Русский", suffix: "ru", dir: "ltr" },
  { code: "sv", appCode: "sv", htmlLang: "sv", ascLocale: "sv", ascName: "瑞典语", nativeName: "Svenska", suffix: "sv", dir: "ltr" },
  { code: "th", appCode: "th", htmlLang: "th", ascLocale: "th", ascName: "泰语", nativeName: "ไทย", suffix: "th", dir: "ltr" },
  { code: "tr", appCode: "tr", htmlLang: "tr", ascLocale: "tr", ascName: "土耳其语", nativeName: "Türkçe", suffix: "tr", dir: "ltr" },
  { code: "uk", appCode: "uk", htmlLang: "uk", ascLocale: "uk", ascName: "乌克兰语", nativeName: "Українська", suffix: "uk", dir: "ltr" },
  { code: "vi", appCode: "vi", htmlLang: "vi", ascLocale: "vi", ascName: "越南语", nativeName: "Tiếng Việt", suffix: "vi", dir: "ltr" },
  { code: "zh-Hant", appCode: "zh-Hant", htmlLang: "zh-Hant", ascLocale: "zh-Hant", ascName: "繁体中文", nativeName: "繁體中文", suffix: "zh-Hant", dir: "ltr" }
];
 
const COPY = {
  "zh-Hans": {
    home: "首页", support: "支持", privacy: "隐私政策", help: "帮助 PDF", language: "语言",
    heroTitle: "在全球,这可能是 Mac 最好用的应用启动台",
    heroLead: "不用怀念 Launchpad。TagLauncher 用标签、快捷键和搜索把所有应用整理到一屏里。",
    viewsTitle: "4 种视图,全部一屏到底",
    viewsLead: "不需要一个个打开文件夹,也不再需要翻页。只是找一个应用而已,应该更直接。",
    modesTitle: "4 种视图模式", shortcut: "快捷键",
    tagsTitle: "一个应用,多个标签",
    tagsLead: "别再把工具塞进唯一文件夹。一个应用可以同时属于阅读、设计、AI 或任何你自定义的标签。",
    notesTitle: "应用备注也能搜索",
    notesLead: "给应用写用途说明,悬停就能看见,Quick Search 也能搜备注。",
    searchTitle: "搜索应用、标签和备注",
    searchLead: "只记得标签或用途也没关系,Quick Search 会帮你找到正确应用。",
    backupTitle: "备份与恢复",
    backupLead: "分类、排序和布局可以导出为 JSON,换机或重装后可以恢复。",
    privacyTitle: "100% 离线,100% 无广告",
    privacyLead: "数据留在你的 Mac。本版本没有账号、云同步、分析 SDK、广告或追踪。",
    smartTitle: "智能标签初始化",
    smartLead: "针对 5000+ 常见 Mac 应用初始化标签方案,减少从零分类的成本。",
    cta: "Mac App Store 即将上架 · macOS 14.0+ · 29 种界面语言",
    supportTitle: "支持", contact: "联系", version: "当前版本", requirement: "系统要求",
    supportIntro: "发邮件时请说明 macOS 版本与 TagLauncher 版本号。我们通常会在几个工作日内回复。",
    shortcuts: "默认快捷键", helpIntro: "应用内关于面板会打开与当前界面语言匹配的帮助 PDF。也可以直接下载帮助文档:",
    faq: "常见问题", faqLoading: "应用网格一直转圈?", faqLoadingAnswer: "请更新到 7.9.1 或更高版本。若仍出现,完全退出 TagLauncher 后重新打开,并检查数据页的布局备份。",
    faqBackup: "如何备份分类与布局?", faqBackupAnswer: "打开设置 > 数据 > 导出分类与布局,保存 JSON 文件。换机或重装后用导入恢复。",
    faqMulti: "一个应用能属于多个标签吗?", faqMultiAnswer: "可以。这正是 TagLauncher 和 Launchpad 文件夹模型的主要区别。",
    faqCloud: "数据会上传到云端吗?", faqCloudAnswer: "不会。分类、标签、排序和备注都保存在本机。"
  },
  en: {
    home: "Home", support: "Support", privacy: "Privacy", help: "Help PDF", language: "Language",
    heroTitle: "Possibly the best Mac app launcher in the world",
    heroLead: "Do not mourn Launchpad. TagLauncher puts your apps into one tag-based, keyboard-friendly grid.",
    viewsTitle: "Four views, all on one screen",
    viewsLead: "No more opening folders one by one or flipping through pages. Finding an app should be direct.",
    modesTitle: "4 view modes", shortcut: "Quick launch",
    tagsTitle: "One app. Many tags.",
    tagsLead: "Stop forcing tools into one folder. An app can belong to Reading, Design, AI, or any custom tag.",
    notesTitle: "Search app notes too",
    notesLead: "Write usage notes, reveal them on hover, and find them through Quick Search.",
    searchTitle: "Search apps, tags, and notes",
    searchLead: "Even if you remember only a tag or purpose, Quick Search helps you reach the right app.",
    backupTitle: "Backup & Restore",
    backupLead: "Export categories, order, and layout as JSON. Restore them after reinstalling or moving Macs.",
    privacyTitle: "100% offline, 100% ad-free",
    privacyLead: "Data stays on your Mac. This build has no account, cloud sync, analytics SDK, ads, or tracking.",
    smartTitle: "Smart tag initialization",
    smartLead: "Initial tag plans for 5000+ popular Mac apps reduce the pain of starting from zero.",
    cta: "Mac App Store coming soon · macOS 14.0+ · 29 UI languages",
    supportTitle: "Support", contact: "Contact", version: "Current version", requirement: "System requirement",
    supportIntro: "Please include your macOS version and TagLauncher version when contacting support. We usually reply within a few business days.",
    shortcuts: "Default shortcuts", helpIntro: "The About panel opens the help PDF for the current interface language. You can also download it directly:",
    faq: "FAQ", faqLoading: "App Grid stays on a loading spinner?", faqLoadingAnswer: "Update to TagLauncher 7.9.1 or later. If it still happens, quit TagLauncher completely, reopen it, and check layout backups in Settings > Data.",
    faqBackup: "How do I back up categories and layouts?", faqBackupAnswer: "Open Settings > Data > Export Categories & Layout, save the JSON file, then use Import to restore it on another Mac.",
    faqMulti: "Can one app belong to multiple tags?", faqMultiAnswer: "Yes. This is a main difference between TagLauncher and Launchpad folders.",
    faqCloud: "Does TagLauncher upload data to the cloud?", faqCloudAnswer: "No. Categories, tags, order, and notes stay on your Mac."
  },
  ar: {
    home: "الرئيسية", support: "الدعم", privacy: "الخصوصية", help: "ملف المساعدة PDF", language: "اللغة",
    heroTitle: "مشغّل تطبيقات Mac قائم على الوسوم",
    heroLead: "لا تحتاج إلى Launchpad. يجمع TagLauncher تطبيقاتك في شبكة واحدة تعتمد على الوسوم وتعمل بسرعة من لوحة المفاتيح.",
    viewsTitle: "أربع طرق عرض في شاشة واحدة",
    viewsLead: "لا مزيد من فتح المجلدات واحداً تلو الآخر أو تقليب الصفحات. العثور على التطبيق يجب أن يكون مباشراً.",
    modesTitle: "4 طرق عرض", shortcut: "اختصار سريع",
    tagsTitle: "تطبيق واحد، وسوم متعددة",
    tagsLead: "لا تحصر أدواتك في مجلد واحد. يمكن للتطبيق أن ينتمي إلى القراءة أو التصميم أو الذكاء الاصطناعي أو أي وسم تختاره.",
    notesTitle: "ابحث في ملاحظات التطبيقات أيضاً",
    notesLead: "اكتب ملاحظات الاستخدام، اعرضها عند المرور، وابحث عنها عبر Quick Search.",
    searchTitle: "ابحث في التطبيقات والوسوم والملاحظات",
    searchLead: "حتى لو تذكرت الوسم أو الغرض فقط، يساعدك Quick Search في الوصول إلى التطبيق الصحيح.",
    backupTitle: "نسخ احتياطي واستعادة",
    backupLead: "صدّر التصنيفات والترتيب والتخطيط كملف JSON واستعدها عند الانتقال إلى Mac آخر.",
    privacyTitle: "دون اتصال ودون إعلانات",
    privacyLead: "تبقى البيانات على جهاز Mac. لا حسابات، ولا مزامنة سحابية، ولا تحليلات أو إعلانات أو تتبع.",
    smartTitle: "تهيئة ذكية للوسوم",
    smartLead: "خطط وسوم أولية لأكثر من 5000 تطبيق Mac شائع تقلل عناء البدء من الصفر.",
    cta: "قريباً على Mac App Store · macOS 14.0+ · 29 لغة للواجهة"
  },
  cs: {
    home: "Domů", support: "Podpora", privacy: "Soukromí", help: "Nápověda PDF", language: "Jazyk",
    heroTitle: "Spouštěč aplikací pro Mac podle štítků",
    heroLead: "Launchpad vám chybět nemusí. TagLauncher dá aplikace do jedné přehledné mřížky se štítky a klávesovými zkratkami.",
    viewsTitle: "Čtyři zobrazení na jedné obrazovce",
    viewsLead: "Bez otevírání složek a listování stránkami. Najít aplikaci má být rychlé a přímé.",
    modesTitle: "4 režimy zobrazení", shortcut: "Rychlé spuštění",
    tagsTitle: "Jedna aplikace, více štítků",
    tagsLead: "Nenuťte nástroje do jedné složky. Aplikace může patřit do práce, designu, AI i vlastních štítků.",
    notesTitle: "Hledejte i poznámky aplikací",
    notesLead: "Doplňte účel aplikace, zobrazte jej při najetí a najděte jej přes Quick Search.",
    searchTitle: "Hledejte aplikace, štítky a poznámky",
    searchLead: "Stačí si pamatovat štítek nebo účel. Quick Search vás dovede ke správné aplikaci.",
    backupTitle: "Záloha a obnovení",
    backupLead: "Kategorie, pořadí a rozložení exportujete jako JSON a obnovíte na jiném Macu.",
    privacyTitle: "100 % offline, bez reklam",
    privacyLead: "Data zůstávají na Macu. Bez účtu, cloudu, analytiky, reklam i sledování.",
    smartTitle: "Chytrá inicializace štítků",
    smartLead: "Počáteční štítky pro 5000+ oblíbených Mac aplikací zkracují nastavování od nuly.",
    cta: "Brzy v Mac App Store · macOS 14.0+ · 29 jazyků rozhraní"
  },
  da: {
    home: "Hjem", support: "Support", privacy: "Privatliv", help: "Hjælp PDF", language: "Sprog",
    heroTitle: "En tag-baseret appstarter til Mac",
    heroLead: "Du behøver ikke savne Launchpad. TagLauncher samler dine apps i ét tag-baseret grid med tastaturgenveje.",
    viewsTitle: "Fire visninger på én skærm",
    viewsLead: "Ingen mapper, der skal åbnes enkeltvis, og ingen sider at bladre igennem. Det skal være direkte at finde en app.",
    modesTitle: "4 visningstyper", shortcut: "Hurtig start",
    tagsTitle: "Én app, flere tags",
    tagsLead: "Lad ikke værktøjer være låst til én mappe. En app kan høre til læsning, design, AI eller dine egne tags.",
    notesTitle: "Søg også i appnoter",
    notesLead: "Skriv formålet med hver app, se det ved hover, og find det med Quick Search.",
    searchTitle: "Søg i apps, tags og noter",
    searchLead: "Selv når du kun husker et tag eller et formål, finder Quick Search den rigtige app.",
    backupTitle: "Backup og gendannelse",
    backupLead: "Eksportér kategorier, rækkefølge og layout som JSON, og gendan på en ny Mac.",
    privacyTitle: "100 % offline, 100 % reklamefri",
    privacyLead: "Data bliver på din Mac. Ingen konto, cloudsync, analyse-SDK, reklamer eller sporing.",
    smartTitle: "Smart tag-initialisering",
    smartLead: "Starttags til 5000+ populære Mac-apps gør det lettere at begynde fra nul.",
    cta: "Kommer snart i Mac App Store · macOS 14.0+ · 29 UI-sprog"
  },
  de: {
    home: "Start", support: "Support", privacy: "Datenschutz", help: "Hilfe-PDF", language: "Sprache",
    heroTitle: "Ein tag-basierter App-Launcher für den Mac",
    heroLead: "Launchpad musst du nicht vermissen. TagLauncher bringt deine Apps in ein tag-basiertes, tastaturfreundliches Raster.",
    viewsTitle: "Vier Ansichten auf einem Bildschirm",
    viewsLead: "Keine Ordner einzeln öffnen, keine Seiten durchblättern. Eine App zu finden sollte direkt sein.",
    modesTitle: "4 Ansichtsmodi", shortcut: "Schnellstart",
    tagsTitle: "Eine App, mehrere Tags",
    tagsLead: "Werkzeuge müssen nicht in genau einen Ordner. Eine App kann zu Lesen, Design, KI oder eigenen Tags gehören.",
    notesTitle: "Auch App-Notizen durchsuchen",
    notesLead: "Notiere den Zweck einer App, zeige ihn per Hover und finde ihn über Quick Search.",
    searchTitle: "Apps, Tags und Notizen suchen",
    searchLead: "Wenn du nur Tag oder Zweck kennst, führt Quick Search dich trotzdem zur richtigen App.",
    backupTitle: "Sichern & Wiederherstellen",
    backupLead: "Kategorien, Reihenfolge und Layout als JSON exportieren und auf einem anderen Mac wiederherstellen.",
    privacyTitle: "100 % offline, 100 % werbefrei",
    privacyLead: "Daten bleiben auf deinem Mac. Kein Konto, keine Cloud-Sync, keine Analyse, keine Werbung, kein Tracking.",
    smartTitle: "Intelligente Tag-Initialisierung",
    smartLead: "Startpläne für 5000+ beliebte Mac-Apps reduzieren den Aufwand beim Einrichten.",
    cta: "Bald im Mac App Store · macOS 14.0+ · 29 UI-Sprachen"
  },
  es: {
    home: "Inicio", support: "Soporte", privacy: "Privacidad", help: "Ayuda PDF", language: "Idioma",
    heroTitle: "Un lanzador de apps para Mac basado en etiquetas",
    heroLead: "No hace falta echar de menos Launchpad. TagLauncher organiza tus apps en una cuadrícula con etiquetas y atajos.",
    viewsTitle: "Cuatro vistas en una sola pantalla",
    viewsLead: "Sin abrir carpetas una por una ni pasar páginas. Encontrar una app debería ser directo.",
    modesTitle: "4 modos de vista", shortcut: "Inicio rápido",
    tagsTitle: "Una app, varias etiquetas",
    tagsLead: "No encierres tus herramientas en una carpeta. Una app puede pertenecer a lectura, diseño, IA o cualquier etiqueta.",
    notesTitle: "Busca también notas de apps",
    notesLead: "Escribe para qué sirve cada app, míralo al pasar el cursor y encuéntralo con Quick Search.",
    searchTitle: "Busca apps, etiquetas y notas",
    searchLead: "Aunque solo recuerdes una etiqueta o una finalidad, Quick Search te lleva a la app correcta.",
    backupTitle: "Copia y restauración",
    backupLead: "Exporta categorías, orden y diseño como JSON y restáuralos al cambiar de Mac.",
    privacyTitle: "100 % sin conexión, 100 % sin anuncios",
    privacyLead: "Los datos se quedan en tu Mac. Sin cuenta, nube, analítica, anuncios ni rastreo.",
    smartTitle: "Inicialización inteligente de etiquetas",
    smartLead: "Planes iniciales para más de 5000 apps populares de Mac reducen el trabajo desde cero.",
    cta: "Próximamente en Mac App Store · macOS 14.0+ · 29 idiomas de interfaz"
  },
  fr: {
    home: "Accueil", support: "Assistance", privacy: "Confidentialité", help: "Aide PDF", language: "Langue",
    heroTitle: "Un lanceur d’apps Mac basé sur les étiquettes",
    heroLead: "Inutile de regretter Launchpad. TagLauncher rassemble vos apps dans une grille à étiquettes, pensée pour le clavier.",
    viewsTitle: "Quatre vues sur un seul écran",
    viewsLead: "Plus besoin d’ouvrir les dossiers un par un ni de tourner des pages. Trouver une app doit être direct.",
    modesTitle: "4 modes d’affichage", shortcut: "Lancement rapide",
    tagsTitle: "Une app, plusieurs étiquettes",
    tagsLead: "Ne forcez plus vos outils dans un seul dossier. Une app peut appartenir à lecture, design, IA ou vos propres étiquettes.",
    notesTitle: "Recherchez aussi les notes",
    notesLead: "Ajoutez une note d’usage, affichez-la au survol et retrouvez-la avec Quick Search.",
    searchTitle: "Recherchez apps, étiquettes et notes",
    searchLead: "Même si vous ne retenez qu’une étiquette ou un usage, Quick Search trouve la bonne app.",
    backupTitle: "Sauvegarde et restauration",
    backupLead: "Exportez catégories, ordre et disposition en JSON, puis restaurez-les sur un autre Mac.",
    privacyTitle: "100 % hors ligne, 100 % sans pub",
    privacyLead: "Les données restent sur votre Mac. Aucun compte, cloud, SDK d’analyse, publicité ni suivi.",
    smartTitle: "Initialisation intelligente des étiquettes",
    smartLead: "Des plans d’étiquettes pour 5000+ apps Mac populaires réduisent la configuration initiale.",
    cta: "Bientôt sur le Mac App Store · macOS 14.0+ · 29 langues d’interface"
  },
  id: {
    home: "Beranda", support: "Dukungan", privacy: "Privasi", help: "PDF Bantuan", language: "Bahasa",
    heroTitle: "Peluncur app Mac berbasis tag",
    heroLead: "Tidak perlu merindukan Launchpad. TagLauncher menaruh app Anda dalam grid bertag yang nyaman dengan keyboard.",
    viewsTitle: "Empat tampilan dalam satu layar",
    viewsLead: "Tidak perlu membuka folder satu per satu atau membalik halaman. Mencari app seharusnya langsung.",
    modesTitle: "4 mode tampilan", shortcut: "Buka cepat",
    tagsTitle: "Satu app, banyak tag",
    tagsLead: "Jangan paksa alat masuk ke satu folder. Satu app bisa masuk kerja, desain, AI, atau tag buatan Anda.",
    notesTitle: "Cari catatan app juga",
    notesLead: "Tulis kegunaan app, tampilkan saat hover, dan temukan lewat Quick Search.",
    searchTitle: "Cari app, tag, dan catatan",
    searchLead: "Meski hanya ingat tag atau kegunaan, Quick Search membantu menemukan app yang tepat.",
    backupTitle: "Cadangkan & Pulihkan",
    backupLead: "Ekspor kategori, urutan, dan tata letak sebagai JSON, lalu pulihkan di Mac lain.",
    privacyTitle: "100% offline, 100% tanpa iklan",
    privacyLead: "Data tetap di Mac Anda. Tanpa akun, sinkron cloud, analitik, iklan, atau pelacakan.",
    smartTitle: "Inisialisasi tag pintar",
    smartLead: "Rencana tag awal untuk 5000+ app Mac populer mengurangi kerja dari nol.",
    cta: "Segera hadir di Mac App Store · macOS 14.0+ · 29 bahasa UI"
  },
  it: {
    home: "Home", support: "Supporto", privacy: "Privacy", help: "Guida PDF", language: "Lingua",
    heroTitle: "Un launcher per app Mac basato sui tag",
    heroLead: "Non serve rimpiangere Launchpad. TagLauncher organizza le app in una griglia con tag e scorciatoie.",
    viewsTitle: "Quattro viste in un’unica schermata",
    viewsLead: "Niente cartelle da aprire una a una, niente pagine da sfogliare. Trovare un’app deve essere diretto.",
    modesTitle: "4 modalità di vista", shortcut: "Avvio rapido",
    tagsTitle: "Un’app, molti tag",
    tagsLead: "Non bloccare gli strumenti in una sola cartella. Un’app può appartenere a lettura, design, IA o tag personalizzati.",
    notesTitle: "Cerca anche nelle note",
    notesLead: "Scrivi a cosa serve ogni app, visualizzalo al passaggio e cercalo con Quick Search.",
    searchTitle: "Cerca app, tag e note",
    searchLead: "Anche se ricordi solo un tag o uno scopo, Quick Search ti porta all’app giusta.",
    backupTitle: "Backup e ripristino",
    backupLead: "Esporta categorie, ordine e layout in JSON e ripristinali su un altro Mac.",
    privacyTitle: "100% offline, 100% senza pubblicità",
    privacyLead: "I dati restano sul Mac. Nessun account, cloud, analisi, pubblicità o tracciamento.",
    smartTitle: "Inizializzazione intelligente dei tag",
    smartLead: "Piani iniziali per oltre 5000 app Mac popolari riducono il lavoro da zero.",
    cta: "Presto su Mac App Store · macOS 14.0+ · 29 lingue UI"
  },
  ja: {
    home: "ホーム", support: "サポート", privacy: "プライバシー", help: "ヘルプPDF", language: "言語",
    heroTitle: "タグで整理する Mac アプリランチャー",
    heroLead: "Launchpad に頼る必要はありません。TagLauncher はアプリをタグ付きの一覧にまとめ、キーボードですばやく呼び出せます。",
    viewsTitle: "4つの表示を1画面に",
    viewsLead: "フォルダを1つずつ開いたり、ページをめくったりする必要はありません。アプリ探しはもっと直接的であるべきです。",
    modesTitle: "4つの表示モード", shortcut: "クイック起動",
    tagsTitle: "1つのアプリに複数のタグ",
    tagsLead: "ツールを1つのフォルダに閉じ込めないでください。読書、デザイン、AI など自由なタグに分類できます。",
    notesTitle: "アプリのメモも検索",
    notesLead: "用途メモを書き、ホバーで確認し、Quick Search から探せます。",
    searchTitle: "アプリ、タグ、メモを検索",
    searchLead: "タグや用途だけ覚えていても、Quick Search が目的のアプリへ導きます。",
    backupTitle: "バックアップと復元",
    backupLead: "カテゴリ、順序、レイアウトを JSON として書き出し、別の Mac で復元できます。",
    privacyTitle: "完全オフライン、広告なし",
    privacyLead: "データは Mac 内に保存されます。アカウント、クラウド同期、分析、広告、トラッキングはありません。",
    smartTitle: "スマートタグ初期化",
    smartLead: "5000以上の人気 Mac アプリ向け初期タグで、ゼロからの分類を減らします。",
    cta: "Mac App Store に近日登場 · macOS 14.0+ · 29 UI 言語"
  },
  ko: {
    home: "홈", support: "지원", privacy: "개인정보", help: "도움말 PDF", language: "언어",
    heroTitle: "태그 기반 Mac 앱 런처",
    heroLead: "Launchpad를 그리워할 필요가 없습니다. TagLauncher는 앱을 태그 기반 그리드에 정리하고 키보드로 빠르게 엽니다.",
    viewsTitle: "네 가지 보기를 한 화면에",
    viewsLead: "폴더를 하나씩 열거나 페이지를 넘길 필요가 없습니다. 앱 찾기는 더 직접적이어야 합니다.",
    modesTitle: "4가지 보기 모드", shortcut: "빠른 실행",
    tagsTitle: "하나의 앱, 여러 태그",
    tagsLead: "도구를 하나의 폴더에 가두지 마세요. 앱은 읽기, 디자인, AI 또는 사용자 태그에 동시에 속할 수 있습니다.",
    notesTitle: "앱 메모도 검색",
    notesLead: "앱 용도를 적고, 호버로 확인하고, Quick Search에서 찾을 수 있습니다.",
    searchTitle: "앱, 태그, 메모 검색",
    searchLead: "태그나 용도만 기억해도 Quick Search가 올바른 앱을 찾아줍니다.",
    backupTitle: "백업 및 복원",
    backupLead: "카테고리, 순서, 레이아웃을 JSON으로 내보내고 다른 Mac에서 복원하세요.",
    privacyTitle: "100% 오프라인, 광고 없음",
    privacyLead: "데이터는 Mac에 남습니다. 계정, 클라우드 동기화, 분석, 광고, 추적이 없습니다.",
    smartTitle: "스마트 태그 초기화",
    smartLead: "인기 Mac 앱 5000개 이상의 초기 태그 구성이 처음 분류하는 수고를 줄입니다.",
    cta: "Mac App Store 출시 예정 · macOS 14.0+ · 29개 UI 언어"
  },
  ms: {
    home: "Utama", support: "Sokongan", privacy: "Privasi", help: "PDF Bantuan", language: "Bahasa",
    heroTitle: "Pelancar aplikasi Mac berasaskan tag",
    heroLead: "Tidak perlu merindui Launchpad. TagLauncher menyusun aplikasi dalam grid bertag yang mesra papan kekunci.",
    viewsTitle: "Empat paparan pada satu skrin",
    viewsLead: "Tiada lagi membuka folder satu demi satu atau menyelak halaman. Mencari aplikasi patut terus.",
    modesTitle: "4 mod paparan", shortcut: "Lancar pantas",
    tagsTitle: "Satu aplikasi, banyak tag",
    tagsLead: "Jangan paksa alat ke satu folder. Aplikasi boleh berada dalam bacaan, reka bentuk, AI atau tag sendiri.",
    notesTitle: "Cari nota aplikasi juga",
    notesLead: "Tulis kegunaan aplikasi, lihat semasa hover, dan cari melalui Quick Search.",
    searchTitle: "Cari aplikasi, tag dan nota",
    searchLead: "Walaupun hanya ingat tag atau tujuan, Quick Search membantu mencari aplikasi yang betul.",
    backupTitle: "Sandaran & Pulih",
    backupLead: "Eksport kategori, susunan dan susun atur sebagai JSON, kemudian pulihkan pada Mac lain.",
    privacyTitle: "100% luar talian, 100% tanpa iklan",
    privacyLead: "Data kekal pada Mac anda. Tiada akaun, awan, analitik, iklan atau penjejakan.",
    smartTitle: "Permulaan tag pintar",
    smartLead: "Pelan tag awal untuk 5000+ aplikasi Mac popular mengurangkan kerja dari kosong.",
    cta: "Akan hadir di Mac App Store · macOS 14.0+ · 29 bahasa UI"
  },
  no: {
    home: "Hjem", support: "Støtte", privacy: "Personvern", help: "Hjelp PDF", language: "Språk",
    heroTitle: "En taggbasert appstarter for Mac",
    heroLead: "Du trenger ikke savne Launchpad. TagLauncher samler appene dine i ett taggbasert rutenett med tastatursnarveier.",
    viewsTitle: "Fire visninger på én skjerm",
    viewsLead: "Ingen mapper som må åpnes én og én, og ingen sider å bla i. Å finne en app bør være direkte.",
    modesTitle: "4 visningsmoduser", shortcut: "Hurtigstart",
    tagsTitle: "Én app, flere tagger",
    tagsLead: "Ikke lås verktøy til én mappe. En app kan høre til lesing, design, AI eller dine egne tagger.",
    notesTitle: "Søk også i appnotater",
    notesLead: "Skriv hva appen brukes til, vis det ved hover, og finn det med Quick Search.",
    searchTitle: "Søk i apper, tagger og notater",
    searchLead: "Selv om du bare husker en tagg eller et formål, finner Quick Search riktig app.",
    backupTitle: "Sikkerhetskopi og gjenoppretting",
    backupLead: "Eksporter kategorier, rekkefølge og oppsett som JSON, og gjenopprett på en annen Mac.",
    privacyTitle: "100 % offline, 100 % uten reklame",
    privacyLead: "Data blir på Macen din. Ingen konto, skysynk, analyse, annonser eller sporing.",
    smartTitle: "Smart tagginitialisering",
    smartLead: "Starttagger for 5000+ populære Mac-apper gjør det enklere å starte fra null.",
    cta: "Kommer snart i Mac App Store · macOS 14.0+ · 29 UI-språk"
  },
  nl: {
    home: "Home", support: "Support", privacy: "Privacy", help: "Help-pdf", language: "Taal",
    heroTitle: "Een tag-gebaseerde appstarter voor Mac",
    heroLead: "Je hoeft Launchpad niet te missen. TagLauncher zet je apps in één tagraster dat prettig werkt met het toetsenbord.",
    viewsTitle: "Vier weergaven op één scherm",
    viewsLead: "Geen mappen één voor één openen en geen pagina’s doorbladeren. Een app vinden moet direct zijn.",
    modesTitle: "4 weergavemodi", shortcut: "Snel starten",
    tagsTitle: "Eén app, meerdere tags",
    tagsLead: "Dwing tools niet in één map. Een app kan horen bij lezen, ontwerp, AI of je eigen tags.",
    notesTitle: "Zoek ook appnotities",
    notesLead: "Schrijf waar een app voor dient, toon het bij hover en vind het via Quick Search.",
    searchTitle: "Zoek apps, tags en notities",
    searchLead: "Ook als je alleen een tag of doel weet, brengt Quick Search je naar de juiste app.",
    backupTitle: "Back-up en herstel",
    backupLead: "Exporteer categorieën, volgorde en lay-out als JSON en herstel ze op een andere Mac.",
    privacyTitle: "100% offline, 100% advertentievrij",
    privacyLead: "Data blijft op je Mac. Geen account, cloudsync, analytics, advertenties of tracking.",
    smartTitle: "Slimme tag-initialisatie",
    smartLead: "Startplannen voor 5000+ populaire Mac-apps maken beginnen vanaf nul eenvoudiger.",
    cta: "Binnenkort in de Mac App Store · macOS 14.0+ · 29 UI-talen"
  },
  pl: {
    home: "Start", support: "Wsparcie", privacy: "Prywatność", help: "Pomoc PDF", language: "Język",
    heroTitle: "Launcher aplikacji Mac oparty na tagach",
    heroLead: "Nie musisz tęsknić za Launchpadem. TagLauncher układa aplikacje w jedną siatkę z tagami i skrótami.",
    viewsTitle: "Cztery widoki na jednym ekranie",
    viewsLead: "Bez otwierania folderów po kolei i przewijania stron. Znalezienie aplikacji powinno być proste.",
    modesTitle: "4 tryby widoku", shortcut: "Szybkie uruchamianie",
    tagsTitle: "Jedna aplikacja, wiele tagów",
    tagsLead: "Nie zamykaj narzędzi w jednym folderze. Aplikacja może należeć do czytania, designu, AI lub własnych tagów.",
    notesTitle: "Szukaj także notatek aplikacji",
    notesLead: "Zapisz przeznaczenie aplikacji, pokaż je po najechaniu i znajdź przez Quick Search.",
    searchTitle: "Szukaj aplikacji, tagów i notatek",
    searchLead: "Wystarczy pamiętać tag lub cel. Quick Search doprowadzi do właściwej aplikacji.",
    backupTitle: "Kopia i przywracanie",
    backupLead: "Eksportuj kategorie, kolejność i układ jako JSON, a potem przywróć na innym Macu.",
    privacyTitle: "100% offline, 100% bez reklam",
    privacyLead: "Dane zostają na Macu. Bez konta, chmury, analityki, reklam i śledzenia.",
    smartTitle: "Inteligentna inicjalizacja tagów",
    smartLead: "Początkowe tagi dla 5000+ popularnych aplikacji Mac skracają konfigurację od zera.",
    cta: "Wkrótce w Mac App Store · macOS 14.0+ · 29 języków interfejsu"
  },
  "pt-BR": {
    home: "Início", support: "Suporte", privacy: "Privacidade", help: "Ajuda PDF", language: "Idioma",
    heroTitle: "Um lançador de apps Mac baseado em tags",
    heroLead: "Você não precisa sentir falta do Launchpad. O TagLauncher organiza seus apps em uma grade com tags e atalhos.",
    viewsTitle: "Quatro visualizações em uma tela",
    viewsLead: "Sem abrir pastas uma por uma ou virar páginas. Encontrar um app deve ser direto.",
    modesTitle: "4 modos de visualização", shortcut: "Início rápido",
    tagsTitle: "Um app, várias tags",
    tagsLead: "Não prenda suas ferramentas a uma pasta. Um app pode pertencer a leitura, design, IA ou tags próprias.",
    notesTitle: "Pesquise também notas de apps",
    notesLead: "Escreva para que cada app serve, veja ao passar o cursor e encontre pelo Quick Search.",
    searchTitle: "Pesquise apps, tags e notas",
    searchLead: "Mesmo lembrando só uma tag ou finalidade, o Quick Search leva você ao app certo.",
    backupTitle: "Backup e restauração",
    backupLead: "Exporte categorias, ordem e layout como JSON e restaure em outro Mac.",
    privacyTitle: "100% offline, 100% sem anúncios",
    privacyLead: "Os dados ficam no seu Mac. Sem conta, nuvem, analytics, anúncios ou rastreamento.",
    smartTitle: "Inicialização inteligente de tags",
    smartLead: "Planos iniciais para mais de 5000 apps populares de Mac reduzem o trabalho do zero.",
    cta: "Em breve na Mac App Store · macOS 14.0+ · 29 idiomas de interface"
  },
  ro: {
    home: "Acasă", support: "Suport", privacy: "Confidențialitate", help: "Ajutor PDF", language: "Limbă",
    heroTitle: "Lansator de aplicații Mac bazat pe etichete",
    heroLead: "Nu trebuie să regreți Launchpad. TagLauncher pune aplicațiile într-o grilă cu etichete și scurtături.",
    viewsTitle: "Patru vizualizări pe un singur ecran",
    viewsLead: "Fără foldere deschise pe rând și fără pagini de răsfoit. Găsirea unei aplicații trebuie să fie directă.",
    modesTitle: "4 moduri de vizualizare", shortcut: "Lansare rapidă",
    tagsTitle: "O aplicație, mai multe etichete",
    tagsLead: "Nu bloca instrumentele într-un singur folder. O aplicație poate aparține lecturii, designului, AI sau etichetelor tale.",
    notesTitle: "Caută și notele aplicațiilor",
    notesLead: "Scrie scopul aplicației, afișează-l la hover și găsește-l cu Quick Search.",
    searchTitle: "Caută aplicații, etichete și note",
    searchLead: "Chiar dacă îți amintești doar o etichetă sau un scop, Quick Search găsește aplicația corectă.",
    backupTitle: "Backup și restaurare",
    backupLead: "Exportă categoriile, ordinea și aspectul ca JSON, apoi restaurează-le pe alt Mac.",
    privacyTitle: "100% offline, 100% fără reclame",
    privacyLead: "Datele rămân pe Mac. Fără cont, cloud, analiză, reclame sau urmărire.",
    smartTitle: "Inițializare inteligentă a etichetelor",
    smartLead: "Planuri inițiale pentru 5000+ aplicații Mac populare reduc munca de la zero.",
    cta: "În curând pe Mac App Store · macOS 14.0+ · 29 de limbi UI"
  },
  ru: {
    home: "Главная", support: "Поддержка", privacy: "Конфиденциальность", help: "PDF-справка", language: "Язык",
    heroTitle: "Лаунчер приложений Mac на основе тегов",
    heroLead: "Launchpad больше не нужен. TagLauncher собирает приложения в одну сетку с тегами и быстрыми клавишами.",
    viewsTitle: "Четыре вида на одном экране",
    viewsLead: "Не нужно открывать папки по одной и листать страницы. Поиск приложения должен быть прямым.",
    modesTitle: "4 режима просмотра", shortcut: "Быстрый запуск",
    tagsTitle: "Одно приложение, много тегов",
    tagsLead: "Не загоняйте инструменты в одну папку. Приложение может относиться к чтению, дизайну, AI или вашим тегам.",
    notesTitle: "Ищите и заметки приложений",
    notesLead: "Записывайте назначение приложения, смотрите при наведении и находите через Quick Search.",
    searchTitle: "Поиск приложений, тегов и заметок",
    searchLead: "Даже если вы помните только тег или задачу, Quick Search найдет нужное приложение.",
    backupTitle: "Резервная копия и восстановление",
    backupLead: "Экспортируйте категории, порядок и раскладку в JSON и восстановите на другом Mac.",
    privacyTitle: "100% офлайн, 100% без рекламы",
    privacyLead: "Данные остаются на Mac. Без аккаунта, облака, аналитики, рекламы и отслеживания.",
    smartTitle: "Умная инициализация тегов",
    smartLead: "Стартовые теги для 5000+ популярных Mac-приложений упрощают настройку с нуля.",
    cta: "Скоро в Mac App Store · macOS 14.0+ · 29 языков интерфейса"
  },
  sv: {
    home: "Hem", support: "Support", privacy: "Integritet", help: "Hjälp-PDF", language: "Språk",
    heroTitle: "En taggbaserad appstartare för Mac",
    heroLead: "Du behöver inte sakna Launchpad. TagLauncher samlar apparna i ett taggbaserat rutnät med kortkommandon.",
    viewsTitle: "Fyra vyer på en skärm",
    viewsLead: "Inga mappar att öppna en i taget och inga sidor att bläddra igenom. Att hitta en app ska vara direkt.",
    modesTitle: "4 visningslägen", shortcut: "Snabbstart",
    tagsTitle: "En app, flera taggar",
    tagsLead: "Lås inte verktyg i en enda mapp. En app kan höra till läsning, design, AI eller egna taggar.",
    notesTitle: "Sök även appanteckningar",
    notesLead: "Skriv vad appen används till, visa det vid hovring och hitta det via Quick Search.",
    searchTitle: "Sök appar, taggar och anteckningar",
    searchLead: "Även om du bara minns en tagg eller ett syfte hjälper Quick Search dig till rätt app.",
    backupTitle: "Backup och återställning",
    backupLead: "Exportera kategorier, ordning och layout som JSON och återställ på en annan Mac.",
    privacyTitle: "100% offline, 100% utan annonser",
    privacyLead: "Data stannar på din Mac. Inget konto, moln, analys, annonser eller spårning.",
    smartTitle: "Smart taggstart",
    smartLead: "Starttaggar för 5000+ populära Mac-appar minskar arbetet från noll.",
    cta: "Kommer snart i Mac App Store · macOS 14.0+ · 29 UI-språk"
  },
  th: {
    home: "หน้าแรก", support: "สนับสนุน", privacy: "ความเป็นส่วนตัว", help: "PDF วิธีใช้", language: "ภาษา",
    heroTitle: "ตัวเปิดแอป Mac แบบใช้แท็ก",
    heroLead: "ไม่ต้องคิดถึง Launchpad อีกต่อไป TagLauncher จัดแอปไว้ในกริดเดียวที่ใช้แท็กและคีย์ลัดได้สะดวก",
    viewsTitle: "สี่มุมมองในหน้าจอเดียว",
    viewsLead: "ไม่ต้องเปิดโฟลเดอร์ทีละอันหรือพลิกหน้าไปมา การหาแอปควรง่ายและตรงไปตรงมา",
    modesTitle: "4 โหมดมุมมอง", shortcut: "เปิดด่วน",
    tagsTitle: "หนึ่งแอป หลายแท็ก",
    tagsLead: "ไม่ต้องบังคับเครื่องมือให้อยู่ในโฟลเดอร์เดียว แอปหนึ่งอาจอยู่ในอ่าน ออกแบบ AI หรือแท็กของคุณเอง",
    notesTitle: "ค้นหาโน้ตของแอปได้ด้วย",
    notesLead: "เขียนว่าแอปใช้ทำอะไร ดูเมื่อวางเมาส์ และค้นหาได้จาก Quick Search",
    searchTitle: "ค้นหาแอป แท็ก และโน้ต",
    searchLead: "แม้จำได้แค่แท็กหรือวัตถุประสงค์ Quick Search ก็ช่วยพาคุณไปยังแอปที่ถูกต้อง",
    backupTitle: "สำรองและกู้คืน",
    backupLead: "ส่งออกหมวดหมู่ ลำดับ และเลย์เอาต์เป็น JSON แล้วกู้คืนบน Mac เครื่องอื่น",
    privacyTitle: "ออฟไลน์ 100% ไม่มีโฆษณา",
    privacyLead: "ข้อมูลอยู่บน Mac ของคุณ ไม่มีบัญชี คลาวด์ วิเคราะห์ โฆษณา หรือการติดตาม",
    smartTitle: "เริ่มต้นแท็กอัจฉริยะ",
    smartLead: "แผนแท็กเริ่มต้นสำหรับแอป Mac ยอดนิยมกว่า 5000 แอปช่วยลดการเริ่มจากศูนย์",
    cta: "เร็ว ๆ นี้บน Mac App Store · macOS 14.0+ · 29 ภาษา UI"
  },
  tr: {
    home: "Ana sayfa", support: "Destek", privacy: "Gizlilik", help: "Yardım PDF", language: "Dil",
    heroTitle: "Etiket tabanlı Mac uygulama başlatıcı",
    heroLead: "Launchpad’i özlemek zorunda değilsiniz. TagLauncher uygulamaları etiketli, klavye dostu tek bir ızgarada toplar.",
    viewsTitle: "Dört görünüm, tek ekran",
    viewsLead: "Klasörleri tek tek açmak veya sayfa çevirmek yok. Bir uygulamayı bulmak doğrudan olmalı.",
    modesTitle: "4 görünüm modu", shortcut: "Hızlı başlat",
    tagsTitle: "Bir uygulama, birçok etiket",
    tagsLead: "Araçları tek klasöre sıkıştırmayın. Bir uygulama okuma, tasarım, AI veya kendi etiketlerinize ait olabilir.",
    notesTitle: "Uygulama notlarında da ara",
    notesLead: "Kullanım notu yazın, üzerine gelince görün ve Quick Search ile bulun.",
    searchTitle: "Uygulama, etiket ve not ara",
    searchLead: "Yalnızca etiketi veya amacı hatırlasanız bile Quick Search doğru uygulamayı bulur.",
    backupTitle: "Yedekleme ve geri yükleme",
    backupLead: "Kategorileri, sırayı ve düzeni JSON olarak dışa aktarın, başka Mac’te geri yükleyin.",
    privacyTitle: "100% çevrimdışı, 100% reklamsız",
    privacyLead: "Veriler Mac’inizde kalır. Hesap, bulut, analiz, reklam veya izleme yok.",
    smartTitle: "Akıllı etiket başlatma",
    smartLead: "5000+ popüler Mac uygulaması için başlangıç etiketleri sıfırdan kurulumu azaltır.",
    cta: "Yakında Mac App Store’da · macOS 14.0+ · 29 arayüz dili"
  },
  uk: {
    home: "Головна", support: "Підтримка", privacy: "Приватність", help: "PDF-довідка", language: "Мова",
    heroTitle: "Запускач програм Mac на основі тегів",
    heroLead: "Launchpad більше не потрібен. TagLauncher збирає програми в одну сітку з тегами та швидкими клавішами.",
    viewsTitle: "Чотири вигляди на одному екрані",
    viewsLead: "Без відкривання папок по черзі та гортання сторінок. Пошук програми має бути прямим.",
    modesTitle: "4 режими вигляду", shortcut: "Швидкий запуск",
    tagsTitle: "Одна програма, багато тегів",
    tagsLead: "Не замикайте інструменти в одній папці. Програма може належати до читання, дизайну, AI або ваших тегів.",
    notesTitle: "Шукайте і нотатки програм",
    notesLead: "Запишіть призначення програми, переглядайте при наведенні та знаходьте через Quick Search.",
    searchTitle: "Пошук програм, тегів і нотаток",
    searchLead: "Навіть якщо пам’ятаєте лише тег чи призначення, Quick Search знайде правильну програму.",
    backupTitle: "Резервна копія та відновлення",
    backupLead: "Експортуйте категорії, порядок і макет у JSON та відновлюйте на іншому Mac.",
    privacyTitle: "100% офлайн, 100% без реклами",
    privacyLead: "Дані залишаються на Mac. Без акаунта, хмари, аналітики, реклами чи стеження.",
    smartTitle: "Розумна ініціалізація тегів",
    smartLead: "Початкові теги для 5000+ популярних Mac-програм спрощують налаштування з нуля.",
    cta: "Незабаром у Mac App Store · macOS 14.0+ · 29 мов інтерфейсу"
  },
  vi: {
    home: "Trang chủ", support: "Hỗ trợ", privacy: "Quyền riêng tư", help: "PDF trợ giúp", language: "Ngôn ngữ",
    heroTitle: "Trình khởi chạy ứng dụng Mac bằng thẻ",
    heroLead: "Không cần tiếc Launchpad. TagLauncher đưa ứng dụng vào một lưới có thẻ, dễ dùng với bàn phím.",
    viewsTitle: "Bốn chế độ xem trên một màn hình",
    viewsLead: "Không cần mở từng thư mục hay lật từng trang. Tìm ứng dụng nên trực tiếp hơn.",
    modesTitle: "4 chế độ xem", shortcut: "Mở nhanh",
    tagsTitle: "Một ứng dụng, nhiều thẻ",
    tagsLead: "Đừng ép công cụ vào một thư mục. Một ứng dụng có thể thuộc đọc, thiết kế, AI hoặc thẻ tùy chỉnh.",
    notesTitle: "Tìm cả ghi chú ứng dụng",
    notesLead: "Ghi mục đích của ứng dụng, xem khi rê chuột và tìm bằng Quick Search.",
    searchTitle: "Tìm ứng dụng, thẻ và ghi chú",
    searchLead: "Dù chỉ nhớ thẻ hoặc mục đích, Quick Search vẫn giúp bạn đến đúng ứng dụng.",
    backupTitle: "Sao lưu & khôi phục",
    backupLead: "Xuất danh mục, thứ tự và bố cục thành JSON rồi khôi phục trên Mac khác.",
    privacyTitle: "100% ngoại tuyến, 100% không quảng cáo",
    privacyLead: "Dữ liệu ở lại trên Mac. Không tài khoản, đám mây, phân tích, quảng cáo hay theo dõi.",
    smartTitle: "Khởi tạo thẻ thông minh",
    smartLead: "Kế hoạch thẻ ban đầu cho hơn 5000 ứng dụng Mac phổ biến giúp giảm công sức từ đầu.",
    cta: "Sắp có trên Mac App Store · macOS 14.0+ · 29 ngôn ngữ UI"
  },
  "zh-Hant": {
    home: "首頁", support: "支援", privacy: "隱私權政策", help: "說明 PDF", language: "語言",
    heroTitle: "以標籤整理的 Mac 應用啟動器",
    heroLead: "不用再懷念 Launchpad。TagLauncher 用標籤、快捷鍵與搜尋,把所有應用整理在一個畫面。",
    viewsTitle: "4 種檢視,全部一屏到底",
    viewsLead: "不需要一個個打開資料夾,也不再需要翻頁。只是找一個應用,應該更直接。",
    modesTitle: "4 種檢視模式", shortcut: "快捷鍵",
    tagsTitle: "一個應用,多個標籤",
    tagsLead: "別再把工具塞進唯一資料夾。一個應用可以同時屬於閱讀、設計、AI 或任何自訂標籤。",
    notesTitle: "應用備註也能搜尋",
    notesLead: "為應用寫用途說明,滑過就能看到,Quick Search 也能搜尋備註。",
    searchTitle: "搜尋應用、標籤與備註",
    searchLead: "只記得標籤或用途也沒關係,Quick Search 會幫你找到正確應用。",
    backupTitle: "備份與還原",
    backupLead: "分類、排序與版面可以匯出為 JSON,換機或重裝後可以還原。",
    privacyTitle: "100% 離線,100% 無廣告",
    privacyLead: "資料留在你的 Mac。本版本沒有帳號、雲端同步、分析 SDK、廣告或追蹤。",
    smartTitle: "智慧標籤初始化",
    smartLead: "針對 5000+ 常見 Mac 應用初始化標籤方案,減少從零分類的成本。",
    cta: "Mac App Store 即將上架 · macOS 14.0+ · 29 種介面語言"
  }
};
 
const FALLBACK_SUPPORT = {
  supportTitle: "Support",
  contact: "Contact",
  version: "Current version",
  requirement: "System requirement",
  supportIntro: "Please include your macOS version and TagLauncher version when contacting support. We usually reply within a few business days.",
  shortcuts: "Default shortcuts",
  helpIntro: "The About panel opens the help PDF for the current interface language. You can also download it directly:",
  faq: "FAQ",
  faqLoading: "App Grid stays on a loading spinner?",
  faqLoadingAnswer: "Update to TagLauncher 7.9.1 or later. If it still happens, quit TagLauncher completely, reopen it, and check layout backups in Settings > Data.",
  faqBackup: "How do I back up categories and layouts?",
  faqBackupAnswer: "Open Settings > Data > Export Categories & Layout, save the JSON file, then use Import to restore it on another Mac.",
  faqMulti: "Can one app belong to multiple tags?",
  faqMultiAnswer: "Yes. This is a main difference between TagLauncher and Launchpad folders.",
  faqCloud: "Does TagLauncher upload data to the cloud?",
  faqCloudAnswer: "No. Categories, tags, order, and notes stay on your Mac."
};
 
export function getCopy(code) {
  return { ...COPY.en, ...FALLBACK_SUPPORT, ...(COPY[code] || {}) };
}
 
export function pageFile(kind, locale) {
  const suffix = locale.suffix ? `-${locale.suffix}` : "";
  return `${kind}${suffix}.html`;
}
 
export function privacyFile(locale) {
  return locale.code === "zh-Hans" ? "privacy-zh.html" : "privacy.html";
}
 
export function helpUrl(locale) {
  const pdf = locale.code === "zh-Hans" || locale.code === "zh-Hant" ? "Taglauncher-help-zh.pdf" : "Taglauncher-help-en.pdf";
  return `https://github.com/shanghai3168/taglauncher/releases/download/v7.6.0/${pdf}`;
}
 
const APP_STRING_FALLBACK = {
  "app.description": "tag-based app launcher",
  "settings.coloredContainer": "Colored Container",
  "settings.container": "Colorless Container",
  "settings.coloredGridContainer": "Colored Grid",
  "settings.gridContainer": "Colorless Grid",
  "settings.tags": "Tags",
  "settings.backup": "Backup & Restore",
  "edit.dragHint": "Drag to reorder",
  "quickSearch.placeholder": "Search apps, tags, and notes",
  "quickSearch.title": "Quick Search"
};
 
const APP_STRING_FALLBACK_BY_CODE = {
  "zh-Hans": { "app.description": "基于标签的应用启动器", "settings.coloredContainer": "彩色容器", "settings.container": "无色容器", "settings.coloredGridContainer": "彩色网格", "settings.gridContainer": "无色网格" },
  en: { "app.description": "Tag-based app launcher", "settings.coloredContainer": "Colored Container", "settings.container": "Colorless Container", "settings.coloredGridContainer": "Colored Grid", "settings.gridContainer": "Colorless Grid" },
  ar: { "app.description": "مشغل تطبيقات قائم على الوسوم", "settings.coloredContainer": "حاوية ملونة", "settings.container": "حاوية بلا لون", "settings.coloredGridContainer": "شبكة ملونة", "settings.gridContainer": "شبكة بلا لون" },
  cs: { "app.description": "Spouštěč aplikací podle štítků", "settings.coloredContainer": "Barevný kontejner", "settings.container": "Bezbarvý kontejner", "settings.coloredGridContainer": "Barevná mřížka", "settings.gridContainer": "Bezbarvá mřížka" },
  da: { "app.description": "Tagbaseret appstarter", "settings.coloredContainer": "Farvet beholder", "settings.container": "Farveløs beholder", "settings.coloredGridContainer": "Farvet gitter", "settings.gridContainer": "Farveløst gitter" },
  de: { "app.description": "Tag-basierter App-Launcher", "settings.coloredContainer": "Farbiger Container", "settings.container": "Farbloser Container", "settings.coloredGridContainer": "Farbiges Raster", "settings.gridContainer": "Farbloses Raster" },
  es: { "app.description": "Lanzador de apps basado en etiquetas", "settings.coloredContainer": "Contenedor coloreado", "settings.container": "Contenedor sin color", "settings.coloredGridContainer": "Cuadrícula coloreada", "settings.gridContainer": "Cuadrícula sin color" },
  fr: { "app.description": "Lanceur d'applications par étiquettes", "settings.coloredContainer": "Conteneur coloré", "settings.container": "Conteneur sans couleur", "settings.coloredGridContainer": "Grille colorée", "settings.gridContainer": "Grille sans couleur" },
  id: { "app.description": "Peluncur app berbasis tag", "settings.coloredContainer": "Kontainer berwarna", "settings.container": "Kontainer tanpa warna", "settings.coloredGridContainer": "Grid berwarna", "settings.gridContainer": "Grid tanpa warna" },
  it: { "app.description": "Launcher di app basato su tag", "settings.coloredContainer": "Contenitore colorato", "settings.container": "Contenitore senza colore", "settings.coloredGridContainer": "Griglia colorata", "settings.gridContainer": "Griglia senza colore" },
  ja: { "app.description": "タグベースのアプリランチャー", "settings.coloredContainer": "カラーコンテナ", "settings.container": "無色コンテナ", "settings.coloredGridContainer": "カラーグリッド", "settings.gridContainer": "無色グリッド" },
  ko: { "app.description": "태그 기반 앱 런처", "settings.coloredContainer": "색상 컨테이너", "settings.container": "무색 컨테이너", "settings.coloredGridContainer": "색상 그리드", "settings.gridContainer": "무색 그리드" },
  ms: { "app.description": "Peluncur app berbasis tag", "settings.coloredContainer": "Kontainer berwarna", "settings.container": "Kontainer tanpa warna", "settings.coloredGridContainer": "Grid berwarna", "settings.gridContainer": "Grid tanpa warna" },
  no: { "app.description": "Etikettbasert appstarter", "settings.coloredContainer": "Farget beholder", "settings.container": "Fargeløs beholder", "settings.coloredGridContainer": "Farget rutenett", "settings.gridContainer": "Fargeløst rutenett" },
  nl: { "app.description": "Taggebaseerde appstarter", "settings.coloredContainer": "Gekleurde container", "settings.container": "Kleurloze container", "settings.coloredGridContainer": "Gekleurd raster", "settings.gridContainer": "Kleurloos raster" },
  pl: { "app.description": "Launcher aplikacji oparty na tagach", "settings.coloredContainer": "Kolorowy kontener", "settings.container": "Bezbarwny kontener", "settings.coloredGridContainer": "Kolorowa siatka", "settings.gridContainer": "Bezbarwna siatka" },
  "pt-BR": { "app.description": "Inicializador de apps baseado em etiquetas", "settings.coloredContainer": "Contêiner colorido", "settings.container": "Contêiner sem cor", "settings.coloredGridContainer": "Grade colorida", "settings.gridContainer": "Grade sem cor" },
  ro: { "app.description": "Lansator de aplicații bazat pe etichete", "settings.coloredContainer": "Container colorat", "settings.container": "Container fără culoare", "settings.coloredGridContainer": "Grilă colorată", "settings.gridContainer": "Grilă fără culoare" },
  ru: { "app.description": "Лаунчер приложений на основе тегов", "settings.coloredContainer": "Цветной контейнер", "settings.container": "Бесцветный контейнер", "settings.coloredGridContainer": "Цветная сетка", "settings.gridContainer": "Бесцветная сетка" },
  sv: { "app.description": "Taggbaserad appstartare", "settings.coloredContainer": "Färgad behållare", "settings.container": "Färglös behållare", "settings.coloredGridContainer": "Färgat rutnät", "settings.gridContainer": "Färglöst rutnät" },
  th: { "app.description": "ตัวเปิดแอปตามแท็ก", "settings.coloredContainer": "คอนเทนเนอร์มีสี", "settings.container": "คอนเทนเนอร์ไม่มีสี", "settings.coloredGridContainer": "กริดมีสี", "settings.gridContainer": "กริดไม่มีสี" },
  tr: { "app.description": "Etiket tabanlı uygulama başlatıcı", "settings.coloredContainer": "Renkli Kapsayıcı", "settings.container": "Renksiz Kapsayıcı", "settings.coloredGridContainer": "Renkli Izgara", "settings.gridContainer": "Renksiz Izgara" },
  uk: { "app.description": "Запускач застосунків на основі тегів", "settings.coloredContainer": "Кольоровий контейнер", "settings.container": "Безбарвний контейнер", "settings.coloredGridContainer": "Кольорова сітка", "settings.gridContainer": "Безбарвна сітка" },
  vi: { "app.description": "Trình khởi chạy ứng dụng theo thẻ", "settings.coloredContainer": "Vùng chứa có màu", "settings.container": "Vùng chứa không màu", "settings.coloredGridContainer": "Lưới có màu", "settings.gridContainer": "Lưới không màu" },
  "zh-Hant": { "app.description": "基於標籤的應用程式啟動器", "settings.coloredContainer": "彩色容器", "settings.container": "無色容器", "settings.coloredGridContainer": "彩色網格", "settings.gridContainer": "無色網格" }
};
 
const APP_EXTRA_STRING_FALLBACK_BY_CODE = {
  "zh-Hans": { "settings.tags": "标签", "settings.backup": "备份与恢复", "edit.dragHint": "拖拽排序", "quickSearch.placeholder": "搜索 App、标签和备注", "quickSearch.title": "快捷搜索" },
  ar: { "settings.tags": "الوسوم", "settings.backup": "نسخ احتياطي واستعادة", "edit.dragHint": "اسحب لإعادة الترتيب" },
  cs: { "settings.tags": "Štítky", "settings.backup": "Záloha a obnovení", "edit.dragHint": "Přetažením změňte pořadí" },
  da: { "settings.tags": "Tags", "settings.backup": "Sikkerhedskopi og gendannelse", "edit.dragHint": "Træk for at ændre rækkefølge" },
  de: { "settings.tags": "Tags", "settings.backup": "Sichern & Wiederherstellen", "edit.dragHint": "Zum Sortieren ziehen" },
  es: { "settings.tags": "Etiquetas", "settings.backup": "Copia de seguridad", "edit.dragHint": "Arrastra para reordenar" },
  fr: { "settings.tags": "Étiquettes", "settings.backup": "Sauvegarde et restauration", "edit.dragHint": "Faites glisser pour réorganiser" },
  id: { "settings.tags": "Tag", "settings.backup": "Cadangkan & pulihkan", "edit.dragHint": "Seret untuk mengurutkan" },
  it: { "settings.tags": "Tag", "settings.backup": "Backup e ripristino", "edit.dragHint": "Trascina per riordinare" },
  ja: { "settings.tags": "タグ", "settings.backup": "バックアップと復元", "edit.dragHint": "ドラッグで並べ替え" },
  ko: { "settings.tags": "태그", "settings.backup": "백업 및 복원", "edit.dragHint": "드래그하여 순서 변경" },
  ms: { "settings.tags": "Tag", "settings.backup": "Sandaran & pulih", "edit.dragHint": "Seret untuk mengurutkan" },
  no: { "settings.tags": "Etiketter", "settings.backup": "Sikkerhetskopi og gjenoppretting", "edit.dragHint": "Dra for å endre rekkefølge" },
  nl: { "settings.tags": "Tags", "settings.backup": "Back-up en herstel", "edit.dragHint": "Sleep om te sorteren" },
  pl: { "settings.tags": "Tagi", "settings.backup": "Kopia zapasowa i przywracanie", "edit.dragHint": "Przeciągnij, aby zmienić kolejność" },
  "pt-BR": { "settings.tags": "Etiquetas", "settings.backup": "Backup e restauração", "edit.dragHint": "Arraste para reordenar" },
  ro: { "settings.tags": "Etichete", "settings.backup": "Backup și restaurare", "edit.dragHint": "Trage pentru reordonare" },
  ru: { "settings.tags": "Теги", "settings.backup": "Резервное копирование", "edit.dragHint": "Перетащите для сортировки" },
  sv: { "settings.tags": "Taggar", "settings.backup": "Säkerhetskopiera och återställ", "edit.dragHint": "Dra för att ändra ordning" },
  th: { "settings.tags": "แท็ก", "settings.backup": "สำรองและกู้คืน", "edit.dragHint": "ลากเพื่อจัดเรียง" },
  tr: { "settings.tags": "Etiketler", "settings.backup": "Yedekle ve geri yükle", "edit.dragHint": "Sıralamak için sürükle" },
  uk: { "settings.tags": "Теги", "settings.backup": "Резервне копіювання", "edit.dragHint": "Перетягніть для сортування" },
  vi: { "settings.tags": "Thẻ", "settings.backup": "Sao lưu & khôi phục", "edit.dragHint": "Kéo để sắp xếp" },
  "zh-Hant": { "settings.tags": "標籤", "settings.backup": "備份與還原", "edit.dragHint": "拖曳排序", "quickSearch.placeholder": "搜尋 App、標籤和備註", "quickSearch.title": "快捷搜尋" }
};
 
export function loadAppStrings(rootDir, locale) {
  const localizationDir = path.join(rootDir, "src/Apptag/Localization");
  const fallbackPath = path.join(localizationDir, "en.json");
  const embeddedFallback = { ...APP_STRING_FALLBACK, ...(APP_STRING_FALLBACK_BY_CODE[locale.code] || {}), ...(APP_EXTRA_STRING_FALLBACK_BY_CODE[locale.code] || {}) };
  const fallback = fs.existsSync(fallbackPath)
    ? { ...embeddedFallback, ...JSON.parse(fs.readFileSync(fallbackPath, "utf8")) }
    : embeddedFallback;
  const targetPath = path.join(localizationDir, `${locale.appCode}.json`);
  if (!fs.existsSync(targetPath)) return fallback;
  return { ...fallback, ...JSON.parse(fs.readFileSync(targetPath, "utf8")) };
}
 
export function modeLabels(app) {
  return [
    app["settings.coloredContainer"] || "Colored Container",
    app["settings.container"] || "Colorless Container",
    app["settings.coloredGridContainer"] || "Colored Grid",
    app["settings.gridContainer"] || "Colorless Grid"
  ];
}
 
export function ascDescription(copy, app) {
  return [
    `TagLauncher — ${app["app.description"] || "tag-based app launcher"}.`,
    copy.heroLead,
    copy.tagsLead,
    copy.searchLead,
    copy.backupLead,
    copy.privacyLead
  ].join("\n\n");
}
 
export function whatsNew(copy) {
  return [
    "Version 7.9.1 improves App Grid reliability and first-use guidance.",
    copy.viewsLead,
    "Empty tag groups now stay visible, blank-space tag removal is more reliable on macOS 14, and usage tips can be hidden in Settings."
  ].join("\n\n");
}