i18n doğrulayıcı
Eksik anahtarlar, bozuk yer tutucular ve tutarsız çoğul biçimleri için çeviri dosyalarını denetleyin. Tek komut. 9 denetim. 32 biçim. Sıfır yapılandırma.
Sorun
Kullanıcılar karşılaşana kadar çeviri sorunları görünmez. Eksik bir anahtar, gerçek metin yerine "settings.billing.title" gibi ham bir yol gösterir. Bozuk bir yer tutucu, "$9.99" yerine "{price}" ifadesini düz metin olarak görüntüler. Hatalı biçimlendirilmiş bir çoğul ifade, sayı sıfır olduğunda çökmeye yol açar. Hiç kimse 15 yerel ayar dosyasındaki farkları elle karşılaştırmadığı için bu hatalar kod incelemesinden kaçar.
Missing keys
Blank text or key paths shown to users
Broken placeholders
{price} displays as literal text instead of $9.99
Orphaned files
Outdated translations confuse the build system
Malformed files
Runtime crashes when users switch languages
Çözüm
i18n-validate tüm çeviri dosyalarınızı tek geçişte tarar. Klasör düzeninizi ve dosya biçiminizi otomatik olarak algılar, her dili referans dille karşılaştırır ve sorunun ne olduğunu ve nerede bulunduğunu tam olarak bildirir. Eklenti, yapılandırma veya özel test kodu gerekmez.
| Check | Severity | What it catches |
|---|---|---|
| missing-keys | error | Key exists in reference but is absent in a translation |
| extra-keys | error | Key exists in translation but not in the reference |
| placeholders | error | {price}, {{name}}, %s differ between languages |
| plural-structure | error | Plural forms are malformed or missing required categories |
| missing-languages | error | Expected language has no files or directory |
| orphaned-languages | error | Language files exist but are not in the expected list |
| parse-errors | error | File fails to parse (broken JSON, XML, YAML, etc.) |
| empty-values | warning | Key is present but the translation is an empty string |
| untranslated | warning | Translation is identical to the reference language |
i18n-validate v0.1.0 — validating ./locales
Reference: en (2 files: translation.json, apiTester.json)
Languages: de, ja, fr, es, zh-Hans, pt-BR, ko (7 found, 7 expected)
Layout : directory (auto-detected)
Formats : i18next JSON (auto-detected)
────────────────────────────────────────────────
ERRORS (5)
✗ missing-keys │ translation.json
Key "settings.billing.title"
missing in: ja, ko
✗ placeholders │ translation.json
Key "pricing.total" — expected: {price}, {currency}
de: found {price} only — missing {currency}
────────────────────────────────────────────────
WARNINGS (2)
⚠ empty-values │ translation.json
Key "onboarding.step3.hint"
empty in: de, fr
────────────────────────────────────────────────
5 errors, 2 warnings across 7 languages
✗ Validation failedKurulum
Tercih ettiğiniz paket yöneticisini kullanarak genel bir CLI aracı olarak yükleyin. npm paketi yerel bir Rust ikili dosyası içerir; derleme veya çalışma zamanı bağımlılığı gerekmez.
npm install -g @i18n-agent/i18n-validateKullanım
Araca yerel ayar klasörünüzü gösterin. Referans dili, klasör düzenini ve dosya biçimini otomatik olarak algılar. Çoğu proje için yapılandırma gerekmez.
# Zero-config validation
i18n-validate ./locales
# JSON output for scripting
i18n-validate ./locales --format json | jq '.summary'
# CI/CD with JUnit XML
i18n-validate ./locales --format junit -o i18n-report.xmlCI/CD entegrasyonu
Pull request işlem hattınıza çeviri doğrulaması ekleyin. Araç; GitHub Actions test raporlayıcıları, GitLab CI yapıtları ve JUnit'i destekleyen tüm CI sistemleriyle bütünleşen JUnit XML çıktısı üretir.
name: Validate Translations
on:
pull_request:
paths: ['locales/**', 'public/locales/**']
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Validate translations
run: npx @i18n-agent/i18n-validate ./locales --format junit -o i18n-report.xml
- uses: dorny/test-reporter@v1
if: always()
with:
name: i18n validation
path: i18n-report.xml
reporter: java-junit--strict to also fail on warnings.Desteklenen biçimler
i18n-convert ile çalışan doğrulayıcı, kullanıma hazır olarak 32 i18n dosya biçimini destekler. Biçime özgü eklenti veya yapılandırma gerekmez; araç biçimi dosya uzantılarından ve içerikten otomatik olarak algılar.
Mobile & Desktop
Android XML, Xcode String Catalog, iOS Strings, iOS Stringsdict, Flutter ARB, Qt Linguist
Web & Frameworks
Structured JSON, i18next JSON, JSON5, HJSON, YAML (Rails), YAML (Plain), JavaScript, TypeScript, PHP/Laravel, NEON
Standards & Exchange
XLIFF 1.2, XLIFF 2.0, Gettext PO, TMX, .NET RESX, Java Properties
Data & Other
CSV, Excel (.xlsx), TOML, INI, SRT Subtitles, Markdown, Plain Text
Yapılandırma
Çoğu projede yapılandırma olmadan çalışır. Denetim önem derecesini değiştirmek, beklenen dilleri belirlemek veya geliştirilmekte olan dilleri hariç tutmak istediğinizde proje kökünde bir .i18n-validate.toml dosyası oluşturun.
# .i18n-validate.toml
ref = "en"
expect = ["de", "ja", "fr", "es", "zh-Hans", "pt-BR", "ko"]
[checks]
missing-keys = "error"
extra-keys = "error"
placeholders = "error"
empty-values = "warning"
untranslated = "warning"
[languages.ko]
missing-keys = "warning" # Korean is WIP
[languages.ar]
skip = true # Exclude from validationi18n 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