Tłumacz plików lokalizacyjnych
Przetłumacz pliki lokalizacyjne aplikacji z każdym kluczem i placeholderem na swoim miejscu
Prześlij pliki JSON, PO, strings.xml, .strings, .xcstrings lub XLIFF, wybierz język i odbierz te same pliki przetłumaczone, gotowe do wrzucenia do projektu. Klucze, komentarze, kolejność i formatowanie zostają dokładnie takie, jak były, a każdy placeholder, np. {name}, {{count}} lub %1$s, jest sprawdzany w każdym stringu. Pierwsze stringi są za darmo i bez rejestracji; całe zlecenie, do 20 plików i 5,000 stringów, kosztuje $5 w jednej płatności, bez subskrypcji. Chatbot poradzi sobie z kilkunastoma stringami, ale plik z tysiącami kluczy często wraca ucięty, ze zmienionymi nazwami kluczy lub zmienionymi placeholderami.
- Do 300 ciągów tekstu za darmo w całości, pierwsze ciągi większego zlecenia za darmo, bez konta
- Całe zlecenie $5, jedna płatność: do 20 plików i 5,000 stringów
- Klucze, zagnieżdżenia, komentarze i kolejność zostają; tłumaczone są tylko wartości
- Placeholdery, liczby mnogie ICU i tagi wewnątrz tekstu sprawdzane w każdym stringu
- Formy liczby mnogiej zapisane zgodnie z językiem docelowym (PO, Android, Xcode)
- 41 języków, ton formalny lub nieformalny, glosariusz i nazwy do zachowania
{
"home.greeting": "Good morning, {name}Buenos días, {name}",
"home.nearby": "{count, plural, =0 {No trails near you yet} one {# trail near you} other {# trails near you}}{count, plural, =0 {Aún no hay rutas cerca de ti} one {# ruta cerca de ti} other {# rutas cerca de ti}}",
"trail.offline_done": "<b>{name}</b> is saved on this phone. You can use the map without a signal.<b>{name}</b> está guardado en este teléfono. Puedes usar el mapa sin señal.",
"trail.share_text": "I just finished {trail} with Trailbook! {km} km and {meters} m up. 🥾¡Acabo de terminar {trail} con Trailbook! {km} km y {meters} m de subida. 🥾",
"saved.empty": "You have not saved any trails yet.\nTap the heart on a trail to keep it here.Aún no has guardado ninguna ruta.\nToca el corazón en una ruta para guardarla aquí."
}
Żółty: placeholdery i składnia liczby mnogiej ICU, sprawdzane w każdym ciągu. Turkusowy: tagi, znaki ucieczki i emoji, bez zmian.
Te same klucze. Te same placeholdery. Nowy język.
Zmieniają się tylko wartości. Plik wraca z tym samym zagnieżdżeniem i kolejnością, pod nazwą es.json, a każdy ciąg, który zgubi placeholder, jest tłumaczony ponownie, zanim trafi do Twojego builda.
Aplikacja demo wymyślona na potrzeby tej strony; hiszpańskie teksty to prawdziwy wynik działania narzędzia, z pliku z 85 ciągami.
Co dostajesz
Pliki wracają do Ciebie w tym samym formacie, nazwane i umieszczone tak, jak oczekuje tego każda platforma: en.json zmienia się w es.json, strings.xml trafia do folderu values-es, a Localizable.strings do es.lproj. Kilka plików pobierzesz razem jako jeden ZIP. Przed pobraniem każdy przetłumaczony string widzisz na ekranie obok oryginału i możesz go edytować.
- JSON i ARB: zagnieżdżone klucze, tablice, kolejność kluczy, wcięcia i odstępy jak w Twoim pliku. Komunikaty ICU, np. {count, plural, one {# item} other {# items}}, zachowują swoją strukturę. W ARB metadane z „@” zostają, a @@locale jest ustawiane.
- PO i POT: msgid i msgctxt nigdy się nie zmieniają; puste wpisy i wpisy fuzzy są tłumaczone, a te, które mają już tłumaczenie, zostają nietknięte. Wpisy w liczbie mnogiej dostają tyle msgstr[n], ile potrzebuje język docelowy, a nagłówek otrzymuje Language i Plural-Forms.
- Android strings.xml: <string>, <string-array> i <plurals>; translatable="false" jest pomijane; apostrofy i cudzysłowy są escapowane tak, jak wymaga Android; zawartość <xliff:g> nigdy nie jest tłumaczona.
- iOS i macOS: pliki .strings zachowują komentarze i kodowanie (często UTF-16); katalogi String Catalogs (.xcstrings) dostają nową lokalizację dla Twojego języka, z wariantami liczby mnogiej, a stringi już przetłumaczone zostają bez zmian.
- XLIFF 1.2 i 2.0: <target> po każdym nieprzetłumaczonym <source>, kody wewnątrz tekstu, takie jak <g>, <x/>, <ph> i <pc>, zostają zachowane, a język docelowy jest ustawiony w pliku.
Tłumaczenie plików ze stringami: chatbot i to narzędzie
Asystenci czatu dobrze tłumaczą krótkie teksty interfejsu, a kilkanaście stringów wklejonych do rozmowy zwykle wraca w porządku. Kłopot z prawdziwym plikiem lokalizacyjnym to długość i składnia: tysiące kluczy, placeholdery, reguły liczby mnogiej i escapowanie, które kompilator albo biblioteka odrzuci przy jednym błędnym znaku.
| Twoja sytuacja | Chatbot | To narzędzie |
|---|---|---|
| Dziesięć etykiet przycisków | Zwykle tłumaczy je dobrze | Tłumaczy je i oddaje Ci plik |
| Plik z 3000 kluczy | Odpowiedź musi być tak długa jak plik, więc często urywa się w połowie | Tłumaczy każdy string w blokach do 60, do 5,000 stringów na zlecenie |
| Klucze i zagnieżdżenia | Przepisuje cały plik, więc klucze mogą zostać przetłumaczone, zmienione lub pominięte | Klucze nigdy nie są wysyłane do tłumaczenia; plik jest odbudowywany na podstawie Twojego |
| Placeholdery, np. {name}, %1$s lub :attribute | Zwykle je zachowuje, ale nic tego nie sprawdza | Sprawdza każdy string; ten, który zgubił placeholder, jest tłumaczony ponownie, a jeśli to nie pomoże, zostaje w języku źródłowym i trafia na listę |
| Liczba mnoga w rosyjskim, polskim lub arabskim | Często kopiuje dwie angielskie formy | Zapisuje każdą formę liczby mnogiej potrzebną w języku docelowym, z przykładowymi liczbami dla każdej |
| Apostrofy w stringach Androida | Może zostawić nieescapowany apostrof, który psuje build | Escapuje apostrofy i cudzysłowy tak, jak wymaga Android |
Jak przetłumaczyć plik lokalizacyjny
-
1
Prześlij pliki i wybierz język
Wrzuć jeden lub kilka plików z tego samego projektu: JSON, ARB, PO lub POT, strings.xml, .strings, .xcstrings albo XLIFF. Wybierz język docelowy i ton oraz wypisz nazwy produktów, które mają zostać bez zmian.
-
2
Sprawdź pierwsze stringi za darmo
Pierwsze stringi pojawiają się na ekranie, a ich klucze obok tekstu źródłowego. Każdy z nich możesz poprawić na miejscu. Ten krok nie wymaga konta.
-
3
Odblokuj i pobierz
Pierwsze stringi wyglądają dobrze? Odblokuj całe zlecenie za $5, a potem pobierz przetłumaczone pliki oraz listę ostrzeżeń, jeśli coś wymaga Twojej uwagi.
Dlaczego długie pliki ze stringami przerastają ogólnych asystentów AI
Plik lokalizacyjny to w równym stopniu kod, co tekst. Aby przetłumaczyć go na czacie, asystent musi wypisać cały plik od nowa, z kluczami, nawiasami i escapowaniem, a plik z kilkoma tysiącami stringów jest dłuższy niż jedna odpowiedź. Asystent urywa w połowie albo prosi, żebyś napisał, by kontynuował, a Ty zostajesz ze sklejaniem kawałków.
Drugi problem to składnia. Przetłumaczony przez pomyłkę klucz, {count} zamienione w {cuenta}, %1$s bez znaku dolara, nieescapowany apostrof w strings.xml: każda z tych zmian jest drobna na tle długiej odpowiedzi, a każda może zepsuć build albo pokazać Twoim użytkownikom surowy placeholder.
To narzędzie nigdy nie prosi modelu o przepisanie Twojego pliku. Odczytuje plik jako zestaw stringów i wysyła tylko tekst, z kluczem i ewentualnym komentarzem dewelopera jako kontekstem, w blokach do 60 stringów, wymagając osobnej odpowiedzi dla każdego z nich. Tagi wewnątrz tekstu są wcześniej zamieniane na krótkie znaczniki. Każda odpowiedź jest sprawdzana: te same placeholdery, te same sekwencje escape, np. \n, te same znaczniki, wypisane przez Ciebie nazwy oraz każda forma liczby mnogiej. String, który nie przejdzie kontroli, jest tłumaczony ponownie; jeśli zawiedzie dwa razy, zostaje tekst źródłowy, a string trafia na listę dla Ciebie. Na końcu plik jest odbudowywany na podstawie Twojego oryginału.
Co ludzie tłumaczą
- Aplikacje w React, Vue, Angular i Next.js: pliki JSON z i18next, vue-i18n, react-intl i ngx-translate
- Aplikacje we Flutterze: pliki .arb, z opisami z @metadata używanymi jako kontekst
- Wtyczki i motywy WordPress, Django oraz inne projekty oparte na gettext: szablony .pot i pliki .po
- Aplikacje na Androida: res/values/strings.xml z tablicami ciągów i liczbami mnogimi
- Aplikacje na iOS i macOS: Localizable.strings oraz String Catalogs (.xcstrings)
- Pliki wyeksportowane z platformy tłumaczeniowej lub z Xcode w formacie XLIFF
Czego nie robi
Nie obsługuje jeszcze plików YAML, .properties, .resx ani .stringsdict i nie dodaje kluczy liczby mnogiej i18next (key_one, key_few), których brakuje w pliku źródłowym: tłumaczy klucze, które masz. W plikach .xcstrings ciągi z podstawieniami lub wariantami dla urządzeń zostają bez zmian.
Nie nadpisuje tłumaczeń, które już masz: uzupełnione wpisy PO, cele XLIFF oznaczone jako przetłumaczone i wpisy String Catalog w Twoim języku zostają bez zmian. Jedna płatność obejmuje do 20 plików i 5,000 ciągów; Unlimited obejmuje do 15,000 ciągów na zlecenie.
To tłumaczenie maszynowe ze sprawdzaniem struktury. Świetnie nadaje się do szybkiego wydania pierwszej wersji językowej i do utrzymywania projektu w synchronizacji. Opisy w sklepach z aplikacjami, teksty prawne i wszystko, co wymaga stylu marki, niech sprawdzi native speaker.
Jak uzyskać dobry wynik
Kontekst decyduje o tym, czy „Save” to czasownik, czy zniżka. Klucze takie jak settings.save_button oraz komentarze w pliku (#. w PO, opisy @key w ARB, /* komentarze */ w .strings) są wysyłane razem z każdym ciągiem, więc plik z czytelnymi kluczami i kilkoma komentarzami przetłumaczy się lepiej.
Wpisz nazwy swojej aplikacji i produktów w polu „Nie tłumacz”, a w językach, które mają obie formy, wybierz formalną lub nieformalną. Potraktuj darmowe ciągi jako test, a po odblokowaniu sprawdź listę ostrzeżeń: każdy wpis pokazuje klucz, problem i to, co zwrócił model.
Według języka i sytuacji
Przetłumacz plik JSON i18n
Prześlij plik en.json (albo kilka plików przestrzeni nazw) i odbierz es.json z tymi samymi zagnieżdżonymi kluc...
Czytaj dalej →Tłumacz plik PO online
Prześlij szablon .pot albo częściowo przetłumaczony plik .po i odbierz .po z uzupełnionym każdym pustym msgstr...
Czytaj dalej →Ile to kosztuje
Małe zlecenia, pierwsze ciągi
Za darmo
Zlecenie do 300 ciągów tekstu jest w całości za darmo, łącznie z plikami do pobrania. Wynik zobaczysz na ekranie, bez konta. 1 zlecenie dziennie, a z darmowym kontem 3 dziennie.
Całe zlecenie
$5
Jedna płatność za do 20 plików i 5,000 ciągów. Bez subskrypcji, bez terminu ważności.
Unlimited
$19 / tydzień
Wszystkie narzędzia w serwisie, przy zleceniach do 15,000 ciągów.
Pytania i odpowiedzi
Czy ChatGPT przetłumaczy plik lokalizacyjny JSON?
Mały plik zwykle tak. Plik z tysiącami kluczy musi wrócić w jednej odpowiedzi, więc chatbot często urywa w połowie, a nikt nie sprawdza, czy wszystkie klucze i placeholdery ocalały. To narzędzie tłumaczy wartości w blokach, sprawdza każdy placeholder i odbudowuje plik na podstawie Twojego.
Jakie formaty są obsługiwane?
JSON (i18next, vue-i18n, react-intl, ngx-translate i podobne), Flutter ARB, gettext PO i POT, Android strings.xml, iOS i macOS .strings oraz .xcstrings, a także XLIFF 1.2 i 2.0. Każdy plik może mieć do 10 MB, a w jednym zleceniu można przesłać do 20 plików.
Czy klucze i placeholdery zostają zachowane?
Klucze nigdy nie są wysyłane do tłumaczenia. W każdym ciągu sprawdzamy placeholdery, takie jak {name}, {{count}}, %s, %1$d, %@, :attribute i %{name}, sekwencje specjalne, takie jak \n, tagi w tekście i emoji. Ciąg, w którym coś zniknie, jest tłumaczony ponownie; jeśli to nie pomoże, zostaje tekst źródłowy, a ciąg trafia na listę ostrzeżeń.
Jak są obsługiwane liczby mnogie?
Komunikaty ICU zachowują swoją strukturę i dostają kategorie liczby mnogiej używane w języku docelowym. Wpisy PO z msgid_plural dostają tyle form msgstr[n], ile potrzebuje język docelowy, a nagłówek dostaje odpowiedni Plural-Forms. Android <plurals> i warianty liczby mnogiej z Xcode są zapisywane z kategoriami języka docelowego, na przykład one, few, many i other dla rosyjskiego.
Co dzieje się z ciągami, które są już przetłumaczone?
Zostają bez zmian. Tłumaczone są tylko puste lub oznaczone jako fuzzy wpisy PO, jednostki XLIFF bez gotowego celu oraz wpisy String Catalog bez Twojego języka. W JSON, .strings i strings.xml każda wartość jest traktowana jako tekst źródłowy.
Na jakie języki można tłumaczyć?
41 języków, m.in. hiszpański, francuski, niemiecki, włoski, portugalski (brazylijski i europejski), niderlandzki, polski, rosyjski, ukraiński, turecki, arabski, hebrajski, hindi, indonezyjski, wietnamski, tajski, japoński, koreański i chiński (uproszczony i tradycyjny).
Czy to jest darmowe?
Pierwsze ciągi każdego zlecenia tłumaczymy za darmo i pokazujemy na ekranie, bez rejestracji. Całe zlecenie wraz z plikami do pobrania kosztuje $5, jednorazowa płatność. Unlimited za $19 tygodniowo obejmuje wszystkie narzędzia w serwisie. Wyjątkiem są małe zlecenia: zlecenie do 300 ciągów jest za darmo w całości, łącznie z plikami do pobrania.
Czy moje pliki są prywatne?
Tylko Ty możesz otworzyć swoje zlecenie. Ciągi są wysyłane do dostawcy modelu AI wyłącznie po to, by je przetłumaczyć, i to trasami, które nie wykorzystują Twoich danych do trenowania. Zlecenia przesłane bez konta są usuwane po 7 dniach, a każde zlecenie możesz w dowolnej chwili usunąć samodzielnie.
Zaktualizowano 23 października 2026 · APPFACT STUDIO LTD