t9n-cli 0.1.0 → 0.1.1

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 +42 -0
  36. package/dist/commands/translate.d.ts +1 -0
  37. package/dist/commands/translate.js +76 -0
  38. package/dist/config.d.ts +19 -0
  39. package/dist/config.js +60 -0
  40. package/dist/i18n.d.ts +7 -0
  41. package/dist/i18n.js +52 -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-vertaling die je code respecteert.",
5
+ "subtitle": "Nul syntaxfouten. Variabelebescherming. Contextbewust.",
6
+ "button": "Start met vertalen"
7
+ },
8
+ "editor": {
9
+ "run": "VERTALING STARTEN",
10
+ "translating": "VERTALEN",
11
+ "source": {
12
+ "label": "Brontaal",
13
+ "upload": "Upload JSON",
14
+ "upload_multiple": "Klik om JSON-bestanden te uploaden",
15
+ "context": "Context",
16
+ "context_placeholder": "Voeg context toe voor betere vertaling...",
17
+ "pro_feature": "PRO-FUNCTIE",
18
+ "pro_context_msg": "Upgrade om context toe te voegen voor hogere nauwkeurigheid.",
19
+ "info": "BRON",
20
+ "lines": "Regels",
21
+ "clear_context": "Wissen",
22
+ "large_file_title": "Groot bestand geladen ({size})",
23
+ "large_file_desc": "Voorvertoning uitgeschakeld voor prestaties. De volledige inhoud wordt verzonden voor vertaling."
24
+ },
25
+ "diff_dialog": {
26
+ "title": "Incrementele update (Diff)",
27
+ "files_preview": "Bestandvoorbeeld",
28
+ "base_tag": "BASIS",
29
+ "start_diff": "Start Diff"
30
+ },
31
+ "target": {
32
+ "label": "Doeltaal",
33
+ "copy": "Kopiëren",
34
+ "download": "Downloaden",
35
+ "no_selection": "Geen talen geselecteerd",
36
+ "placeholder": "Selecteer taal & start vertaling om resultaten hier te zien",
37
+ "stale_warning": "Bron gewijzigd - Vertaling verouderd",
38
+ "max_select": "MAX {n}",
39
+ "more_suffix": "(+{n})"
40
+ },
41
+ "mobile": {
42
+ "view_result": "Bekijk resultaat",
43
+ "back_to_code": "Terug naar code"
44
+ },
45
+ "features": {
46
+ "diff_title": "Incrementele Diff",
47
+ "diff_msg": "Diff / Incrementele update functie komt binnenkort!",
48
+ "soon": "BINNENKORT"
49
+ },
50
+ "messages": {
51
+ "pro_feature_title": "Pro-functie (Binnenkort)",
52
+ "upload_pro_msg": "Uploaden is een Pro-functie.\n\nWe werken momenteel aan de premium functies. Blijf op de hoogte!\n\nHulp nodig? Contact: {email}",
53
+ "download_pro_msg": "Downloaden is een Pro-functie.\n\nWe werken momenteel aan de premium functies. Blijf op de hoogte!\n\nHulp nodig? Contact: {email}",
54
+ "diff_upload_hint": "Upload al je vertaalbestanden. Het meest complete bestand wordt als basis gebruikt.",
55
+ "file_too_large_title": "Bestand te groot",
56
+ "file_too_large_msg": "Bestand is te groot ({size}). Maximale limiet is {limit}.\n\nFunctie voor bestandssplitsing komt binnenkort!",
57
+ "copied": "Gekopieerd naar klembord!",
58
+ "copy_failed": "Kopiëren naar klembord mislukt",
59
+ "invalid_json": "Ongeldige Bron JSON",
60
+ "translation_complete": "Vertaling voltooid!",
61
+ "translation_failed": "Vertaling mislukt",
62
+ "daily_limit_reached": "DAGELIJKSE LIMIET BEREIKT",
63
+ "daily_limit_desc": "Je hebt je gratis vertalingen voor vandaag gebruikt.",
64
+ "pro_plan_coming_soon": "PRO-ABONNEMENT & ONBEPERKTE TOEGANG KOMEN BINNENKORT!",
65
+ "building_premium": "We are currently building the premium features. Stay tuned!",
66
+ "contact_us": "Meer nodig? Neem contact op: {email}",
67
+ "error_details": "Foutdetails:",
68
+ "limit_exceeded": "Limiet overschreden",
69
+ "limit_exceeded_desc": "{tier} plan staat tot {max} keys per verzoek toe. Je bestand heeft {keys} keys.",
70
+ "insufficient_credits": "Onvoldoende credits",
71
+ "insufficient_credits_desc": "Deze vertaling vereist {cost} credits, maar je hebt er nog {available}.",
72
+ "free_plan_limit_exceeded": "LIMIET GRATIS ABONNEMENT OVERSCHREDEN",
73
+ "upgrade_to_pro": "UPGRADE NAAR PRO (Binnenkort)",
74
+ "pro_benefits_1": "Onbeperkt aantal keys per bestand",
75
+ "pro_benefits_2": "Onbeperkte contextlengte",
76
+ "pro_benefits_3": "Batchvertaling",
77
+ "reduce_size": "Verklein voor nu je bestandsgrootte of context.",
78
+ "select_target_lang": "Selecteer minimaal één doeltaal.",
79
+ "up_to_date": "Alle geselecteerde talen zijn up-to-date.",
80
+ "translating_placeholder": "// Vertalen...",
81
+ "error_no_data": "// Fout: Geen gegevens ontvangen.",
82
+ "error_failed_generic": "// Fout: Vertalen mislukt. Probeer het opnieuw.",
83
+ "max_langs_reached": "Maximaal {n} doeltalen toegestaan in het gratis abonnement.",
84
+ "credits_needed": "Credits nodig",
85
+ "credits_remaining": "Resterend",
86
+ "invalid_base_json": "Ongeldige basis-JSON",
87
+ "invalid_base_content": "Ongeldige basis-bestandsinhoud"
88
+ }
89
+ },
90
+ "common": {
91
+ "contact": "Contact",
92
+ "email": "z17682341097@gmail.com",
93
+ "pro": "PRO",
94
+ "coming_soon": "Binnenkort",
95
+ "pricing": "Prijzen",
96
+ "docs": "Docs & CLI",
97
+ "cli": "CLI",
98
+ "i18n_note": "Alle vertalingen voor deze site zijn gegenereerd met t9n.",
99
+ "upgrade": "Upgrade",
100
+ "auto_detect": "Automatisch detecteren",
101
+ "soon": "BINNENKORT",
102
+ "pro_only": "(Alleen {pro})",
103
+ "contact_support": "Contact opnemen met support",
104
+ "pricing_limits": "Prijzen & limieten",
105
+ "back_to_home": "TERUG NAAR HOME",
106
+ "back_to_editor": "Terug naar editor",
107
+ "mail_to": "Mail naar",
108
+ "cancel": "ANNULEREN",
109
+ "close": "SLUITEN",
110
+ "confirm": "BEVESTIGEN",
111
+ "notification": "Melding"
112
+ },
113
+ "auth": {
114
+ "login": "Inloggen",
115
+ "logout": "Uitloggen",
116
+ "welcome_back": "Welkom terug",
117
+ "login_desc": "Log in voor Pro-functies en hogere limieten",
118
+ "cli_login_required": "Log eerst in met: t9n auth <your-api-key>",
119
+ "continue_google": "Doorgaan met Google",
120
+ "continue_github": "Doorgaan met GitHub",
121
+ "terms": "Door verder te gaan, ga je akkoord met onze Servicevoorwaarden en ons Privacybeleid."
122
+ },
123
+ "settings": {
124
+ "title": "Instellingen",
125
+ "apikeys": {
126
+ "title": "API-sleutels",
127
+ "desc": "Beheer je API-sleutels voor gebruik met CLI-tools of in CI/CD-pipelines.",
128
+ "create": "Nieuwe sleutel maken",
129
+ "name_label": "Sleutelnaam",
130
+ "name_placeholder": "bijv. Mijn Laptop CLI",
131
+ "key_secret_warning": "Kopieer je API-sleutel nu. Voor je veiligheid wordt deze niet meer getoond.",
132
+ "copy_key": "Sleutel kopiëren",
133
+ "list_empty": "Nog geen API-sleutels gemaakt.",
134
+ "revoke": "Intrekken",
135
+ "revoke_confirm": "Weet je zeker dat je deze API-sleutel wilt intrekken? Tools die deze gebruiken, stoppen met werken.",
136
+ "last_used": "Laatst gebruikt",
137
+ "never_used": "Nooit",
138
+ "created": "Gemaakt"
139
+ }
140
+ },
141
+ "pricing": {
142
+ "title": "Eenvoudige, transparante prijzen",
143
+ "subtitle": "Kies het abonnement dat past bij je vertaalbehoeften.",
144
+ "monthly": "maandelijks",
145
+ "daily": "dagelijks",
146
+ "per_request": "per verzoek",
147
+ "get_started": "Aan de slag",
148
+ "upgrade": "Nu upgraden",
149
+ "contact_sales": "Contact Sales",
150
+ "features": {
151
+ "credits": "{n} credits",
152
+ "keys": "Tot {n} keys",
153
+ "langs": "Tot {n} talen",
154
+ "upload_download": "Upload / Download",
155
+ "diff": "Incrementele update (Diff)",
156
+ "context": "Contextbewustzijn"
157
+ },
158
+ "most_popular": "Meest populair",
159
+ "custom": "Aangepast"
160
+ },
161
+ "metadata": {
162
+ "title": "t9n - JSON-vertaler voor ontwikkelaars | i18n AI-vertaler",
163
+ "description": "De AI-vertaler voor ontwikkelaars voor i18n JSON-bestanden. Nul syntaxfouten, variabelebescherming (React Intl, i18next) en slim contextbewustzijn. Vertaal software, niet alleen woorden.",
164
+ "og_title": "t9n - JSON-vertaler voor ontwikkelaars",
165
+ "og_description": "Vertaal i18n JSON-bestanden zonder codevariabelen te breken. Ondersteunt React Intl, i18next en meer."
166
+ },
167
+ "docs": {
168
+ "title": "Documentatie",
169
+ "subtitle": "Ontdek de functies van t9n, van basisgebruik tot geavanceerde incrementele updates en AI-contextoptimalisatie.",
170
+ "sections": {
171
+ "basic": {
172
+ "title": "Basisfunctie: Real-time vertaling",
173
+ "content": "t9n is ontworpen voor i18n JSON-formaat. We hebben de promptstrategie geoptimaliseerd om ervoor te zorgen dat alle codevariabelen (zoals {name} of {{count}}) strikt worden beschermd tijdens het vertaalproces.",
174
+ "item1": "Ondersteunt batchselectie van doeltalen, waardoor meerdere vertalingen tegelijk worden gegenereerd.",
175
+ "item2": "Real-time voorvertoning: bron- en doelinhoud worden naast elkaar vergeleken."
176
+ },
177
+ "context": {
178
+ "title": "Contextbewustzijn",
179
+ "content": "Vertalen is meer dan alleen woord voor woord. Door achtergrondinformatie over de applicatie te geven, kan AI nauwkeuriger vocabulaire kiezen.",
180
+ "example": "Bijvoorbeeld, hetzelfde woord \"Menu\" is \"menu\" in een restaurant-app en \"functielijst\" in ontwerpsoftware. Het geven van context kan ambiguïteit wegnemen."
181
+ },
182
+ "diff": {
183
+ "title": "Intelligente incrementele update (Diff-modus)",
184
+ "content": "Wanneer je bronbestand (bijv. en.json) nieuwe inhoud heeft, hoef je niet het hele bestand opnieuw te vertalen. De incrementele updatemodus van t9n ondersteunt nu volledige automatisering.",
185
+ "new_feature": "Nieuw: Volledig automatische herkenning van meerdere bestanden",
186
+ "step1_title": "1. Multi-select upload",
187
+ "step1_desc": "Selecteer Engels (basis) en bestaande vertaalbestanden (bijv. Chinees, Japans) tegelijkertijd in het uploaddialoogvenster. Geen handmatige vergelijkingen meer.",
188
+ "step2_title": "2. Slimme basisdetectie",
189
+ "step2_desc": "Het systeem telt automatisch de keys in elk bestand en behandelt het meest complete bestand als de 'vertaalbasis', waarbij ontbrekende delen in andere bestanden automatisch worden ingevuld.",
190
+ "step3_title": "3. Precisievertaling",
191
+ "step3_desc": "Ontbrekende keys worden gemarkeerd als 🚧 [MISSING]. AI vertaalt alleen deze markers, wat je meer dan 90% aan credits bespaart.",
192
+ "quote": "\"Behoud 100% van de bestaande vertalingen, pak alleen nieuwe eisen aan.\""
193
+ },
194
+ "cli": {
195
+ "tag": "Nu beschikbaar",
196
+ "title": "t9n CLI",
197
+ "content": "Professioneel i18n-beheer vanuit je terminal. Automatiseer je vertaalworkflow met onze krachtige command-line interface.",
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": "Koppel je lokale omgeving aan je t9n-account.",
205
+ "desc_init": "Maak t9n.config.json aan om je projectvoorkeuren op te slaan.",
206
+ "desc_scan": "Vind ontbrekende keys in je broncode die nog niet in je JSON staan.",
207
+ "desc_translate": "Vertaal direct lokale bestanden en sla resultaten automatisch op.",
208
+ "desc_diff": "Slimme incrementele updates voor alle talen in een map.",
209
+ "progress": "Klaar voor productie"
210
+ }
211
+ },
212
+ "example_correct": "Portfolio\" → \"Beleggingsportefeuille\"",
213
+ "example_incorrect": "Portfolio\" → \"Kunstcollectie\""
214
+ },
215
+ "cli": {
216
+ "diff": {
217
+ "title": "🛰️ T9N CLI - Incrementele update",
218
+ "analyzing": "🔍 Verschillen analyseren...",
219
+ "comparing": "Vergelijken met bestaand bestand...",
220
+ "new_lang": "Nieuwe taal gedetecteerd.",
221
+ "success": "Vertaling succesvol ontvangen!",
222
+ "updated": "Bijgewerkt:",
223
+ "all_up_to_date": "✨ Alle vertalingen zijn up-to-date!"
224
+ },
225
+ "scan": {
226
+ "title": "🔍 T9N CLI - Codescanner",
227
+ "scanning": "Bestanden scannen...",
228
+ "scanned": "{n} bestanden gescand.",
229
+ "missing_found": "{n} ontbrekende keys gevonden (in code maar NIET in woordenboek):",
230
+ "all_present": "✨ Alle keys in de code zijn aanwezig in het woordenboek.",
231
+ "orphaned": "{n} mogelijk ongebruikte keys gevonden (in dict maar NIET in code):"
232
+ },
233
+ "auth": {
234
+ "verifying": "API-sleutel verifiëren...",
235
+ "success": "Authenticatie geslaagd! ({target} configuratie)",
236
+ "key_missing": "Geef een API-sleutel op. Gebruik: t9n auth <key>"
237
+ },
238
+ "init": {
239
+ "title": "🎬 T9N - Projectinitialisatie",
240
+ "created": "Projectconfiguratie gemaakt: {path}",
241
+ "already_exists": "Configuratiebestand bestaat al op: {path}"
242
+ }
243
+ }
244
+ }
@@ -0,0 +1,244 @@
1
+ {
2
+ "home": {
3
+ "badge": "t9n - MVP",
4
+ "title": "Tłumaczenie i18n szanujące Twój kod.",
5
+ "subtitle": "Zero błędów składniowych. Ochrona zmiennych. Świadomość kontekstu.",
6
+ "button": "Zacznij tłumaczyć"
7
+ },
8
+ "editor": {
9
+ "run": "URUCHOM TŁUMACZENIE",
10
+ "translating": "TŁUMACZENIE",
11
+ "source": {
12
+ "label": "Język źródłowy",
13
+ "upload": "Prześlij JSON",
14
+ "upload_multiple": "Kliknij, aby przesłać pliki JSON",
15
+ "context": "Kontekst",
16
+ "context_placeholder": "Dodaj kontekst, aby poprawić tłumaczenie...",
17
+ "pro_feature": "FUNKCJA PRO",
18
+ "pro_context_msg": "Uaktualnij, aby podać kontekst dla wyższej dokładności.",
19
+ "info": "ŹRÓDŁO",
20
+ "lines": "Linie",
21
+ "clear_context": "Wyczyść",
22
+ "large_file_title": "Wczytano duży plik ({size})",
23
+ "large_file_desc": "Podgląd wyłączony ze względu na wydajność. Pełna treść zostanie wysłana do tłumaczenia."
24
+ },
25
+ "diff_dialog": {
26
+ "title": "Aktualizacja przyrostowa (Diff)",
27
+ "files_preview": "Podgląd plików",
28
+ "base_tag": "BAZA",
29
+ "start_diff": "Rozpocznij Diff"
30
+ },
31
+ "target": {
32
+ "label": "Język docelowy",
33
+ "copy": "Kopiuj",
34
+ "download": "Pobierz",
35
+ "no_selection": "Nie wybrano języków",
36
+ "placeholder": "Wybierz język i uruchom tłumaczenie, aby zobaczyć wyniki",
37
+ "stale_warning": "Źródło uległo zmianie - tłumaczenie nieaktualne",
38
+ "max_select": "MAKS {n}",
39
+ "more_suffix": "(+{n})"
40
+ },
41
+ "mobile": {
42
+ "view_result": "Zobacz wynik",
43
+ "back_to_code": "Wróć do kodu"
44
+ },
45
+ "features": {
46
+ "diff_title": "Przyrostowy Diff",
47
+ "diff_msg": "Funkcja Diff / Aktualizacja przyrostowa pojawi się wkrótce!",
48
+ "soon": "WKRÓTCE"
49
+ },
50
+ "messages": {
51
+ "pro_feature_title": "Funkcja Pro (Wkrótce)",
52
+ "upload_pro_msg": "Przesyłanie to funkcja Pro.\n\nPracujemy nad funkcjami premium. Czekajcie na informacje!\n\nPotrzebujesz pomocy? Kontakt: {email}",
53
+ "download_pro_msg": "Pobieranie to funkcja Pro.\n\nPracujemy nad funkcjami premium. Czekajcie na informacje!\n\nPotrzebujesz pomocy? Kontakt: {email}",
54
+ "diff_upload_hint": "Prześlij wszystkie pliki tłumaczeń. Najbardziej kompletny zostanie użyty jako baza.",
55
+ "file_too_large_title": "Plik zbyt duży",
56
+ "file_too_large_msg": "Plik jest zbyt duży ({size}). Maksymalny limit to {limit}.\n\nFunkcja dzielenia plików pojawi się wkrótce!",
57
+ "copied": "Skopiowano do schowka!",
58
+ "copy_failed": "Nie udało się skopiować do schowka",
59
+ "invalid_json": "Nieprawidłowy źródłowy JSON",
60
+ "translation_complete": "Tłumaczenie zakończone!",
61
+ "translation_failed": "Tłumaczenie nie powiodło się",
62
+ "daily_limit_reached": "LIMIT DZIENNY WYCZERPANY",
63
+ "daily_limit_desc": "Wykorzystałeś dzisiejsze darmowe tłumaczenia.",
64
+ "pro_plan_coming_soon": "PLAN PRO I NIEOGRANICZONY DOSTĘP JUŻ WKRÓTCE!",
65
+ "building_premium": "Pracujemy obecnie nad funkcjami premium. Czekajcie na informacje!",
66
+ "contact_us": "Potrzebujesz więcej? Kontakt: {email}",
67
+ "error_details": "Szczegóły błędu:",
68
+ "limit_exceeded": "Limit przekroczony",
69
+ "limit_exceeded_desc": "Plan {tier} pozwala na maksymalnie {max} kluczy na żądanie. Twój plik ma {keys} kluczy.",
70
+ "insufficient_credits": "Niewystarczająca liczba kredytów",
71
+ "insufficient_credits_desc": "To tłumaczenie wymaga {cost} kredytów, a pozostało Ci {available}.",
72
+ "free_plan_limit_exceeded": "LIMIT PLANU DARMOWEGO PRZEKROCZONY",
73
+ "upgrade_to_pro": "PRZEJDŹ NA PRO (Wkrótce)",
74
+ "pro_benefits_1": "Nielimitowane klucze na plik",
75
+ "pro_benefits_2": "Nielimitowana długość kontekstu",
76
+ "pro_benefits_3": "Tłumaczenie wsadowe",
77
+ "reduce_size": "Na razie prosimy o zmniejszenie rozmiaru pliku lub kontekstu.",
78
+ "select_target_lang": "Wybierz co najmniej jeden język docelowy.",
79
+ "up_to_date": "Wszystkie wybrane języki są aktualne.",
80
+ "translating_placeholder": "// Tłumaczenie...",
81
+ "error_no_data": "// Błąd: Nie zwrócono danych.",
82
+ "error_failed_generic": "// Błąd: Tłumaczenie nie powiodło się. Spróbuj ponownie.",
83
+ "max_langs_reached": "Maksymalnie {n} języki docelowe w darmowym planie.",
84
+ "credits_needed": "Potrzebne kredyty",
85
+ "credits_remaining": "Pozostało",
86
+ "invalid_base_json": "Nieprawidłowy bazowy JSON",
87
+ "invalid_base_content": "Nieprawidłowa treść pliku bazowego"
88
+ }
89
+ },
90
+ "common": {
91
+ "contact": "Kontakt",
92
+ "email": "z17682341097@gmail.com",
93
+ "pro": "PRO",
94
+ "coming_soon": "Wkrótce",
95
+ "pricing": "Cennik",
96
+ "docs": "Dokumentacja i CLI",
97
+ "cli": "CLI",
98
+ "i18n_note": "Wszystkie tłumaczenia na tej stronie zostały wygenerowane za pomocą t9n.",
99
+ "upgrade": "Uaktualnij",
100
+ "auto_detect": "Wykryj automatycznie",
101
+ "soon": "WKRÓTCE",
102
+ "pro_only": "(Tylko {pro})",
103
+ "contact_support": "Kontakt z pomocą",
104
+ "pricing_limits": "Ceny i limity",
105
+ "back_to_home": "POWRÓT DO STRONY GŁÓWNEJ",
106
+ "back_to_editor": "Powrót do edytora",
107
+ "mail_to": "Wyślij e-mail do",
108
+ "cancel": "ANULUJ",
109
+ "close": "ZAMKNIJ",
110
+ "confirm": "POTWIERDŹ",
111
+ "notification": "Powiadomienie"
112
+ },
113
+ "auth": {
114
+ "login": "Zaloguj się",
115
+ "logout": "Wyloguj się",
116
+ "welcome_back": "Witaj ponownie",
117
+ "login_desc": "Zaloguj się, aby uzyskać dostęp do funkcji Pro i wyższych limitów",
118
+ "cli_login_required": "Najpierw zaloguj się używając: t9n auth <your-api-key>",
119
+ "continue_google": "Kontynuuj przez Google",
120
+ "continue_github": "Kontynuuj przez GitHub",
121
+ "terms": "Kontynuując, zgadzasz się na nasze Warunki korzystania i Politykę prywatności."
122
+ },
123
+ "settings": {
124
+ "title": "Ustawienia",
125
+ "apikeys": {
126
+ "title": "Klucze API",
127
+ "desc": "Zarządzaj kluczami API do użytku z narzędziami CLI lub w potokach CI/CD.",
128
+ "create": "Utwórz nowy klucz",
129
+ "name_label": "Nazwa klucza",
130
+ "name_placeholder": "np. CLI na laptopie",
131
+ "key_secret_warning": "Skopiuj swój klucz API teraz. Ze względów bezpieczeństwa nie zostanie on pokazany ponownie.",
132
+ "copy_key": "Kopiuj klucz",
133
+ "list_empty": "Nie utworzono jeszcze żadnych kluczy API.",
134
+ "revoke": "Unieważnij",
135
+ "revoke_confirm": "Czy na pewno chcesz unieważnić ten klucz API? Narzędzia go używające przestaną działać.",
136
+ "last_used": "Ostatnio użyty",
137
+ "never_used": "Nigdy",
138
+ "created": "Utworzono"
139
+ }
140
+ },
141
+ "pricing": {
142
+ "title": "Prosty, przejrzysty cennik",
143
+ "subtitle": "Wybierz plan dopasowany do Twoich potrzeb tłumaczeniowych.",
144
+ "monthly": "miesięcznie",
145
+ "daily": "dziennie",
146
+ "per_request": "na żądanie",
147
+ "get_started": "Rozpocznij",
148
+ "upgrade": "Uaktualnij teraz",
149
+ "contact_sales": "Kontakt ze sprzedażą",
150
+ "features": {
151
+ "credits": "{n} Kredytów",
152
+ "keys": "Do {n} kluczy",
153
+ "langs": "Do {n} języków",
154
+ "upload_download": "Przesyłanie / Pobieranie",
155
+ "diff": "Aktualizacja przyrostowa (Diff)",
156
+ "context": "Świadomość kontekstu"
157
+ },
158
+ "most_popular": "Najpopularniejszy",
159
+ "custom": "Własny"
160
+ },
161
+ "metadata": {
162
+ "title": "t9n - Tłumacz JSON dla Programistów | i18n AI Translator",
163
+ "description": "Tłumacz AI dla plików JSON i18n stworzony dla deweloperów. Zero błędów składniowych, ochrona zmiennych (React Intl, i18next) i inteligentna świadomość kontekstu. Tłumacz oprogramowanie, nie tylko słowa.",
164
+ "og_title": "t9n - Tłumacz JSON dla Programistów",
165
+ "og_description": "Tłumacz pliki JSON i18n bez naruszania zmiennych w kodzie. Obsługuje React Intl, i18next i inne."
166
+ },
167
+ "docs": {
168
+ "title": "Dokumentacja",
169
+ "subtitle": "Poznaj funkcje t9n, od podstawowego użytkowania po zaawansowane aktualizacje przyrostowe i optymalizację kontekstu AI.",
170
+ "sections": {
171
+ "basic": {
172
+ "title": "Podstawowa funkcja: Tłumaczenie w czasie rzeczywistym",
173
+ "content": "t9n jest zaprojektowany dla formatu JSON i18n. Zoptymalizowaliśmy strategię Prompt, aby zapewnić ścisłą ochronę wszystkich zmiennych w kodzie (takich jak {name} lub {{count}}) podczas procesu tłumaczenia.",
174
+ "item1": "Obsługa masowego wyboru języków docelowych, generowanie wielu tłumaczeń naraz.",
175
+ "item2": "Podgląd w czasie rzeczywistym: treść źródłowa i docelowa porównane obok siebie."
176
+ },
177
+ "context": {
178
+ "title": "Świadomość kontekstu",
179
+ "content": "Tłumaczenie to coś więcej niż tylko słowo w słowo. Dostarczając tło aplikacji, AI może dokładniej dobierać słownictwo.",
180
+ "example": "Na przykład to samo słowo „Menu” oznacza „kartę dań” w aplikacji restauracyjnej i „listę funkcji” w programie graficznym. Podanie kontekstu eliminuje dwuznaczność."
181
+ },
182
+ "diff": {
183
+ "title": "Inteligentna aktualizacja przyrostowa (Tryb Diff)",
184
+ "content": "Gdy Twój plik źródłowy (np. en.json) ma nową treść, nie musisz ponownie tłumaczyć całego pliku. Tryb aktualizacji przyrostowej t9n obsługuje teraz pełną automatyzację.",
185
+ "new_feature": "Nowość: W pełni automatyczne rozpoznawanie wielu plików",
186
+ "step1_title": "1. Przesyłanie wielokrotne",
187
+ "step1_desc": "Wybierz jednocześnie plik angielski (bazowy) i istniejące pliki tłumaczeń (np. chiński, japoński) w oknie przesyłania. Koniec z ręcznym porównywaniem.",
188
+ "step2_title": "2. Inteligentne wykrywanie bazy",
189
+ "step2_desc": "System automatycznie zlicza klucze w każdym pliku i traktuje najbardziej kompletny jako „bazę tłumaczenia”, automatycznie uzupełniając brakujące części w innych.",
190
+ "step3_title": "3. Precyzyjne tłumaczenie",
191
+ "step3_desc": "Brakujące klucze są oznaczane jako 🚧 [MISSING]. AI tłumaczy tylko te znaczniki, oszczędzając ponad 90% kredytów.",
192
+ "quote": "„Zachowaj 100% istniejących tłumaczeń, zajmij się tylko nowymi wymaganiami”."
193
+ },
194
+ "cli": {
195
+ "tag": "Dostępne teraz",
196
+ "title": "t9n CLI",
197
+ "content": "Profesjonalne zarządzanie i18n z poziomu terminala. Automatyzuj swój workflow tłumaczeniowy za pomocą naszego potężnego interfejsu wiersza poleceń.",
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": "Połącz swoje lokalne środowisko z kontem t9n.",
205
+ "desc_init": "Utwórz t9n.config.json, aby zapisać preferencje projektu.",
206
+ "desc_scan": "Znajdź w kodzie źródłowym brakujące klucze, których nie ma jeszcze w JSON.",
207
+ "desc_translate": "Bezpośrednio tłumacz lokalne pliki i automatycznie zapisuj wyniki.",
208
+ "desc_diff": "Inteligentne aktualizacje przyrostowe dla wszystkich języków w folderze.",
209
+ "progress": "Gotowe do produkcji"
210
+ }
211
+ },
212
+ "example_correct": "Portfolio\" → \"Portfel inwestycyjny\"",
213
+ "example_incorrect": "Portfolio\" → \"Kolekcja dzieł sztuki\""
214
+ },
215
+ "cli": {
216
+ "diff": {
217
+ "title": "🛰️ T9N CLI - Aktualizacja przyrostowa",
218
+ "analyzing": "🔍 Analizowanie różnic...",
219
+ "comparing": "Porównywanie z istniejącym plikiem...",
220
+ "new_lang": "Wykryto nowy język.",
221
+ "success": "Tłumaczenie odebrane pomyślnie!",
222
+ "updated": "Zaktualizowano:",
223
+ "all_up_to_date": "✨ Wszystkie tłumaczenia są aktualne!"
224
+ },
225
+ "scan": {
226
+ "title": "🔍 T9N CLI - Skaner kodu",
227
+ "scanning": "Skanowanie plików...",
228
+ "scanned": "Zeskanowano {n} plików.",
229
+ "missing_found": "Znaleziono {n} brakujących kluczy (w kodzie, ale NIE w słowniku):",
230
+ "all_present": "✨ Wszystkie klucze z kodu są obecne w słowniku.",
231
+ "orphaned": "Znaleziono {n} potencjalnie nieużywanych kluczy (w słowniku, ale NIE w kodzie):"
232
+ },
233
+ "auth": {
234
+ "verifying": "Weryfikacja klucza API...",
235
+ "success": "Autoryzacja pomyślna! (konfiguracja {target})",
236
+ "key_missing": "Podaj klucz API. Użycie: t9n auth <key>"
237
+ },
238
+ "init": {
239
+ "title": "🎬 T9N - Inicjalizacja projektu",
240
+ "created": "Utworzono konfigurację projektu: {path}",
241
+ "already_exists": "Plik konfiguracyjny już istnieje w: {path}"
242
+ }
243
+ }
244
+ }