Skip to main content

Pretvornik i18n

Pretvarjajte med več kot 32 oblikami datotek i18n: Android XML, iOS Strings, XLIFF, PO, JSON, YAML in drugimi. Kjer je mogoče brez izgub, sicer z jasnimi opozorili o izgubi podatkov.

Težava

Vsaka platforma uporablja drugo prevajalsko obliko. Android uporablja strings.xml. iOS uporablja .strings in .stringsdict. Spletne aplikacije uporabljajo JSON ali YAML. Prevajalci in platforme TMS želijo XLIFF ali PO. Ko morate nize deliti med platformami, jih kopirate med oblikami, pišete enkratne skripte ali ročno preurejate datoteke. To je zamudno, nagnjeno k napakam in se pokvari ob vsaki novi obliki.

En sam mobilni in spletni projekt lahko zlahka vključuje več kot 5 različnih oblik prevajalskih datotek. Ročno usklajevanje je izgubljena bitka.

Rešitev

i18n-convert je enotno orodje CLI, ki pretvarja med več kot 32 oblikami datotek i18n. Samodejno zazna vhodno obliko, ohrani čim več strukture in Vas opozori, kadar bi pretvorba izgubila podatke, na primer množinske oblike v CSV.

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

Samodejno zaznavanje

Vhodna oblika se samodejno zazna iz pripone datoteke in vsebine. Zastavice niso potrebne.

Brez izgub, kjer je mogoče

Metapodatki, komentarji in množinske oblike se ohranijo, kadar jih ciljna oblika podpira.

Opozorila o izgubi podatkov

Kadar bi pretvorba izgubila podatke, pred zapisom katere koli datoteke prejmete izrecna opozorila.

Namestitev

Za najpreprostejšo nastavitev namestite prek npm, v macOS prek Homebrew ali pa izvorno kodo zgradite s Cargo.

Terminal
npm install -g @i18n-agent/i18n-convert
Paket npm vključuje vnaprej zgrajene binarne datoteke za macOS, Linux in Windows. Veriga orodij Rust ni potrebna.

Pogoste pretvorbe

Večina ekip redno potrebuje nekaj pretvorb: JSON v Android XML za mobilne naprave, PO v JSON za splet in povratne pretvorbe XLIFF za predajo prevajalcem. Spodaj je nekaj pogostih vzorcev.

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/

Podprte oblike

i18n-convert podpira več kot 32 oblik v kategorijah mobilnih in spletnih rešitev, lokalizacijskih standardov ter izmenjave podatkov.

Mobilne rešitve

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

Splet

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

Lokalizacijski standardi

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

Izmenjava podatkov

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

Opozorila o izgubi podatkov

Vse oblike niso enakovredne. XLIFF podpira opombe, kontekste in množinske oblike, CSV pa nič od tega. Ko bogato obliko pretvorite v preprostejšo, i18n-convert natančno sporoči, kaj bo izgubljeno.

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
Pred pretvarjanjem v preprostejšo obliko v produkciji vedno uporabite --dry-run. Tako brez zapisovanja datotek vidite vsa opozorila.

Integracija CI

Sinhronizacijo oblik avtomatizirajte v svojem pipeline CI/CD. Ko se izvorna prevajalska datoteka spremeni, samodejno znova ustvarite vse izpeljane oblike, da mobilne, spletne in prevajalske datoteke ostanejo usklajene.

.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
V pipeline CI združite i18n-convert z i18n-validate. Najprej pretvorite oblike, nato preverite, ali so vse ciljne datoteke popolne in pravilno oblikovane.

Preizkusite i18n Agent zdaj

Spustite prevajalsko datoteko sem

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

ali kliknite za izbiro

Ciljni jeziki

Registracija ni potrebnaTakojšnja ocena

Pogosta vprašanja