Przetłumacz plik JSON i18n z zachowaniem każdego klucza, symbolu zastępczego i formy liczby mnogiej
Prześlij plik en.json (albo kilka plików przestrzeni nazw) i odbierz es.json z tymi samymi zagnieżdżonymi kluczami, w tej samej kolejności i z takimi samymi wcięciami. Tłumaczone są tylko wartości, a każde {name}, {{count}} i każdy plural ICU jest sprawdzany w każdym stringu. Pierwsze stringi są za darmo, bez rejestracji; całe zlecenie, do 5,000 stringów, kosztuje $5, jednorazowa płatność.
- Klucze i zagnieżdżenia nigdy nie są tłumaczone; tablice, liczby i wartości logiczne zostają bez zmian
- Sprawdzane placeholdery: {name}, {{count}}, %s, :attribute, $t(key), @:key
- Plurale ICU zachowują swoją strukturę i dostają kategorie potrzebne w języku docelowym
- Flutter ARB: @metadata zostaje zachowane i służy jako kontekst, @@locale jest aktualizowane
- Nazwa pliku zgodna z językiem: en.json zmienia się w es.json, app_en.arb w app_es.arb
{
"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 jest tłumaczone, a co nie
Każda wartość tekstowa jest wysyłana do tłumaczenia razem z pełnym kluczem jako kontekstem, dzięki czemu "settings.save" i "cart.save" mogą wrócić jako różne słowa. Same klucze nie są nigdy wysyłane. Wartości, które nie są tekstem, na przykład adres URL, adres e-mail albo wartość złożona wyłącznie z placeholderów, jak "{count}", zostają bez zmian.
Tagi rich text używane przez react-intl i podobne biblioteki, takie jak <b>{name}</b> czy <link>Undo</link>, są przed tłumaczeniem zamieniane na znaczniki, a po nim przywracane. Dosłowne sekwencje \n i emoji też muszą przetrwać; string, który cokolwiek z tego straci, jest tłumaczony ponownie, a jeśli i drugi raz się nie uda, zostaje angielski tekst, a klucz trafia na listę dla Ciebie.
Liczba mnoga
Komunikat ICU, taki jak {count, plural, one {# trail} other {# trails}}, jest tłumaczony jako jeden string. Tłumacz dostaje informację, jakich kategorii liczby mnogiej używa język docelowy, na przykład one, few, many i other dla rosyjskiego lub polskiego, a wynik jest sprawdzany pod kątem zachowania nazwy zmiennej i słowa kluczowego plural. Pliki i18next z osobnymi kluczami, takimi jak trail_one i trail_other, są tłumaczone klucz po kluczu; klucze, których brakuje w języku docelowym (trail_few, trail_many), nie są dodawane.
Jak działa narzędzie, ile kosztuje i jak traktujemy Twoje pliki, znajdziesz na stronie narzędzia: Tłumacz plików lokalizacyjnych. Ceny wszystkich narzędzi znajdziesz w dziale cennik.
Ostatnia aktualizacja:
Pytania i odpowiedzi
Czy wynik zachowa moje formatowanie?
Tak. Wcięcia (dwie spacje, cztery spacje lub tabulatory), kolejność kluczy, spacja po dwukropku i końcowy znak nowej linii są kopiowane z Twojego pliku. Plik zminifikowany zostaje w jednej linii.
Czy mogę przesłać kilka plików przestrzeni nazw naraz?
Tak, do 20 plików w jednym zleceniu, na przykład common.json, cart.json i errors.json. Pobierzesz je razem jako jeden plik ZIP.
A co ze stringami, których nie należy tłumaczyć?
Wpisz nazwy produktów i marek w polu „Nigdy nie tłumacz”; każdy string, który którąś zawiera, jest sprawdzany pod kątem jej zachowania. Wartości będące tylko adresem URL, adresem e-mail lub placeholderami są pomijane automatycznie.
Ile to kosztuje?
Pierwsze ciągi tekstu są za darmo. Całe zlecenie, do 5,000 ciągów, kosztuje $5 (jednorazowa płatność). Unlimited obejmuje do 15,000 ciągów na zlecenie. Małe zlecenia to wyjątek: zlecenie do 300 ciągów jest za darmo w całości, razem z pobieraniem plików.