Skip to main content

Konvertor i18n

Konvertujte medzi viac ako 32 formátmi súborov i18n. Android XML, iOS Strings, XLIFF, PO, JSON, YAML a ďalšie. Kde je to možné, bez straty údajov; v ostatných prípadoch s jasnými upozorneniami.

Problém

Každá platforma používa iný formát prekladov. Android používa strings.xml. iOS používa .strings a .stringsdict. Webové aplikácie používajú JSON alebo YAML. Prekladatelia a platformy TMS požadujú XLIFF alebo PO. Keď potrebujete zdieľať reťazce medzi platformami, skončíte pri kopírovaní medzi formátmi, písaní jednorazových skriptov alebo manuálnej zmene štruktúry súborov. Je to zdĺhavé, náchylné na chyby a prestane fungovať vždy, keď sa objaví nový formát.

Jediný projekt pre mobilné zariadenia a web môže ľahko zahŕňať viac ako 5 rôznych formátov prekladových súborov. Udržiavať ich manuálne synchronizované je márny boj.

Riešenie

i18n-convert je jediný nástroj príkazového riadka, ktorý konvertuje medzi viac ako 32 formátmi súborov i18n. Automaticky rozpozná vstupný formát, zachová čo najviac štruktúry a upozorní Vás, ak by pri konverzii došlo k strate údajov (napríklad tvarov množného čísla 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

Automatické rozpoznanie

Vstupný formát sa rozpozná automaticky podľa prípony a obsahu súboru. Nie sú potrebné žiadne príznaky.

Bezstratovo, kde je to možné

Metadáta, komentáre a tvary množného čísla sa zachovajú, ak ich cieľový formát podporuje.

Upozornenia na stratu údajov

Ak by pri konverzii došlo k strate informácií, ešte pred zápisom súboru dostanete výslovné upozornenia.

Inštalácia

Najjednoduchšie nastavenie získate inštaláciou cez npm, v systéme macOS môžete použiť Homebrew alebo zostaviť nástroj zo zdrojového kódu pomocou Cargo.

Terminal
npm install -g @i18n-agent/i18n-convert
Balík npm obsahuje vopred zostavené binárne súbory pre macOS, Linux a Windows. Nástrojový reťazec Rust nie je potrebný.

Bežné konverzie

Väčšina tímov opakovane potrebuje niekoľko konverzií: JSON na Android XML pre mobilné zariadenia, PO na JSON pre web a obojsmerné prevody XLIFF pri odovzdávaní prekladateľom. Tu je niekoľko bežných postupov.

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/

Podporované formáty

i18n-convert podporuje viac ako 32 formátov pre mobilné zariadenia, web, lokalizačné štandardy a výmenu údajov.

Mobilné zariadenia

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

Lokalizačné štandardy

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

Výmena údajov

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

Upozornenia na stratu údajov

Nie všetky formáty sú rovnocenné. XLIFF podporuje poznámky, kontexty a tvary množného čísla. CSV nepodporuje nič z toho. Pri konverzii z bohatého formátu na jednoduchší Vám i18n-convert presne oznámi, čo sa stratí.

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 konverziou na jednoduchší formát v produkcii vždy použite --dry-run. Zobrazia sa všetky upozornenia bez zápisu akýchkoľvek súborov.

Integrácia CI

Automatizujte synchronizáciu formátov vo svojej pipeline CI/CD. Po zmene zdrojového prekladového súboru automaticky znova vygenerujte všetky odvodené formáty, aby súbory pre mobilné zariadenia, web a prekladateľov zostali synchronizované.

.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
Skombinujte i18n-convert s i18n-validate vo svojej pipeline CI. Najprv skonvertujte formáty a potom overte, či sú všetky cieľové súbory úplné a správne vytvorené.

Vyskúšajte i18n Agent teraz

Potiahnite súbor na preklad sem

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

alebo kliknite a vyberte súbor

Cieľové jazyky

Bez registrácieOkamžitý odhad

Často kladené otázky