Skip to main content

i18n Converter

Alakítson át több mint 32 i18n-fájlformátum között. Android XML, iOS Strings, XLIFF, PO, JSON, YAML és más formátumok. Ahol lehetséges, veszteségmentesen, ellenkező esetben egyértelmű adatvesztési figyelmeztetésekkel.

A probléma

Minden platform más fordítási formátumot használ. Az Android strings.xml, az iOS .strings és .stringsdict, a webalkalmazások JSON vagy YAML fájlokat használnak. A fordítók és TMS-platformok XLIFF vagy PO formátumot igényelnek. Ha karakterláncokat szeretne megosztani a platformok között, formátumok között másolgat, egyszer használatos szkripteket ír, vagy kézzel alakítja át a fájlokat. Ez fáradságos, hibalehetőségekkel teli, és minden új formátum megjelenésekor elromlik.

Egyetlen mobil- és webprojekt könnyen használhat több mint 5 különböző fordításfájl-formátumot. Ezek kézi szinkronban tartása reménytelen küzdelem.

A megoldás

Az i18n-convert egyetlen parancssori eszköz, amely több mint 32 i18n-fájlformátum között alakít át. Automatikusan felismeri a bemeneti formátumot, a lehető legtöbb szerkezetet megőrzi, és figyelmeztet, ha az átalakítás adatvesztéssel járna (például CSV-ben a többes számú alakoknál).

Terminal
# 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 json

Automatikus felismerés

A bemeneti formátumot a fájlkiterjesztés és a tartalom alapján automatikusan felismeri. Nincs szükség kapcsolókra.

Ahol lehetséges, veszteségmentes

A metaadatok, megjegyzések és többes számú alakok megmaradnak, ha a célformátum támogatja őket.

Adatvesztési figyelmeztetések

Ha egy átalakítás információvesztéssel járna, a fájl írása előtt kifejezett figyelmeztetéseket kap.

Telepítés

A legegyszerűbb beállításhoz telepítse npm-mel, macOS-en Homebrew-val, vagy fordítsa forrásból a Cargo segítségével.

Terminal
npm install -g @i18n-agent/i18n-convert
Az npm-csomag előre elkészített binárisokat tartalmaz macOS, Linux és Windows rendszerhez. Nincs szükség Rust-eszközláncra.

Gyakori átalakítások

A legtöbb csapat rendszeresen néhány átalakítást használ: JSON-ból Android XML mobilhoz, PO-ból JSON webhez, XLIFF oda-vissza átalakítás fordítói átadáshoz. Íme néhány gyakori minta.

Batch conversion
# 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/

Támogatott formátumok

Az i18n-convert több mint 32 formátumot támogat mobil-, webes, lokalizációs szabvány- és adatcsere-kategóriákban.

Mobil

FormatExtensionFlag
Android XML.xml--to android-xml
iOS Strings.strings--to ios-strings
iOS Stringsdict.stringsdict--to ios-stringsdict
Flutter ARB.arb--to arb

Web

FormatExtensionFlag
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

Lokalizációs szabványok

FormatExtensionFlag
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

Adatcsere

FormatExtensionFlag
CSV.csv--to csv
TSV.tsv--to tsv
Excel.xlsx--to xlsx

Adatvesztési figyelmeztetések

Nem minden formátum egyenértékű. Az XLIFF támogatja a megjegyzéseket, kontextusokat és többes számú alakokat. A CSV egyiket sem. Gazdag formátumból egyszerűbbe alakításkor az i18n-convert pontosan megmondja, mi fog elveszni.

Terminal
$ 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-run
Éles környezetben egyszerűbb formátumba alakítás előtt mindig használja a --dry-run kapcsolót. Így fájlok írása nélkül láthat minden figyelmeztetést.

CI-integráció

Automatizálja a formátumok szinkronizálását a CI/CD-folyamatban. A forrás fordításfájl változásakor automatikusan hozza létre újra az összes származtatott formátumot, hogy a mobil-, webes és fordítói fájlok szinkronban maradjanak.

.github/workflows/format-sync.yml
# .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 push
Kombinálja az i18n-convert és az i18n-validate eszközt a CI-folyamatban. Először alakítsa át a formátumokat, majd ellenőrizze, hogy minden célfájl teljes és helyesen formázott-e.

Try i18n Agent Now

Drop your translation file here

JSON, YAML, PO, XML, CSV, Markdown, Properties

or click to browse

Target languages

No signup requiredInstant estimate

Gyakran Ismételt Kérdések