Skip to main content

i18n-sniðbreytir

Umbreyttu milli yfir 32 i18n-skráasniða. Android XML, iOS Strings, XLIFF, PO, JSON, YAML og fleira. Taplaust þegar unnt er, annars með skýrum viðvörunum um gagnatap.

Vandamálið

Hvert kerfi notar sitt eigið þýðingarsnið. Android notar strings.xml. iOS notar .strings og .stringsdict. Vefforrit nota JSON eða YAML. Þýðendur og TMS-kerfi vilja XLIFF eða PO. Þegar deila þarf strengjum milli kerfa endarðu á að afrita og líma milli sniða, skrifa sértækar skriftur eða endurskipuleggja skrár handvirkt. Þetta er þreytandi, hætt við villum og bregst í hvert sinn sem nýtt snið kemur fram.

Eitt verkefni fyrir farsíma og vef getur auðveldlega falið í sér yfir 5 mismunandi þýðingarskráasnið. Það er vonlaus barátta að halda þeim samstilltum handvirkt.

Lausnin

i18n-convert er eitt skipanalínuverkfæri sem umbreytir milli yfir 32 i18n-skráasniða. Það greinir inntakssniðið sjálfkrafa, varðveitir eins mikla formgerð og unnt er og varar þig við þegar umbreyting myndi valda gagnatapi, til dæmis á fleirtölum í 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

Sjálfvirk greining

Inntakssniðið er greint sjálfkrafa út frá skráarendingu og innihaldi. Engar færibreytur eru nauðsynlegar.

Taplaust þegar unnt er

Lýsigögn, athugasemdir og fleirtöluform varðveitast þegar marksniðið styður þau.

Viðvaranir um gagnatap

Þegar umbreyting myndi valda upplýsingatapi færðu skýrar viðvaranir áður en nokkur skrá er skrifuð.

Uppsetning

Settu upp með npm á einfaldasta hátt, Homebrew á macOS eða smíðaðu úr frumkóða með Cargo.

Terminal
npm install -g @i18n-agent/i18n-convert
npm-pakkinn inniheldur forsmíðaðar keyrsluskrár fyrir macOS, Linux og Windows. Rust-verkfærakeðja er ekki nauðsynleg.

Algengar umbreytingar

Flest teymi þurfa að endurtaka nokkrar umbreytingar: úr JSON í Android XML fyrir farsíma, úr PO í JSON fyrir vefinn og XLIFF fram og til baka við afhendingu til þýðenda. Hér eru nokkur algeng mynstur.

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/

Studd snið

i18n-convert styður yfir 32 snið fyrir farsíma, vef, staðfærslustaðla og gagnaskipti.

Farsímar

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

Vefur

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

Staðfærslustaðlar

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

Gagnaskipti

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

Viðvaranir um gagnatap

Snið bjóða upp á mismunandi möguleika. XLIFF styður athugasemdir, samhengi og fleirtöluform. CSV styður ekkert af þessu. Þegar þú umbreytir úr innihaldsríku sniði í einfaldara snið segir i18n-convert þér nákvæmlega hvað tapast.

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
Notaðu ávallt --dry-run áður en þú umbreytir í einfaldara snið í rekstrarumhverfi. Þá sérðu allar viðvaranir án þess að nokkrar skrár séu skrifaðar.

Samtenging við CI

Gerðu samstillingu sniða sjálfvirka í CI/CD-vinnslukeðjunni þinni. Þegar frumþýðingarskráin breytist eru öll afleidd snið endurgerð sjálfkrafa svo skrár fyrir farsíma, vef og þýðendur haldist samstilltar.

.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
Notaðu i18n-convert ásamt i18n-validate í CI-vinnslukeðjunni þinni. Umbreyttu sniðunum fyrst og staðfestu síðan að allar markskrár séu fullgerðar og rétt formaðar.

Prófaðu i18n Agent núna

Slepptu þýðingarskránni þinni hér

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

eða smelltu til að fletta

Markmál

Engin skráning nauðsynlegKostnaðaráætlun samstundis

Algengar spurningar