Skip to main content

i18n-konverter

Konvertér mellem mere end 32 i18n-filformater. Android XML, iOS Strings, XLIFF, PO, JSON, YAML med mere. Uden tab, hvor det er muligt og med tydelige advarsler om datatab, når det ikke er.

Problemet

Alle platforme bruger forskellige oversættelsesformater. Android bruger strings.xml. iOS bruger .strings og .stringsdict. Webapps bruger JSON eller YAML. Oversættere og TMS-platforme foretrækker XLIFF eller PO. Når du skal dele tekster mellem platforme, ender du med at kopiere og indsætte mellem formater, skrive engangsscripts eller omstrukturere filer manuelt. Det er besværligt, giver let fejl og går i stykker, hver gang et nyt format dukker op.

Et enkelt mobil- og webprojekt kan nemt omfatte mere end 5 forskellige oversættelsesfilformater. At holde dem synkroniseret manuelt er en håbløs kamp.

Løsningen

i18n-convert er ét CLI-værktøj, der konverterer mellem mere end 32 i18n-filformater. Det registrerer automatisk inputformatet, bevarer så meget af strukturen som muligt og advarer dig, når en konvertering medfører datatab, f.eks. pluralisformer 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 registrering

Inputformatet registreres automatisk ud fra filtypen og indholdet. Der kræves ingen flag.

Uden tab, hvor det er muligt

Metadata, kommentarer og pluralisformer bevares, når målformatet understøtter dem.

Advarsler om datatab

Når en konvertering medfører tab af oplysninger, får du tydelige advarsler, før der skrives en fil.

Installation

Installér via npm for at få den nemmeste opsætning, via Homebrew på macOS eller byg fra kildekoden med Cargo.

Terminal
npm install -g @i18n-agent/i18n-convert
npm-pakken indeholder præbyggede binære filer til macOS, Linux og Windows. Der kræves ingen Rust-værktøjskæde.

Almindelige konverteringer

De fleste teams har løbende brug for nogle få konverteringer: JSON til Android XML til mobilapps, PO til JSON til webapps og XLIFF-rundture ved overdragelse til oversættere. Her er nogle almindelige 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/

Understøttede formater

i18n-convert understøtter mere end 32 formater inden for mobil, web, lokaliseringsstandarder og dataudveksling.

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

Dataudveksling

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

Advarsler om datatab

Ikke alle formater er lige. XLIFF understøtter noter, kontekster og pluralisformer. CSV understøtter ingen af delene. Når du konverterer fra et avanceret format til et enklere format, fortæller i18n-convert dig præcis, hvad der går tabt.

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
Brug altid --dry-run, før du konverterer til et enklere format i produktion. Så ser du alle advarsler, uden at der skrives filer.

CI-integration

Automatisér formatsynkronisering i din CI/CD-pipeline. Når din kildeoversættelsesfil ændres, kan du automatisk gendanne alle afledte formater, så mobil-, web- og oversætterfiler forbliver synkroniserede.

.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
Kombinér i18n-convert med i18n-validate i din CI-pipeline. Konvertér først formaterne og validér derefter, at alle målfiler er komplette og korrekt strukturerede.

Prøv i18n Agent nu

Slip din oversættelsesfil her

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

eller klik for at vælge en fil

Målsprog

Kræver ingen tilmeldingEstimat med det samme

Ofte stillede spørgsmål