Skip to main content

Skill i18n

Perintah AI untuk Mengaudit & Membungkus String i18n

Masalahnya

Basis kode Anda memiliki 500 string hardcode yang tersebar di komponen, templat, dan tampilan. Pembungkusan manual memerlukan pekerjaan cari-dan-ganti yang melelahkan selama berhari-hari. Bahkan setelah dibungkus, kalimat terpisah yang rusak dalam bahasa Jerman, logika bentuk jamak yang gagal dalam bahasa Arab, dan kunci telantar yang memperbesar file bahasa masih dapat terlewat.

Pembungkusan i18n manual rentan kesalahan: pengembang melewatkan kalimat terpisah, merusak bentuk jamak dengan operator ternary, dan meninggalkan string hardcode dalam kasus khusus. Bug ini baru muncul setelah penerjemahan, saat biaya perbaikannya 10 kali lebih mahal.

Solusinya

Dua perintah slash yang menangani seluruh alur kerja i18n. Jalankan /i18n-review untuk mengaudit kode secara baca-saja, lalu jalankan /i18n-wrap untuk memperbaiki semuanya secara otomatis. Kedua perintah mendeteksi framework, memahami format file bahasa, dan memvalidasi perubahan sebelum commit.

/i18n-review

Audit baca-saja yang menemukan kalimat terpisah, bentuk jamak rusak, string belum dibungkus, dan kunci tidak digunakan. Tidak pernah mengubah kode Anda.

/i18n-wrap

Membungkus string hardcode secara otomatis dengan fungsi terjemahan yang benar, membuat kunci semantik, memperbarui file bahasa, dan memvalidasi build.

Perintah /i18n-review

Perintah review melakukan audit baca-saja terhadap basis kode. Perintah memindai setiap file untuk menemukan masalah i18n dan menghasilkan laporan yang diprioritaskan dengan lokasi file serta saran perbaikan yang tepat. Kode Anda tidak pernah diubah.

Terminal
/i18n-review src/
/i18n-review src/ --framework=next-intl

Yang Diperiksa

  • Kalimat terpisah: panggilan t() yang digabungkan dan merusak urutan kata dalam bahasa lain
  • Pembungkusan berlebihan: string teknis, kelas CSS, URL, dan nilai enum yang keliru dibungkus dengan t()
  • Pembungkusan kurang: string UI yang terlihat seperti label tombol, judul, dan pesan kesalahan dibiarkan hardcode
  • Masalah bentuk jamak: operator ternary atau pemeriksaan === 1 digunakan alih-alih sintaks bentuk jamak ICU yang tepat
  • Kunci tidak digunakan: kunci terjemahan ditentukan dalam file bahasa, tetapi tidak pernah direferensikan di kode
  • Nilai format hardcode: tanggal, mata uang, dan angka yang tidak menggunakan pemformat Intl
Perintah review sepenuhnya baca-saja. Jalankan sesering yang Anda inginkan selama pengembangan atau dalam pipeline CI/CD tanpa risiko perubahan yang tidak disengaja.

Perintah /i18n-wrap

Perintah wrap membungkus string hardcode secara otomatis dengan fungsi terjemahan yang benar untuk framework Anda. Perintah mendeteksi library i18n, membuat kunci semantik yang dikelompokkan menurut komponen atau fitur, memperbarui file bahasa, dan memvalidasi bahwa build tetap lulus.

Terminal
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18next

Yang Dilakukan

  • Deteksi framework: mengidentifikasi library i18n dan fungsi terjemahannya (t, $t, $_, gettext, dan lainnya)
  • Pembuatan kunci semantik: membuat kunci bermakna seperti nav.signIn dan errors.notFound alih-alih label umum
  • Pembaruan file bahasa: menambahkan kunci baru ke file bahasa sumber dalam format yang benar (JSON, YAML, PO, dan lainnya)
  • Validasi build: menjalankan perintah build, lint, dan pengujian setelah pembungkusan untuk menemukan regresi
Perintah wrap memvalidasi setiap perubahan dengan menjalankan build dan rangkaian pengujian. Jika ada yang gagal, perubahan dibatalkan secara otomatis.

Framework yang Didukung

Kedua perintah mendeteksi framework secara otomatis dari dependensi proyek. Anda juga dapat menentukannya secara eksplisit dengan flag --framework. Berikut 10 framework yang didukung beserta fungsi terjemahan dan format bentuk jamaknya.

FrameworkFungsi TerjemahanFormat Bentuk Jamak
react-i18nextt()key_one / key_other
next-intlt()ICU {count, plural, ...}
vue-i18n$t()Pipe syntax | singular | plural
angular i18n$localizeICU {count, plural, ...}
svelte-i18n$_()ICU {count, plural, ...}
flutter intlS.of(context)Intl.plural()
djangogettext / _()ngettext()
rails i18nt()count key
laravel__() / @langtrans_choice()
swiftNSLocalizedString.stringsdict

Instalasi

Salin file perintah ke direktori .claude/commands/. Hanya itu—tanpa dependensi dan tanpa konfigurasi. Perintah berupa file Markdown biasa yang dapat dijalankan asisten coding AI apa pun.

Terminal
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/
Ini adalah file perintah slash standar. File langsung berfungsi di Claude Code dan dapat disesuaikan untuk asisten coding AI lain yang mendukung perintah khusus.

Contoh Penggunaan

Proyek React

Tinjau aplikasi React yang menggunakan react-i18next, lalu bungkus semua string hardcode. Perintah mendeteksi react-i18next dari package.json dan menggunakan fungsi t() serta format bentuk jamak key_one/key_other yang benar.

React Project
# Review a React project for i18n issues
/i18n-review src/ --framework=react-i18next

# Wrap all hardcoded strings automatically
/i18n-wrap src/components/ --framework=react-i18next

# Result: t() calls inserted, keys added to en/translation.json

Proyek Django

Audit templat dan view Django untuk menemukan masalah i18n, lalu bungkus string dengan gettext. Perintah mendeteksi Django dari settings.py serta menggunakan _() untuk string sederhana dan ngettext() untuk bentuk jamak.

Django Project
# Review Django templates and views
/i18n-review myapp/ --framework=django

# Wrap hardcoded strings with gettext
/i18n-wrap myapp/templates/ --framework=django

# Result: _() calls inserted, .po file updated

Coba i18n Agent Sekarang

Lepaskan file terjemahan Anda di sini

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

atau klik untuk menjelajahi

Bahasa target

Tidak perlu mendaftarEstimasi instan

Pertanyaan yang Sering Diajukan