JSON-i18n-Datei übersetzen, mit allen Schlüsseln, Platzhaltern und Pluralformen intakt
Laden Sie en.json (oder mehrere Namespace-Dateien) hoch und erhalten Sie es.json zurück, mit denselben verschachtelten Schlüsseln, derselben Reihenfolge und derselben Einrückung. Übersetzt werden nur die Werte, und in jedem String werden alle {name}, {{count}} und ICU-Plurale geprüft. Die ersten Strings sind ohne Registrierung kostenlos. Der komplette Auftrag mit bis zu 5,000 Strings kostet $5 als Einmalzahlung.
- Schlüssel und Verschachtelung werden nie übersetzt; Arrays, Zahlen und Booleans bleiben unverändert
- Geprüfte Platzhalter: {name}, {{count}}, %s, :attribute, $t(key), @:key
- ICU-Plurale behalten ihre Struktur und erhalten die Kategorien, die die Zielsprache braucht
- Flutter ARB: @metadata bleibt erhalten und dient als Kontext, @@locale wird aktualisiert
- Dateiname mit der Sprache: en.json wird zu es.json, app_en.arb wird zu 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í."
}
Gelb: Platzhalter und ICU-Plural-Syntax, in jedem String geprüft. Türkis: Tags, Escape-Zeichen und Emoji, unverändert übernommen.
Gleiche Schlüssel. Gleiche Platzhalter. Neue Sprache.
Nur die Werte ändern sich. Die Datei kommt mit derselben Verschachtelung und Reihenfolge zurück, benannt es.json. Jeder String, der einen Platzhalter verliert, wird erneut angefragt, bevor er in Ihren Build gelangen kann.
Für diese Seite erfundene Demo-App; die spanischen Strings sind echtes Ergebnis des Tools, aus einer Datei mit 85 Strings.
Was übersetzt wird und was nicht
Jeder String-Wert wird mit seinem vollständigen Schlüssel als Kontext zur Übersetzung geschickt, sodass „settings.save“ und „cart.save“ unterschiedlich übersetzt werden können. Die Schlüssel selbst werden nie gesendet. Werte, die kein Text sind, etwa eine URL, eine E-Mail-Adresse oder ein Wert nur aus Platzhaltern wie „{count}“, bleiben unverändert.
Rich-Text-Tags, wie sie react-intl und ähnliche Bibliotheken verwenden, zum Beispiel <b>{name}</b> oder <link>Undo</link>, werden vor der Übersetzung durch Marker ersetzt und danach wieder eingesetzt. Auch wörtliche \n-Sequenzen und Emoji müssen erhalten bleiben. Ein String, bei dem etwas davon verloren geht, wird erneut übersetzt. Schlägt das zweimal fehl, bleibt der englische Text stehen und der Schlüssel wird Ihnen aufgelistet.
Plurale
Eine ICU-Nachricht wie {count, plural, one {# trail} other {# trails}} wird als ein einziger String übersetzt. Der Übersetzer erfährt, welche Plural-Kategorien die Zielsprache verwendet, zum Beispiel one, few, many und other bei Russisch oder Polnisch. Anschließend wird geprüft, dass Variablenname und Plural-Schlüsselwort erhalten bleiben. i18next-Dateien mit getrennten Schlüsseln wie trail_one und trail_other werden Schlüssel für Schlüssel übersetzt. Schlüssel, die für die Zielsprache fehlen (trail_few, trail_many), werden nicht ergänzt.
Wie das Tool funktioniert, was es kostet und wie mit Ihren Dateien umgegangen wird, steht auf der Seite Lokalisierungsdateien übersetzen; die Preise für alle Tools finden Sie auf der Seite Preise.
Zuletzt aktualisiert:
Fragen und Antworten
Bleibt meine Formatierung im Ergebnis erhalten?
Ja. Einrückung (zwei Leerzeichen, vier Leerzeichen oder Tabs), Schlüsselreihenfolge, das Leerzeichen nach dem Doppelpunkt und ein abschließender Zeilenumbruch werden aus Ihrer Datei übernommen. Eine minimierte Datei bleibt einzeilig.
Kann ich mehrere Namespace-Dateien auf einmal hochladen?
Ja, bis zu 20 Dateien in einem Auftrag, zum Beispiel common.json, cart.json und errors.json. Der Download erfolgt gemeinsam als eine ZIP-Datei.
Was ist mit Strings, die nicht übersetzt werden sollen?
Tragen Sie Produkt- und Markennamen unter „Nie übersetzen“ ein. Bei jedem String, der einen davon enthält, wird geprüft, ob er erhalten bleibt. Werte, die nur aus einer URL, einer E-Mail-Adresse oder Platzhaltern bestehen, werden automatisch übersprungen.
Was kostet das?
Die ersten Strings sind kostenlos. Der komplette Auftrag mit bis zu 5,000 Strings kostet $5 als Einmalzahlung. Unlimited deckt bis zu 15,000 Strings pro Auftrag ab. Kleine Aufträge sind die Ausnahme: Ein Auftrag mit bis zu 300 Strings ist komplett kostenlos, Downloads inklusive.