Công cụ dịch giả lập
Kiểm thử giao diện i18n trước khi ra mắt. Tạo bản dịch giả để kiểm thử chuyên sâu bố cục, mã hóa và khả năng hiển thị hai chiều — không cần chờ bản dịch thực tế.
Vấn đề
Giao diện của bạn trông hoàn hảo bằng tiếng Anh. Nhưng khi chuyển sang tiếng Đức, chuỗi dài hơn 40% làm hỏng mọi nút và cắt ngắn mọi tiêu đề bảng. Tiếng Ả Rập đảo ngược toàn bộ bố cục khiến biểu tượng chỉ sai hướng. Tiếng Nhật cần chiều cao dòng khác, phá vỡ bố cục thẻ mà bạn đã căn khoảng cách cẩn thận. Bạn chỉ phát hiện tất cả vấn đề này sau khi đã trả phí dịch thuật.
Giải pháp
i18n-pseudo tạo bản dịch giả để kiểm thử chuyên sâu giao diện mà không cần chờ người dịch. Công cụ áp dụng 7 chiến lược biến đổi — ký tự có dấu, ký tự CJK, văn bản mở rộng, dấu điều khiển RTL và nhiều chiến lược khác — đồng thời giữ nguyên placeholder ICU, cú pháp số nhiều và biến nội suy.
Cài đặt
i18n-pseudo có sẵn dưới dạng gói npm hoặc công thức Homebrew; bạn cũng có thể dùng Cargo để xây dựng từ mã nguồn.
npm install -g @i18n-agent/i18n-pseudo7 chiến lược biến đổi
Mỗi chiến lược nhắm đến một nhóm lỗi i18n cụ thể. Dùng riêng từng chiến lược qua các cờ hoặc kết hợp chúng bằng cấu hình đặt sẵn.
| 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̀õ |
Cấu hình đặt sẵn
Cấu hình đặt sẵn kết hợp nhiều chiến lược cho các tình huống kiểm thử thường gặp. Dùng --preset để áp dụng đồng thời một nhóm chiến lược.
| 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 |
Ví dụ sử dụng
Chạy i18n-pseudo với tệp locale nguồn. Công cụ đọc JSON, YAML, PO và các định dạng i18n khác, áp dụng những chiến lược đã chọn rồi ghi kết quả đã biến đổi.
# 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/Trước và sau
Dưới đây là tác động của cấu hình default (ký tự có dấu + dấu ngoặc) lên một tệp dịch điển hình. Hãy lưu ý rằng cú pháp số nhiều ICU và placeholder nội suy vẫn được giữ nguyên hoàn toàn.
// 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 {# íťéɱš}}]"
}Tích hợp CI
Thêm bản dịch giả lập vào pipeline CI để tự động phát hiện lỗi hồi quy i18n. Tạo các tệp dịch giả lập rồi chạy kiểm thử hồi quy trực quan với những tệp đó.
# 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=visualCông cụ và hướng dẫn liên quan
Dùng thử i18n Agent ngay
Thả tệp bản dịch của bạn vào đây
JSON, YAML, PO, XML, CSV, Markdown, Properties
hoặc nhấp để duyệt
Ngôn ngữ đích