Skip to main content

i18n dönüştürücü

32'den fazla i18n dosya biçimi arasında dönüştürme yapın. Android XML, iOS Strings, XLIFF, PO, JSON, YAML ve daha fazlası. Mümkün olduğunda kayıpsız dönüşüm, aksi durumda açık veri kaybı uyarıları.

Sorun

Her platform farklı bir çeviri biçimi kullanır. Android strings.xml kullanır. iOS .strings ve .stringsdict kullanır. Web uygulamaları JSON veya YAML kullanır. Çevirmenler ve TMS platformları XLIFF veya PO ister. Dizeleri platformlar arasında paylaşmanız gerektiğinde biçimler arasında kopyalayıp yapıştırmak, tek kullanımlık betikler yazmak veya dosyaları elle yeniden yapılandırmak zorunda kalırsınız. Bu süreç yorucudur, hataya açıktır ve yeni bir biçim ortaya çıktığında yeniden bozulur.

Tek bir mobil ve web projesinde kolayca 5'ten fazla farklı çeviri dosyası biçimi kullanılabilir. Bunları elle eşzamanlı tutmaya çalışmak sonuç vermeyen bir uğraştır.

Çözüm

i18n-convert, 32'den fazla i18n dosya biçimi arasında dönüştürme yapan tek bir CLI aracıdır. Girdi biçimini otomatik olarak algılar, yapıyı mümkün olduğunca korur ve bir dönüşümün veri kaybına yol açacağı durumlarda (CSV'deki çoğul biçimleri gibi) sizi uyarır.

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

Otomatik algılama

Girdi biçimi, dosya uzantısından ve içerikten otomatik olarak algılanır. Bayrak gerekmez.

Mümkün olduğunda kayıpsız

Hedef biçim desteklediğinde meta veriler, yorumlar ve çoğul biçimleri korunur.

Veri kaybı uyarıları

Bir dönüşüm bilgi kaybına yol açacaksa herhangi bir dosya yazılmadan önce açık uyarılar alırsınız.

Kurulum

En kolay kurulum için npm, macOS'te Homebrew aracılığıyla yükleyin veya Cargo ile kaynak koddan derleyin.

Terminal
npm install -g @i18n-agent/i18n-convert
npm paketi macOS, Linux ve Windows için önceden derlenmiş ikili dosyalar içerir. Rust araç zinciri gerekmez.

Yaygın dönüşümler

Çoğu ekip birkaç dönüşümü düzenli olarak kullanır: mobil için JSON'dan Android XML'e, web için PO'dan JSON'a ve çevirmenlere teslim için XLIFF gidiş dönüşleri. Yaygın kalıplardan bazıları aşağıdadır.

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/

Desteklenen biçimler

i18n-convert; mobil, web, yerelleştirme standartları ve veri alışverişi kategorilerinde 32'den fazla biçimi destekler.

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

Yerelleştirme standartları

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

Veri alışverişi

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

Veri kaybı uyarıları

Tüm biçimler aynı özelliklere sahip değildir. XLIFF notları, bağlamları ve çoğul biçimlerini destekler. CSV ise bunların hiçbirini desteklemez. Zengin bir biçimden daha basit bir biçime dönüştürme yaptığınızda i18n-convert tam olarak nelerin kaybolacağını bildirir.

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
Üretimde daha basit bir biçime dönüştürme yapmadan önce her zaman --dry-run kullanın. Böylece hiçbir dosya yazmadan tüm uyarıları görebilirsiniz.

CI entegrasyonu

CI/CD işlem hattınızda biçim eşzamanlamasını otomatikleştirin. Kaynak çeviri dosyanız değiştiğinde türetilmiş tüm biçimleri otomatik olarak yeniden oluşturun; böylece mobil, web ve çevirmen dosyaları eşzamanlı kalsın.

.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
CI işlem hattınızda i18n-convert ile i18n-validate araçlarını birlikte kullanın. Önce biçimleri dönüştürün, ardından tüm hedef dosyaların eksiksiz ve doğru biçimlendirilmiş olduğunu doğrulayın.

i18n Agent'ı şimdi deneyin

Çeviri dosyanızı buraya bırakın

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

veya göz atmak için tıklayın

Hedef diller

Kayıt gerekmezAnında fiyat tahmini

Sık sorulan sorular