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.
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.
# 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 jsonSjá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.
npm install -g @i18n-agent/i18n-convertAlgengar 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.
# 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
| 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 |
Vefur
| 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 |
Staðfærslustaðlar
| 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 |
Gagnaskipti
| Format | Extension | Flag |
|---|---|---|
| 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.
$ 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-runSamtenging 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
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 pushPró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