Skip to main content

i18n Converter

Pretvarajte između više od 32 formata i18n datoteka. Android XML, iOS Strings, XLIFF, PO, JSON, YAML i još mnogo toga. Bez gubitaka gdje god je moguće, uz jasna upozorenja o gubitku podataka kada nije.

Problem

Svaka platforma upotrebljava drukčiji format prijevoda. Android upotrebljava strings.xml. iOS upotrebljava .strings i .stringsdict. Web-aplikacije upotrebljavaju JSON ili YAML. Prevoditelji i TMS platforme zahtijevaju XLIFF ili PO. Kada trebate dijeliti tekstove među platformama, na kraju ih kopirate i lijepite između formata, pišete jednokratne skripte ili ručno preoblikujete datoteke. To je zamorno, podložno pogreškama i prestaje funkcionirati svaki put kada se pojavi novi format.

Jedan projekt za mobilne uređaje i web lako može obuhvaćati više od 5 različitih formata datoteka prijevoda. Njihovo ručno usklađivanje unaprijed je izgubljena bitka.

Rješenje

i18n-convert jedinstven je CLI alat koji pretvara između više od 32 formata i18n datoteka. Automatski otkriva ulazni format, čuva što je moguće više strukture i upozorava Vas kada bi se pretvorbom izgubili podaci (poput množina u CSV formatu).

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

Automatsko otkrivanje

Ulazni format automatski se otkriva na temelju nastavka i sadržaja datoteke. Oznake nisu potrebne.

Bez gubitaka gdje god je moguće

Metapodaci, komentari i oblici množine čuvaju se kada ih ciljni format podržava.

Upozorenja o gubitku podataka

Kada bi se pretvorbom izgubile informacije, primit ćete jasna upozorenja prije zapisivanja bilo koje datoteke.

Instalacija

Za najjednostavnije postavljanje instalirajte putem npm-a, putem Homebrewa na macOS-u ili izgradite iz izvornog koda pomoću Carga.

Terminal
npm install -g @i18n-agent/i18n-convert
npm paket uključuje unaprijed izgrađene binarne datoteke za macOS, Linux i Windows. Rust toolchain nije potreban.

Uobičajene konverzije

Većini timova redovito treba nekoliko pretvorbi: JSON u Android XML za mobilne uređaje, PO u JSON za web i povratne pretvorbe XLIFF-a radi predaje prevoditeljima. Slijedi nekoliko uobičajenih obrazaca.

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/

Podržani formati

i18n-convert podržava više od 32 formata u kategorijama mobilnih uređaja, weba, lokalizacijskih standarda i razmjene podataka.

Mobilni uređaji

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

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

Razmjena podataka

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

Upozorenja o gubitku podataka

Nisu svi formati jednaki. XLIFF podržava napomene, kontekste i oblike množine. CSV ne podržava ništa od toga. Kada pretvarate iz sadržajno bogatog u jednostavniji format, i18n-convert točno Vam navodi što će se izgubiti.

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
Uvijek upotrijebite --dry-run prije pretvorbe u jednostavniji format u produkciji. Tako ćete vidjeti sva upozorenja bez zapisivanja datoteka.

CI integracija

Automatizirajte sinkronizaciju formata u svojem CI/CD procesu. Kada se izvorna datoteka prijevoda promijeni, automatski ponovno generirajte sve izvedene formate kako bi datoteke za mobilne uređaje, web i prevoditelje ostale usklađene.

.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
Kombinirajte i18n-convert s alatom i18n-validate u svojem CI procesu. Najprije pretvorite formate, a zatim provjerite jesu li sve ciljne datoteke potpune i ispravno oblikovane.

Isprobajte i18n Agent odmah

Povucite datoteku za prijevod ovdje

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

ili kliknite za odabir

Ciljni jezici

Registracija nije potrebnaProcjena odmah

Česta pitanja