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.
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.
/i18n-review src/
/i18n-review src/ --framework=next-intlYang 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 /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.
/i18n-wrap src/components/
/i18n-wrap src/ --framework=react-i18nextYang 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
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.
| Framework | Fungsi Terjemahan | Format Bentuk Jamak |
|---|---|---|
| react-i18next | t() | key_one / key_other |
| next-intl | t() | ICU {count, plural, ...} |
| vue-i18n | $t() | Pipe syntax | singular | plural |
| angular i18n | $localize | ICU {count, plural, ...} |
| svelte-i18n | $_() | ICU {count, plural, ...} |
| flutter intl | S.of(context) | Intl.plural() |
| django | gettext / _() | ngettext() |
| rails i18n | t() | count key |
| laravel | __() / @lang | trans_choice() |
| swift | NSLocalizedString | .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.
mkdir -p .claude/commands
cp commands/i18n-review.md .claude/commands/
cp commands/i18n-wrap.md .claude/commands/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.
# 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.jsonProyek 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.
# 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 updatedPanduan Framework Terkait
Coba i18n Agent Sekarang
Lepaskan file terjemahan Anda di sini
JSON, YAML, PO, XML, CSV, Markdown, Properties
atau klik untuk menjelajahi
Bahasa target