Převodník i18n
Převádějte mezi více než 32 formáty i18n souborů. Android XML, iOS Strings, XLIFF, PO, JSON, YAML a další. Kde je to možné, bezztrátově; kde ne, s jasnými varováními o ztrátě dat.
Problém
Každá platforma mluví jiným formátem překladů. Android používá strings.xml. iOS používá .strings a .stringsdict. Webové aplikace používají JSON nebo YAML. Překladatelé a TMS platformy chtějí XLIFF nebo PO. Když potřebujete sdílet řetězce mezi platformami, skončíte kopírováním mezi formáty, psaním jednorázových skriptů nebo ručním restrukturováním souborů. Je to únavné, náchylné k chybám a pokaždé se to rozbije, když se objeví nový formát.
Řešení
i18n-convert je jediný CLI nástroj, který převádí mezi 32+ formáty i18n souborů. Automaticky zjistí vstupní formát, zachová co nejvíc struktury a varuje Vás, když by převod způsobil ztrátu dat (například plurály v 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 jsonAutomatická detekce
Vstupní formát se automaticky detekuje podle přípony souboru a obsahu. Nejsou potřeba žádné přepínače.
Bezztrátově, kde to jde
Metadata, komentáře a tvary plurálů se zachovají, pokud je cílový formát podporuje.
Varování o ztrátě dat
Když by převod způsobil ztrátu informací, dostanete explicitní varování ještě předtím, než se zapíše jakýkoli soubor.
Instalace
Nainstalujte přes npm pro nejsnazší nastavení, přes Homebrew na macOS, nebo sestavte ze zdrojů pomocí Cargo.
npm install -g @i18n-agent/i18n-convertBěžné převody
Většina týmů opakovaně potřebuje několik převodů: JSON na Android XML pro mobil, PO na JSON pro web, XLIFF round-tripy pro předání překladatelům. Zde jsou běžné vzory.
# 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/Podporované formáty
i18n-convert podporuje více než 32 formátů napříč mobilními a webovými platformami, lokalizačními standardy a kategoriemi pro výměnu dat.
Mobilní
| 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 |
Lokalizační standardy
| 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 |
Výměna dat
| Format | Extension | Flag |
|---|---|---|
| CSV | .csv | --to csv |
| TSV | .tsv | --to tsv |
| Excel | .xlsx | --to xlsx |
Varování o ztrátě dat
Ne všechny formáty jsou stejné. XLIFF podporuje poznámky, kontexty a tvary plurálů. CSV nepodporuje nic z toho. Když převádíte z bohatého formátu do jednoduššího, i18n-convert Vám přesně řekne, co se ztratí.
$ 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-runIntegrace CI
Automatizujte synchronizaci formátů ve Vaší CI/CD pipeline. Když se změní zdrojový soubor s překlady, automaticky znovu vygenerujte všechny odvozené formáty, aby mobilní, webové a soubory pro překladatele zůstaly synchronizované.
# .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 pushVyzkoušejte i18n Agent nyní
Sem přetáhněte svůj překladový soubor
JSON, YAML, PO, XML, CSV, Markdown, Properties
nebo klikněte a vyberte soubor
Cílové jazyky