t9n-cli 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/dictionaries/ar.json +244 -0
  2. package/dictionaries/de.json +244 -0
  3. package/dictionaries/el.json +244 -0
  4. package/dictionaries/en.json +244 -0
  5. package/dictionaries/es.json +244 -0
  6. package/dictionaries/fr.json +244 -0
  7. package/dictionaries/hi.json +244 -0
  8. package/dictionaries/id.json +244 -0
  9. package/dictionaries/it.json +244 -0
  10. package/dictionaries/ja.json +244 -0
  11. package/dictionaries/ko.json +244 -0
  12. package/dictionaries/ms.json +244 -0
  13. package/dictionaries/nl.json +244 -0
  14. package/dictionaries/pl.json +244 -0
  15. package/dictionaries/pt.json +244 -0
  16. package/dictionaries/ru.json +244 -0
  17. package/dictionaries/sv.json +244 -0
  18. package/dictionaries/th.json +244 -0
  19. package/dictionaries/tr.json +244 -0
  20. package/dictionaries/vi.json +244 -0
  21. package/dictionaries/yue.json +244 -0
  22. package/dictionaries/zh-CN.json +244 -0
  23. package/dictionaries/zh-TW.json +244 -0
  24. package/dist/api.d.ts +1 -0
  25. package/dist/api.js +52 -0
  26. package/dist/commands/auth.d.ts +1 -0
  27. package/dist/commands/auth.js +41 -0
  28. package/dist/commands/diff.d.ts +1 -0
  29. package/dist/commands/diff.js +96 -0
  30. package/dist/commands/init.d.ts +1 -0
  31. package/dist/commands/init.js +32 -0
  32. package/dist/commands/scan.d.ts +1 -0
  33. package/dist/commands/scan.js +151 -0
  34. package/dist/commands/status.d.ts +1 -0
  35. package/dist/commands/status.js +49 -0
  36. package/dist/commands/translate.d.ts +1 -0
  37. package/dist/commands/translate.js +92 -0
  38. package/dist/config.d.ts +20 -0
  39. package/dist/config.js +81 -0
  40. package/dist/i18n.d.ts +15 -0
  41. package/dist/i18n.js +72 -0
  42. package/dist/index.d.ts +2 -0
  43. package/dist/index.js +58 -0
  44. package/dist/lib/jsonUtils.d.ts +12 -0
  45. package/dist/lib/jsonUtils.js +151 -0
  46. package/dist/tsconfig.tsbuildinfo +1 -0
  47. package/package.json +2 -2
@@ -0,0 +1,244 @@
1
+ {
2
+ "home": {
3
+ "badge": "t9n - MVP",
4
+ "title": "ترجمة i18n تحترم كودك البرمجي.",
5
+ "subtitle": "صفر أخطاء بناء جملة. حماية المتغيرات. إدراك السياق.",
6
+ "button": "ابدأ الترجمة"
7
+ },
8
+ "editor": {
9
+ "run": "تشغيل الترجمة",
10
+ "translating": "جاري الترجمة",
11
+ "source": {
12
+ "label": "اللغة المصدر",
13
+ "upload": "رفع JSON",
14
+ "upload_multiple": "انقر لرفع ملفات JSON",
15
+ "context": "السياق",
16
+ "context_placeholder": "أضف سياقاً لتحسين الترجمة...",
17
+ "pro_feature": "ميزة احترافية",
18
+ "pro_context_msg": "رَقِّ حسابك لتوفير سياق والحصول على دقة أعلى.",
19
+ "info": "المصدر",
20
+ "lines": "أسطر",
21
+ "clear_context": "مسح",
22
+ "large_file_title": "تم تحميل ملف كبير ({size})",
23
+ "large_file_desc": "المعاينة معطلة للأداء. سيتم إرسال المحتوى الكامل للترجمة."
24
+ },
25
+ "diff_dialog": {
26
+ "title": "تحديث تراكمي (Diff)",
27
+ "files_preview": "معاينة الملفات",
28
+ "base_tag": "أساسي",
29
+ "start_diff": "بدأ التراكمي"
30
+ },
31
+ "target": {
32
+ "label": "اللغة المستهدفة",
33
+ "copy": "نسخ",
34
+ "download": "تحميل",
35
+ "no_selection": "لم يتم اختيار لغات",
36
+ "placeholder": "اختر لغة وشغل الترجمة لرؤية النتائج هنا",
37
+ "stale_warning": "تغير المصدر - الترجمة قديمة",
38
+ "max_select": "الأقصى {n}",
39
+ "more_suffix": "(+{n})"
40
+ },
41
+ "mobile": {
42
+ "view_result": "عرض النتيجة",
43
+ "back_to_code": "العودة للكود"
44
+ },
45
+ "features": {
46
+ "diff_title": "الفرق التراكمي",
47
+ "diff_msg": "ميزة التحديث التراكمي (Diff) قادمة قريباً!",
48
+ "soon": "قريباً"
49
+ },
50
+ "messages": {
51
+ "pro_feature_title": "ميزة احترافية (قريباً)",
52
+ "upload_pro_msg": "الرفع ميزة احترافية.\n\nنحن نعمل حالياً على بناء الميزات المميزة. ابقَ متيقظاً!\n\nتحتاج مساعدة؟ تواصل: {email}",
53
+ "download_pro_msg": "التحميل ميزة احترافية.\n\nنحن نعمل حالياً على بناء الميزات المميزة. ابقَ متيقظاً!\n\nتحتاج مساعدة؟ تواصل: {email}",
54
+ "diff_upload_hint": "ارفع جميع ملفات الترجمة. سيتم استخدام الأكثر اكتمالاً كأساس.",
55
+ "file_too_large_title": "الملف كبير جداً",
56
+ "file_too_large_msg": "الملف كبير جداً ({size}). الحد الأقصى هو {limit}.\n\nميزة تقسيم الملفات قادمة قريباً!",
57
+ "copied": "تم النسخ للحافظة!",
58
+ "copy_failed": "فشل النسخ للحافظة",
59
+ "invalid_json": "ملف JSON المصدر غير صالح",
60
+ "translation_complete": "اكتملت الترجمة!",
61
+ "translation_failed": "فشلت الترجمة",
62
+ "daily_limit_reached": "تم الوصول للحد اليومي",
63
+ "daily_limit_desc": "لقد استخدمت ترجماتك المجانية لهذا اليوم.",
64
+ "pro_plan_coming_soon": "الخطة الاحترافية والوصول غير المحدود قادمان قريباً!",
65
+ "building_premium": "نحن نعمل حالياً على بناء الميزات المميزة. ابقَ متيقظاً!",
66
+ "contact_us": "هل تحتاج المزيد؟ اتصل بنا: {email}",
67
+ "error_details": "تفاصيل الخطأ:",
68
+ "limit_exceeded": "تجاوز الحد",
69
+ "limit_exceeded_desc": "تسمح خطة {tier} بما يصل إلى {max} مفتاح لكل طلب. ملفك يحتوي على {keys} مفتاح.",
70
+ "insufficient_credits": "رصيد غير كافٍ",
71
+ "insufficient_credits_desc": "تتطلب هذه الترجمة {cost} رصيد، ولكن لديك {available} متبقي.",
72
+ "free_plan_limit_exceeded": "تجاوز حد الخطة المجانية",
73
+ "upgrade_to_pro": "الترقية للاحترافية (قريباً)",
74
+ "pro_benefits_1": "مفاتيح غير محدودة لكل ملف",
75
+ "pro_benefits_2": "طول سياق غير محدود",
76
+ "pro_benefits_3": "ترجمة دفعية",
77
+ "reduce_size": "حالياً، يرجى تقليل حجم الملف أو السياق.",
78
+ "select_target_lang": "يرجى اختيار لغة مستهدفة واحدة على الأقل.",
79
+ "up_to_date": "جميع اللغات المختارة محدثة.",
80
+ "translating_placeholder": "// جاري الترجمة...",
81
+ "error_no_data": "// خطأ: لم يتم إرجاع بيانات.",
82
+ "error_failed_generic": "// خطأ: فشلت الترجمة. يرجى المحاولة مرة أخرى.",
83
+ "max_langs_reached": "الحد الأقصى {n} لغات مستهدفة مسموح بها في الخطة المجانية.",
84
+ "credits_needed": "الرصيد المطلوب",
85
+ "credits_remaining": "المتبقي",
86
+ "invalid_base_json": "ملف JSON الأساسي غير صالح",
87
+ "invalid_base_content": "محتوى الملف الأساسي غير صالح"
88
+ }
89
+ },
90
+ "common": {
91
+ "contact": "اتصل بنا",
92
+ "email": "z17682341097@gmail.com",
93
+ "pro": "برو",
94
+ "coming_soon": "قريباً",
95
+ "pricing": "الأسعار",
96
+ "docs": "الوثائق و CLI",
97
+ "cli": "CLI",
98
+ "i18n_note": "تم إنشاء جميع ترجمات هذا الموقع باستخدام t9n.",
99
+ "upgrade": "ترقية",
100
+ "auto_detect": "تعرف تلقائي",
101
+ "soon": "قريباً",
102
+ "pro_only": "({pro} فقط)",
103
+ "contact_support": "اتصل بالدعم",
104
+ "pricing_limits": "الأسعار والحدود",
105
+ "back_to_home": "العودة للرئيسية",
106
+ "back_to_editor": "العودة للمحرر",
107
+ "mail_to": "مراسلة إلى",
108
+ "cancel": "إلغاء",
109
+ "close": "إغلاق",
110
+ "confirm": "تأكيد",
111
+ "notification": "إشعار"
112
+ },
113
+ "auth": {
114
+ "login": "تسجيل الدخول",
115
+ "logout": "تسجيل الخروج",
116
+ "welcome_back": "مرحباً بك مجدداً",
117
+ "login_desc": "سجل الدخول للوصول للميزات الاحترافية وحدود أعلى",
118
+ "cli_login_required": "يرجى تسجيل الدخول أولاً باستخدام: t9n auth <your-api-key>",
119
+ "continue_google": "المتابعة باستخدام Google",
120
+ "continue_github": "المتابعة باستخدام GitHub",
121
+ "terms": "بمتابعتك، فإنك توافق على شروط الخدمة وسياسة الخصوصية الخاصة بنا."
122
+ },
123
+ "settings": {
124
+ "title": "الإعدادات",
125
+ "apikeys": {
126
+ "title": "مفاتيح API",
127
+ "desc": "إدارة مفاتيح API الخاصة بك لاستخدامها مع أدوات CLI أو في مسارات CI/CD.",
128
+ "create": "إنشاء مفتاح جديد",
129
+ "name_label": "اسم المفتاح",
130
+ "name_placeholder": "مثلاً: CLI المحمول الخاص بي",
131
+ "key_secret_warning": "يرجى نسخ مفتاح API الخاص بك الآن. لأمانك، لن يتم عرضه مرة أخرى.",
132
+ "copy_key": "نسخ المفتاح",
133
+ "list_empty": "لم يتم إنشاء مفاتيح API بعد.",
134
+ "revoke": "إبطال",
135
+ "revoke_confirm": "هل أنت متأكد أنك تريد إبطال مفتاح API هذا؟ الأدوات التي تستخدمه ستتوقف عن العمل.",
136
+ "last_used": "آخر استخدام",
137
+ "never_used": "أبداً",
138
+ "created": "تاريخ الإنشاء"
139
+ }
140
+ },
141
+ "pricing": {
142
+ "title": "أسعار بسيطة وشفافة",
143
+ "subtitle": "اختر الخطة التي تناسب احتياجات الترجمة الخاصة بك.",
144
+ "monthly": "شهرياً",
145
+ "daily": "يومياً",
146
+ "per_request": "لكل طلب",
147
+ "get_started": "ابدأ الآن",
148
+ "upgrade": "رَقِّ الآن",
149
+ "contact_sales": "اتصل بالمبيعات",
150
+ "features": {
151
+ "credits": "{n} رصيد",
152
+ "keys": "حتى {n} مفتاح",
153
+ "langs": "حتى {n} لغة",
154
+ "upload_download": "رفع / تحميل",
155
+ "diff": "تحديث تراكمي (Diff)",
156
+ "context": "إدراك السياق"
157
+ },
158
+ "most_popular": "الأكثر شيوعاً",
159
+ "custom": "مخصص"
160
+ },
161
+ "metadata": {
162
+ "title": "t9n - مترجم JSON للمطورين | مترجم i18n بالذكاء الاصطناعي",
163
+ "description": "المترجم المدعوم بالذكاء الاصطناعي للمطورين لملفات i18n JSON. صفر أخطاء برمجية، حماية المتغيرات (React Intl، i18next)، وإدراك ذكي للسياق. ترجم البرمجيات، وليس فقط الكلمات.",
164
+ "og_title": "t9n - مترجم JSON للمطورين",
165
+ "og_description": "ترجم ملفات i18n JSON دون كسر متغيرات الكود الخاصة بك. يدعم React Intl و i18next والمزيد."
166
+ },
167
+ "docs": {
168
+ "title": "الوثائق",
169
+ "subtitle": "تعمق في ميزات t9n، من الاستخدام الأساسي إلى التحديثات التراكمية المتقدمة وتحسين سياق الذكاء الاصطناعي.",
170
+ "sections": {
171
+ "basic": {
172
+ "title": "الميزة الأساسية: الترجمة الفورية",
173
+ "content": "تم تصميم t9n لتنسيق i18n JSON. قمنا بتحسين استراتيجية التوجيه لضمان حماية جميع متغيرات الكود (مثل {name} أو {{count}}) بدقة أثناء عملية الترجمة.",
174
+ "item1": "دعم الاختيار الدفعي للغات المستهدفة، وإنشاء ترجمات متعددة في وقت واحد.",
175
+ "item2": "معاينة فورية: مقارنة المحتوى المصدر والمحتوى المستهدف جنباً إلى جنب."
176
+ },
177
+ "context": {
178
+ "title": "إدراك السياق",
179
+ "content": "الترجمة أكثر من مجرد كلمة بكلمة. من خلال توفير خلفية التطبيق، يمكن للذكاء الاصطناعي اختيار المفردات بدقة أكبر.",
180
+ "example": "على سبيل المثال، كلمة \"Menu\" تعني \"قائمة طعام\" في تطبيق مطعم و \"قائمة وظائف\" في برنامج تصميم. توفير السياق يزيل الغموض."
181
+ },
182
+ "diff": {
183
+ "title": "التحديث التراكمي الذكي (وضع Diff)",
184
+ "content": "عندما يحتوي ملف اللغة المصدر (مثل en.json) على محتوى جديد، لا تحتاج لإعادة ترجمة الملف بالكامل. يدعم وضع التحديث التراكمي في t9n الآن الأتمتة الكاملة.",
185
+ "new_feature": "جديد: التعرف التلقائي الكامل على الملفات المتعددة",
186
+ "step1_title": "1. رفع متعدد الاختيارات",
187
+ "step1_desc": "اختر ملف الإنجليزية (الأساسي) وملفات الترجمة الموجودة (مثل الصينية، اليابانية) في وقت واحد. لا مزيد من المقارنات اليدوية.",
188
+ "step2_title": "2. الكشف الذكي عن الأساس",
189
+ "step2_desc": "يقوم النظام تلقائياً بعد المفاتيح في كل ملف ويعتبر الأكثر اكتمالاً كـ 'أساس الترجمة'، مع ملء الأجزاء المفقودة في الملفات الأخرى تلقائياً.",
190
+ "step3_title": "3. ترجمة دقيقة",
191
+ "step3_desc": "يتم تمييز المفاتيح المفقودة بـ 🚧 [MISSING]. يترجم الذكاء الاصطناعي هذه العلامات فقط، مما يوفر لك أكثر من 90% من الرصيد.",
192
+ "quote": "\"حافظ على 100% من الترجمات الحالية، وعالج المتطلبات الجديدة فقط.\""
193
+ },
194
+ "cli": {
195
+ "tag": "متاح الآن",
196
+ "title": "t9n CLI",
197
+ "content": "إدارة i18n احترافية من طرفيتك. أتمتة سير عمل الترجمة الخاص بك مع واجهة سطر الأوامر القوية الخاصة بنا.",
198
+ "install": "npm install -g @t9n/cli",
199
+ "command_auth": "t9n auth <key>",
200
+ "command_init": "t9n init",
201
+ "command_scan": "t9n scan ./src",
202
+ "command_translate": "t9n translate ./en.json -t zh-CN,ja",
203
+ "command_diff": "t9n diff ./dictionaries",
204
+ "desc_auth": "اربط بيئتك المحلية بحساب t9n الخاص بك.",
205
+ "desc_init": "أنشئ t9n.config.json لحفظ تفضيلات مشروعك.",
206
+ "desc_scan": "ابحث عن المفاتيح المفقودة في كود المصدر التي ليست في ملف JSON بعد.",
207
+ "desc_translate": "ترجم الملفات المحلية مباشرة واحفظ النتائج تلقائياً.",
208
+ "desc_diff": "تحديثات تراكمية ذكية لجميع اللغات في مجلد ما.",
209
+ "progress": "جاهز للإنتاج"
210
+ }
211
+ },
212
+ "example_correct": "Portfolio\" ← \"محفظة استثمارية\"",
213
+ "example_incorrect": "Portfolio\" ← \"مجموعة أعمال فنية\""
214
+ },
215
+ "cli": {
216
+ "diff": {
217
+ "title": "🛰️ T9N CLI - تحديث تراكمي",
218
+ "analyzing": "🔍 تحليل الفروقات...",
219
+ "comparing": "مقارنة بالملف الموجود...",
220
+ "new_lang": "تم اكتشاف لغة جديدة.",
221
+ "success": "تم استلام الترجمة بنجاح!",
222
+ "updated": "تم التحديث:",
223
+ "all_up_to_date": "✨ جميع الترجمات محدثة!"
224
+ },
225
+ "scan": {
226
+ "title": "🔍 T9N CLI - فاحص الكود",
227
+ "scanning": "جاري فحص الملفات...",
228
+ "scanned": "تم فحص {n} ملفات.",
229
+ "missing_found": "تم العثور على {n} مفاتيح مفقودة (في الكود ولكن ليس في القاموس):",
230
+ "all_present": "✨ جميع المفاتيح في الكود موجودة في القاموس.",
231
+ "orphaned": "تم العثور على {n} مفاتيح قد تكون غير مستخدمة (في القاموس ولكن ليس في الكود):"
232
+ },
233
+ "auth": {
234
+ "verifying": "التحقق من مفتاح API...",
235
+ "success": "تمت المصادقة بنجاح! ({target} إعدادات)",
236
+ "key_missing": "يرجى تقديم مفتاح API. الاستخدام: t9n auth <key>"
237
+ },
238
+ "init": {
239
+ "title": "🎬 T9N - تهيئة المشروع",
240
+ "created": "تم إنشاء إعدادات المشروع: {path}",
241
+ "already_exists": "ملف الإعدادات موجود بالفعل في: {path}"
242
+ }
243
+ }
244
+ }
@@ -0,0 +1,244 @@
1
+ {
2
+ "home": {
3
+ "badge": "t9n - MVP",
4
+ "title": "i18n-Übersetzung, die Ihren Code respektiert.",
5
+ "subtitle": "Keine Syntaxfehler. Variablenschutz. Kontextbewusst.",
6
+ "button": "Jetzt übersetzen"
7
+ },
8
+ "editor": {
9
+ "run": "ÜBERSETZUNG STARTEN",
10
+ "translating": "ÜBERSETZE...",
11
+ "source": {
12
+ "label": "Quellsprache",
13
+ "upload": "JSON hochladen",
14
+ "upload_multiple": "JSON-Dateien zum Hochladen anklicken",
15
+ "context": "Kontext",
16
+ "context_placeholder": "Kontext hinzufügen für bessere Ergebnisse...",
17
+ "pro_feature": "PRO-FUNKTION",
18
+ "pro_context_msg": "Upgrade für kontextbasierte Genauigkeit.",
19
+ "info": "QUELLE",
20
+ "lines": "Zeilen",
21
+ "clear_context": "Leeren",
22
+ "large_file_title": "Große Datei geladen ({size})",
23
+ "large_file_desc": "Vorschau aus Performancegründen deaktiviert. Gesamter Inhalt wird übersetzt."
24
+ },
25
+ "diff_dialog": {
26
+ "title": "Inkrementelles Update (Diff)",
27
+ "files_preview": "Dateivorschau",
28
+ "base_tag": "BASIS",
29
+ "start_diff": "Diff starten"
30
+ },
31
+ "target": {
32
+ "label": "Zielsprache",
33
+ "copy": "Kopieren",
34
+ "download": "Download",
35
+ "no_selection": "Keine Sprachen gewählt",
36
+ "placeholder": "Sprache wählen & Übersetzung starten, um Ergebnisse zu sehen",
37
+ "stale_warning": "Quelle geändert - Übersetzung veraltet",
38
+ "max_select": "MAX. {n}",
39
+ "more_suffix": "(+{n})"
40
+ },
41
+ "mobile": {
42
+ "view_result": "Ergebnis anzeigen",
43
+ "back_to_code": "Zurück zum Code"
44
+ },
45
+ "features": {
46
+ "diff_title": "Inkrementeller Diff",
47
+ "diff_msg": "Diff / Inkrementelles Update kommt bald!",
48
+ "soon": "BALD"
49
+ },
50
+ "messages": {
51
+ "pro_feature_title": "Pro-Funktion (Demnächst)",
52
+ "upload_pro_msg": "Upload ist eine Pro-Funktion.\n\nWir arbeiten an Premium-Features. Bleiben Sie gespannt!\n\nHilfe? Kontakt: {email}",
53
+ "download_pro_msg": "Download ist eine Pro-Funktion.\n\nWir arbeiten an Premium-Features. Bleiben Sie gespannt!\n\nHilfe? Kontakt: {email}",
54
+ "diff_upload_hint": "Alle Übersetzungsdateien hochladen. Die vollständigste dient als Basis.",
55
+ "file_too_large_title": "Datei zu groß",
56
+ "file_too_large_msg": "Datei zu groß ({size}). Limit ist {limit}.\n\nDateisplitting kommt bald!",
57
+ "copied": "In Zwischenablage kopiert!",
58
+ "copy_failed": "Kopieren fehlgeschlagen",
59
+ "invalid_json": "Ungültiges Quell-JSON",
60
+ "translation_complete": "Übersetzung abgeschlossen!",
61
+ "translation_failed": "Übersetzung fehlgeschlagen",
62
+ "daily_limit_reached": "TAGESLIMIT ERREICHT",
63
+ "daily_limit_desc": "Kostenlose Übersetzungen für heute aufgebraucht.",
64
+ "pro_plan_coming_soon": "PRO-PLAN & UNBEGRENZTER ZUGANG KOMMEN BALD!",
65
+ "building_premium": "Wir arbeiten an Premium-Features. Bleiben Sie gespannt!",
66
+ "contact_us": "Mehr nötig? Kontaktieren Sie uns: {email}",
67
+ "error_details": "Fehlerdetails:",
68
+ "limit_exceeded": "Limit überschritten",
69
+ "limit_exceeded_desc": "Der {tier}-Plan erlaubt bis zu {max} Keys pro Anfrage. Ihre Datei hat {keys} Keys.",
70
+ "insufficient_credits": "Nicht genügend Guthaben",
71
+ "insufficient_credits_desc": "Benötigt {cost} Credits, Sie haben noch {available}.",
72
+ "free_plan_limit_exceeded": "LIMIT DES FREE-PLANS ÜBERSCHRITTEN",
73
+ "upgrade_to_pro": "UPGRADE AUF PRO (Demnächst)",
74
+ "pro_benefits_1": "Unbegrenzte Keys pro Datei",
75
+ "pro_benefits_2": "Unbegrenzte Kontextlänge",
76
+ "pro_benefits_3": "Stapelverarbeitung",
77
+ "reduce_size": "Bitte verringern Sie vorerst Dateigröße oder Kontext.",
78
+ "select_target_lang": "Bitte mindestens eine Zielsprache wählen.",
79
+ "up_to_date": "Alle gewählten Sprachen sind aktuell.",
80
+ "translating_placeholder": "// Übersetze...",
81
+ "error_no_data": "// Fehler: Keine Daten empfangen.",
82
+ "error_failed_generic": "// Fehler: Übersetzung fehlgeschlagen. Bitte erneut versuchen.",
83
+ "max_langs_reached": "Maximal {n} Zielsprachen im Free-Plan erlaubt.",
84
+ "credits_needed": "Benötigte Credits",
85
+ "credits_remaining": "Verbleibend",
86
+ "invalid_base_json": "Ungültiges Basis-JSON",
87
+ "invalid_base_content": "Ungültiger Basis-Inhalt"
88
+ }
89
+ },
90
+ "common": {
91
+ "contact": "Kontakt",
92
+ "email": "z17682341097@gmail.com",
93
+ "pro": "PRO",
94
+ "coming_soon": "Demnächst",
95
+ "pricing": "Preise",
96
+ "docs": "Doku & CLI",
97
+ "cli": "CLI",
98
+ "i18n_note": "Alle Übersetzungen dieser Seite wurden mit t9n erstellt.",
99
+ "upgrade": "Upgrade",
100
+ "auto_detect": "Auto-Erkennung",
101
+ "soon": "BALD",
102
+ "pro_only": "(Nur {pro})",
103
+ "contact_support": "Support kontaktieren",
104
+ "pricing_limits": "Preise & Limits",
105
+ "back_to_home": "ZURÜCK ZUR STARTSEITE",
106
+ "back_to_editor": "Zurück zum Editor",
107
+ "mail_to": "E-Mail an",
108
+ "cancel": "ABBRECHEN",
109
+ "close": "SCHLIESSEN",
110
+ "confirm": "BESTÄTIGEN",
111
+ "notification": "Benachrichtigung"
112
+ },
113
+ "auth": {
114
+ "login": "Login",
115
+ "logout": "Abmelden",
116
+ "welcome_back": "Willkommen zurück",
117
+ "login_desc": "Anmelden für Pro-Features und höhere Limits",
118
+ "cli_login_required": "Bitte zuerst anmelden: t9n auth <your-api-key>",
119
+ "continue_google": "Weiter mit Google",
120
+ "continue_github": "Weiter mit GitHub",
121
+ "terms": "Mit dem Fortfahren akzeptieren Sie die Nutzungsbedingungen und Datenschutzrichtlinien."
122
+ },
123
+ "settings": {
124
+ "title": "Einstellungen",
125
+ "apikeys": {
126
+ "title": "API-Keys",
127
+ "desc": "API-Keys für CLI-Tools oder CI/CD-Pipelines verwalten.",
128
+ "create": "Neuen Key erstellen",
129
+ "name_label": "Key-Name",
130
+ "name_placeholder": "z.B. Mein Laptop CLI",
131
+ "key_secret_warning": "Bitte kopieren Sie den API-Key jetzt. Er wird aus Sicherheitsgründen nicht erneut angezeigt.",
132
+ "copy_key": "Key kopieren",
133
+ "list_empty": "Noch keine API-Keys erstellt.",
134
+ "revoke": "Widerrufen",
135
+ "revoke_confirm": "API-Key wirklich widerrufen? Tools, die ihn nutzen, werden nicht mehr funktionieren.",
136
+ "last_used": "Zuletzt genutzt",
137
+ "never_used": "Nie",
138
+ "created": "Erstellt"
139
+ }
140
+ },
141
+ "pricing": {
142
+ "title": "Einfache, transparente Preise",
143
+ "subtitle": "Wählen Sie den passenden Plan für Ihre Bedürfnisse.",
144
+ "monthly": "monatlich",
145
+ "daily": "täglich",
146
+ "per_request": "pro Anfrage",
147
+ "get_started": "Loslegen",
148
+ "upgrade": "Jetzt upgraden",
149
+ "contact_sales": "Vertrieb kontaktieren",
150
+ "features": {
151
+ "credits": "{n} Credits",
152
+ "keys": "Bis zu {n} Keys",
153
+ "langs": "Bis zu {n} Sprachen",
154
+ "upload_download": "Upload / Download",
155
+ "diff": "Inkrementelles Update (Diff)",
156
+ "context": "Kontextbewusstsein"
157
+ },
158
+ "most_popular": "Beliebtest",
159
+ "custom": "Individuell"
160
+ },
161
+ "metadata": {
162
+ "title": "t9n - JSON-Übersetzer für Entwickler | i18n KI-Übersetzer",
163
+ "description": "Der KI-Übersetzer für i18n JSON-Dateien. Keine Syntaxfehler, Variablenschutz (React Intl, i18next) und smartes Kontextbewusstsein.",
164
+ "og_title": "t9n - JSON-Übersetzer für Entwickler",
165
+ "og_description": "i18n JSON-Dateien übersetzen, ohne Code-Variablen zu beschädigen. Unterstützt React Intl, i18next und mehr."
166
+ },
167
+ "docs": {
168
+ "title": "Dokumentation",
169
+ "subtitle": "Entdecken Sie die t9n-Features, von Grundlagen bis zu inkrementellen Updates und KI-Kontextoptimierung.",
170
+ "sections": {
171
+ "basic": {
172
+ "title": "Grundfunktion: Echtzeit-Übersetzung",
173
+ "content": "t9n ist für i18n JSON konzipiert. Unsere Prompt-Strategie schützt Code-Variablen (wie {name} oder {{count}}) strikt während der Übersetzung.",
174
+ "item1": "Unterstützt Stapelauswahl von Zielsprachen für mehrere Übersetzungen gleichzeitig.",
175
+ "item2": "Echtzeit-Vorschau: Quell- und Zielinhalt im direkten Vergleich."
176
+ },
177
+ "context": {
178
+ "title": "Kontextbewusstsein",
179
+ "content": "Übersetzung ist mehr als Wort-für-Wort. Mit Hintergrundinfos wählt die KI präzisere Begriffe.",
180
+ "example": "Beispiel: Das Wort \"Menu\" bedeutet in einer Gastro-App Speisekarte, in Design-Software Funktionsliste. Kontext vermeidet Mehrdeutigkeit."
181
+ },
182
+ "diff": {
183
+ "title": "Intelligentes inkrementelles Update (Diff-Modus)",
184
+ "content": "Bei neuem Inhalt in der Quelldatei muss nicht alles neu übersetzt werden. Der Diff-Modus automatisiert dies.",
185
+ "new_feature": "Neu: Automatische Multi-Datei-Erkennung",
186
+ "step1_title": "1. Mehrfach-Upload",
187
+ "step1_desc": "Wählen Sie die Basis (Englisch) und vorhandene Übersetzungen gleichzeitig aus. Kein manueller Vergleich nötig.",
188
+ "step2_title": "2. Smarte Basis-Erkennung",
189
+ "step2_desc": "Das System erkennt die vollständigste Datei als Basis und füllt fehlende Teile in anderen automatisch auf.",
190
+ "step3_title": "3. Präzisions-Übersetzung",
191
+ "step3_desc": "Fehlende Keys werden als 🚧 [MISSING] markiert. Die KI übersetzt nur diese, was über 90% Credits spart.",
192
+ "quote": "\"100% der bestehenden Übersetzungen behalten, nur Neues ergänzen.\""
193
+ },
194
+ "cli": {
195
+ "tag": "Jetzt verfügbar",
196
+ "title": "t9n CLI",
197
+ "content": "Professionelles i18n-Management direkt im Terminal. Automatisieren Sie Ihren Workflow mit unserem CLI.",
198
+ "install": "npm install -g @t9n/cli",
199
+ "command_auth": "t9n auth <key>",
200
+ "command_init": "t9n init",
201
+ "command_scan": "t9n scan ./src",
202
+ "command_translate": "t9n translate ./en.json -t zh-CN,ja",
203
+ "command_diff": "t9n diff ./dictionaries",
204
+ "desc_auth": "Lokale Umgebung mit t9n-Konto verknüpfen.",
205
+ "desc_init": "t9n.config.json für Projekteinstellungen erstellen.",
206
+ "desc_scan": "Fehlende Keys im Quellcode finden, die noch nicht im JSON sind.",
207
+ "desc_translate": "Lokale Dateien direkt übersetzen und automatisch speichern.",
208
+ "desc_diff": "Smarte inkrementelle Updates für alle Sprachen in einem Ordner.",
209
+ "progress": "Bereit für den Produktivbetrieb"
210
+ }
211
+ },
212
+ "example_correct": "Portfolio\" → \"Investment-Portfolio\"",
213
+ "example_incorrect": "Portfolio\" → \"Kunstsammlung\""
214
+ },
215
+ "cli": {
216
+ "diff": {
217
+ "title": "🛰️ T9N CLI - Inkrementelles Update",
218
+ "analyzing": "🔍 Analysiere Unterschiede...",
219
+ "comparing": "Vergleiche mit existierender Datei...",
220
+ "new_lang": "Neue Sprache erkannt.",
221
+ "success": "Übersetzung erfolgreich empfangen!",
222
+ "updated": "Aktualisiert:",
223
+ "all_up_to_date": "✨ Alle Übersetzungen sind aktuell!"
224
+ },
225
+ "scan": {
226
+ "title": "🔍 T9N CLI - Code-Scanner",
227
+ "scanning": "Scanne Dateien...",
228
+ "scanned": "{n} Dateien gescannt.",
229
+ "missing_found": "{n} fehlende Keys gefunden (im Code, aber nicht im Dictionary):",
230
+ "all_present": "✨ Alle Keys im Code sind im Dictionary vorhanden.",
231
+ "orphaned": "{n} potenziell ungenutzte Keys gefunden (im Dictionary, aber nicht im Code):"
232
+ },
233
+ "auth": {
234
+ "verifying": "Prüfe API-Key...",
235
+ "success": "Authentifizierung erfolgreich! ({target} Konfig)",
236
+ "key_missing": "Bitte API-Key angeben. Nutzung: t9n auth <key>"
237
+ },
238
+ "init": {
239
+ "title": "🎬 T9N - Projekt-Initialisierung",
240
+ "created": "Projekt-Konfig erstellt: {path}",
241
+ "already_exists": "Konfigurationsdatei existiert bereits unter: {path}"
242
+ }
243
+ }
244
+ }