Alat Terjemahan Semu
Uji UI i18n sebelum peluncuran. Buat terjemahan palsu yang menguji tata letak, pengodean, dan rendering dua arah secara ekstrem—tanpa menunggu terjemahan asli.
Masalahnya
UI terlihat sempurna dalam bahasa Inggris. Lalu bahasa Jerman hadir—string 40% lebih panjang merusak setiap tombol dan memotong setiap header tabel. Bahasa Arab membalik seluruh tata letak dan ikon menunjuk ke arah salah. Bahasa Jepang memerlukan tinggi baris berbeda dan kartu yang telah diatur cermat menjadi berantakan. Anda menemukan semuanya setelah membayar terjemahan.
Solusinya
i18n-pseudo membuat terjemahan palsu yang menguji UI secara ekstrem tanpa menunggu penerjemah asli. Alat menerapkan 7 strategi transformasi—aksen, karakter CJK, pemanjangan teks, penanda RTL, dan lainnya—sekaligus mempertahankan placeholder ICU, sintaks bentuk jamak, dan variabel interpolasi.
Instalasi
i18n-pseudo tersedia sebagai paket npm, formula Homebrew, atau dapat di-build dari sumber dengan Cargo.
npm install -g @i18n-agent/i18n-pseudo7 Strategi Transformasi
Setiap strategi menargetkan jenis bug i18n tertentu. Gunakan secara terpisah dengan flag atau gabungkan menggunakan preset.
| Strategy | Flag | Input | Output |
|---|---|---|---|
| Accents | --accents | Hello | Ĥéľľó |
| CJK | --cjk | Hello | 你好世界你好 |
| Special Chars | --special | Hello | Hello |
| Expansion | --expansion N | Save | Save~~~~ |
| Brackets | --brackets | Hello | [Hello] |
| RTL | --rtl | Hello | Hello |
| Unicode Stress | --unicode-stress | Hello | H́ȩl̈l̀õ |
Preset
Preset menggabungkan strategi untuk skenario pengujian umum. Gunakan --preset untuk menerapkan sekelompok strategi sekaligus.
| Preset | Strategies | Use Case |
|---|---|---|
default | accents + brackets | Quick visual check that all strings are externalized |
layout | expansion (1.4x) + brackets | Catch truncation and overflow before real translations |
charset | CJK + special + brackets | Test font rendering and character encoding |
rtl | RTL markers + brackets | Verify bidirectional layout without switching locale |
full | All strategies combined | Maximum stress test — everything at once |
Contoh Penggunaan
Jalankan i18n-pseudo pada file bahasa sumber. Alat membaca JSON, YAML, PO, dan format i18n lainnya, menerapkan strategi yang dipilih, lalu menulis keluaran hasil transformasi.
# Default (accents + brackets)
i18n-pseudo en.json -o output/
# Layout testing (text expansion + brackets)
i18n-pseudo en.json --preset layout -o output/
# Specific strategies
i18n-pseudo en.json --accents --expansion 1.5 -o output/
# Kitchen sink
i18n-pseudo en.json --preset full -o output/Sebelum & Sesudah
Berikut hasil preset default (aksen + kurung) pada file terjemahan biasa. Perhatikan bahwa sintaks bentuk jamak ICU dan placeholder interpolasi dipertahankan dengan tepat.
// Input (en.json):
{
"greeting": "Hello, {name}!",
"save": "Save",
"items": "{count, plural, one {# item} other {# items}}"
}
// Output (default preset — accents + brackets):
{
"greeting": "[Ĥéľľó, {name}!]",
"save": "[Šáṽé]",
"items": "[{count, plural, one {# íťéɱ} other {# íťéɱš}}]"
}Integrasi CI
Tambahkan terjemahan semu ke pipeline CI untuk menemukan regresi i18n secara otomatis. Buat file terjemahan semu, lalu jalankan pengujian regresi visual terhadapnya.
# Generate pseudo-translations and run visual regression
i18n-pseudo locales/en.json --preset layout -o locales/pseudo/
NEXT_PUBLIC_LOCALE=pseudo npx playwright test --project=visualAlat & Panduan Terkait
Coba i18n Agent Sekarang
Lepaskan file terjemahan Anda di sini
JSON, YAML, PO, XML, CSV, Markdown, Properties
atau klik untuk menjelajahi
Bahasa target