i18n-Konverter
Konvertieren Sie zwischen mehr als 32 i18n-Dateiformaten: Android XML, iOS Strings, XLIFF, PO, JSON, YAML und weitere. Soweit möglich verlustfrei, andernfalls mit deutlichen Warnungen vor Datenverlust.
Das Problem
Jede Plattform verwendet ein anderes Übersetzungsformat. Android nutzt strings.xml, iOS .strings und .stringsdict. Web-Apps nutzen JSON oder YAML. Übersetzungsfachkräfte und TMS-Plattformen benötigen XLIFF oder PO. Um Zeichenfolgen plattformübergreifend zu teilen, kopieren Sie zwischen Formaten, schreiben einmalige Skripte oder strukturieren Dateien manuell um. Das ist mühsam, fehleranfällig und funktioniert nicht mehr, sobald ein neues Format hinzukommt.
Die Lösung
i18n-convert ist ein einzelnes CLI-Werkzeug, das zwischen mehr als 32 i18n-Dateiformaten konvertiert. Es erkennt das Eingabeformat automatisch, erhält so viel Struktur wie möglich und warnt Sie, wenn bei einer Konvertierung Daten verloren gingen, etwa Pluralformen in CSV.
# Auto-detect input format, convert to Android XML
i18n-convert en.json --to android-xml -o strings.xml
# iOS Strings to Gettext PO
i18n-convert Localizable.strings --to po -o messages.po
# XLIFF to Rails YAML
i18n-convert translations.xliff --to yaml-rails -o en.yml
# Pipe to stdout
i18n-convert messages.po --to jsonAutomatische Erkennung
Das Eingabeformat wird anhand von Dateierweiterung und Inhalt automatisch erkannt. Keine Optionen erforderlich.
Soweit möglich verlustfrei
Metadaten, Kommentare und Pluralformen bleiben erhalten, wenn das Zielformat sie unterstützt.
Warnungen vor Datenverlust
Würde eine Konvertierung Informationen verlieren, erhalten Sie ausdrückliche Warnungen, bevor eine Datei geschrieben wird.
Installation
Installieren Sie das Werkzeug für die einfachste Einrichtung über npm, unter macOS über Homebrew oder erstellen Sie es mit Cargo aus dem Quellcode.
npm install -g @i18n-agent/i18n-convertHäufige Konvertierungen
Die meisten Teams benötigen wiederholt einige wenige Konvertierungen: JSON zu Android XML für Mobilgeräte, PO zu JSON für das Web und XLIFF-Hin- und Rückkonvertierungen zur Übergabe an Übersetzungsfachkräfte. Hier finden Sie einige häufige Muster.
# Convert all PO files to JSON
for f in locales/*.po; do
i18n-convert "$f" --to json -o "${f%.po}.json"
done
# Convert entire directory
i18n-convert locales/ --to json --out-dir locales-json/Unterstützte Formate
i18n-convert unterstützt mehr als 32 Formate aus den Bereichen Mobilgeräte, Web, Lokalisierungsstandards und Datenaustausch.
Mobilgeräte
| Format | Extension | Flag |
|---|---|---|
| Android XML | .xml | --to android-xml |
| iOS Strings | .strings | --to ios-strings |
| iOS Stringsdict | .stringsdict | --to ios-stringsdict |
| Flutter ARB | .arb | --to arb |
Web
| Format | Extension | Flag |
|---|---|---|
| JSON (flat) | .json | --to json |
| JSON (nested) | .json | --to json-nested |
| YAML | .yml | --to yaml |
| YAML (Rails) | .yml | --to yaml-rails |
| Properties | .properties | --to properties |
Lokalisierungsstandards
| Format | Extension | Flag |
|---|---|---|
| XLIFF 1.2 | .xlf | --to xliff |
| XLIFF 2.0 | .xlf | --to xliff-2 |
| Gettext PO | .po | --to po |
| Gettext POT | .pot | --to pot |
| TMX | .tmx | --to tmx |
| TBX | .tbx | --to tbx |
Datenaustausch
| Format | Extension | Flag |
|---|---|---|
| CSV | .csv | --to csv |
| TSV | .tsv | --to tsv |
| Excel | .xlsx | --to xlsx |
Warnungen vor Datenverlust
Nicht alle Formate sind gleichwertig. XLIFF unterstützt Hinweise, Kontexte und Pluralformen; CSV keines davon. Bei der Konvertierung von einem ausdrucksstarken in ein einfacheres Format teilt i18n-convert Ihnen genau mit, was verloren geht.
$ i18n-convert plurals.po --to csv
Data loss warnings:
[ERROR] 3 entries use plurals (not supported by CSV)
Proceed? [y/N]
# Skip prompts
i18n-convert plurals.po --to csv --force
# Preview warnings without writing
i18n-convert plurals.po --to csv --dry-runCI-Integration
Automatisieren Sie die Formatsynchronisierung in Ihrer CI/CD-Pipeline. Wenn sich Ihre Ausgangsübersetzungsdatei ändert, erzeugen Sie sämtliche abgeleiteten Formate automatisch neu, damit Dateien für Mobilgeräte, Web und Übersetzungsfachkräfte synchron bleiben.
# .github/workflows/format-sync.yml
name: Sync Translation Formats
on:
push:
branches: [main]
paths: ['locales/en.json']
jobs:
sync-formats:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install i18n-convert
run: npm install -g @i18n-agent/i18n-convert
- name: Convert JSON to Android XML
run: i18n-convert locales/en.json --to android-xml -o android/res/values/strings.xml
- name: Convert JSON to iOS Strings
run: i18n-convert locales/en.json --to ios-strings -o ios/en.lproj/Localizable.strings
- name: Commit synced formats
run: |
git config user.name "github-actions"
git config user.email "[email protected]"
git add android/ ios/
git diff --cached --quiet || git commit -m "chore: sync translation formats"
git pushi18n Agent jetzt testen
Legen Sie Ihre Übersetzungsdatei hier ab
JSON, YAML, PO, XML, CSV, Markdown, Properties
oder zum Auswählen klicken
Zielsprachen