Skip to main content

i18n Converter

Konverter mellom 32+ i18n-filformater. Android XML, iOS Strings, XLIFF, PO, JSON, YAML og mer. Tapsfritt der det er mulig, med tydelige advarsler om datatap når det ikke er det.

Problemet

Hver plattform bruker sitt eget oversettelsesformat. Android bruker strings.xml. iOS bruker .strings og .stringsdict. Webapper bruker JSON eller YAML. Oversettere og TMS-plattformer vil ha XLIFF eller PO. Når du trenger å dele strenger mellom plattformer, ender du opp med å kopiere og lime inn mellom formater, skrive engangsskript eller omstrukturere filer manuelt. Det er tidkrevende, feilutsatt og slutter å fungere hver gang et nytt format dukker opp.

Ett enkelt mobil- og webprosjekt kan lett omfatte 5+ forskjellige oversettelsesfilformater. Det er nærmest umulig å holde dem synkronisert manuelt.

Løsningen

i18n-convert er ett enkelt CLI-verktøy som konverterer mellom 32+ i18n-filformater. Det oppdager automatisk inndataformatet, bevarer så mye struktur som mulig, og advarer deg når en konvertering vil føre til datatap (som flertallsformer 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 gjenkjenning

Inndataformatet gjenkjennes automatisk ut fra filendelse og innhold. Ingen flagg nødvendig.

Tapsfritt der det er mulig

Metadata, kommentarer og flertallsformer bevares når målformatet støtter dem.

Advarsler om datatap

Når en konvertering vil føre til tap av informasjon, får du tydelige advarsler før det skrives noen filer.

Installasjon

Installer via npm for enklest oppsett, Homebrew på macOS, eller bygg fra kildekode med Cargo.

Terminal
npm install -g @i18n-agent/i18n-convert
npm-pakken inneholder ferdigbygde binærfiler for macOS, Linux og Windows. Ingen Rust-verktøykjede kreves.

Vanlige konverteringer

De fleste team trenger et fåtall konverteringer gjentatte ganger: JSON til Android XML for mobil, PO til JSON for web, XLIFF tur-retur for overlevering til oversettere. Her er noen vanlige mønstre.

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/

Støttede formater

i18n-convert støtter 32+ formater innenfor kategoriene mobil, web, lokaliseringsstandarder og datautveksling.

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

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

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

Datautveksling

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

Advarsler om datatap

Ikke alle formater er like. XLIFF støtter notater, kontekster og flertallsformer. CSV støtter ingen av delene. Når du konverterer fra et rikt format til et enklere, forteller i18n-convert deg nøyaktig hva som vil gå tapt.

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
Bruk alltid --dry-run før du konverterer til et enklere format i produksjon. Dette viser deg alle advarsler uten å skrive noen filer.

CI-integrasjon

Automatiser formatsynkronisering i CI/CD-pipelinen din. Når kildeoversettelsesfilen endres, regenereres automatisk alle avledede formater slik at mobil-, web- og oversetterfiler holdes synkronisert.

.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
Kombiner i18n-convert med i18n-validate i CI-pipelinen din. Konverter formater først, og valider deretter at alle målfiler er komplette og korrekt formatert.

Prøv i18n Agent nå

Slipp oversettelsesfilen din her

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

eller klikk for å bla gjennom

Målspråk

Ingen registrering krevesUmiddelbart estimat

Ofte stilte spørsmål