Skip to main content

i18n-konverterare

Konvertera mellan fler än 32 i18n-filformat. Android XML, iOS Strings, XLIFF, PO, JSON, YAML med flera. Förlustfritt när det är möjligt, med tydliga varningar om dataförlust när det inte är det.

Problemet

Varje plattform använder sitt eget översättningsformat. Android använder strings.xml. iOS använder .strings och .stringsdict. Webbappar använder JSON eller YAML. Översättare och TMS-plattformar vill ha XLIFF eller PO. När du behöver dela strängar mellan plattformar slutar det ofta med att du kopierar och klistrar mellan format, skriver tillfälliga skript eller omstrukturerar filer manuellt. Det är tidskrävande, lätt att göra fel i och går sönder varje gång ett nytt format dyker upp.

Ett enda projekt för mobil och webb kan enkelt omfatta fler än 5 olika filformat för översättningar. Att hålla dem synkroniserade manuellt är en kamp du inte kan vinna.

Lösningen

i18n-convert är ett enda kommandoradsverktyg som konverterar mellan fler än 32 i18n-filformat. Det identifierar automatiskt indataformatet, bevarar så mycket av strukturen som möjligt och varnar dig när en konvertering skulle orsaka dataförlust, till exempel av pluralformer i 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

Automatisk identifiering

Indataformatet identifieras automatiskt utifrån filändelsen och innehållet. Inga flaggor behövs.

Förlustfritt när det är möjligt

Metadata, kommentarer och pluralformer bevaras när målformatet stöder dem.

Varningar om dataförlust

När en konvertering skulle medföra att information går förlorad får du tydliga varningar innan någon fil skrivs.

Installation

Installera via npm för enklast möjliga konfiguration, via Homebrew på macOS eller bygg från källkoden med Cargo.

Terminal
npm install -g @i18n-agent/i18n-convert
npm-paketet innehåller förbyggda binärfiler för macOS, Linux och Windows. Ingen Rust-verktygskedja krävs.

Vanliga konverteringar

De flesta team behöver återkommande göra några få konverteringar: JSON till Android XML för mobilappar, PO till JSON för webben och tur-och-retur-konvertering med XLIFF vid överlämning till översättare. Här är några vanliga mönster.

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/

Format som stöds

i18n-convert stöder fler än 32 format inom kategorierna mobil, webb, lokaliseringsstandarder och datautbyte.

Mobil

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

Webb

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

Lokaliseringsstandarder

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

Datautbyte

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

Varningar om dataförlust

Alla format är inte likvärdiga. XLIFF stöder anteckningar, kontext och pluralformer. CSV stöder inget av detta. När du konverterar från ett innehållsrikt format till ett enklare visar i18n-convert exakt vad som kommer att gå förlorat.

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
Använd alltid --dry-run innan du konverterar till ett enklare format i en produktionsmiljö. Då visas alla varningar utan att några filer skrivs.

CI-integrering

Automatisera formatsynkroniseringen i ditt CI/CD-arbetsflöde. När källfilen med översättningar ändras genereras alla härledda format automatiskt på nytt, så att filer för mobil, webb och översättare hålls synkroniserade.

.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
Kombinera i18n-convert med i18n-validate i ditt CI-arbetsflöde. Konvertera formaten först och validera sedan att alla målfiler är fullständiga och korrekt utformade.

Prova i18n Agent nu

Släpp din översättningsfil här

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

eller klicka för att välja en fil

Målspråk

Ingen registrering krävsPrisuppskattning direkt

Vanliga frågor