Skip to main content

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.

Chi phí trung bình để sửa lỗi bố cục i18n sau khi dịch cao gấp 5-10 lần so với phát hiện lỗi trong quá trình phát triển. Bản dịch giả lập giúp bạn phát hiện miễn phí những vấn đề này trước khi chi tiền cho bản dịch thực 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.

Terminal
npm install -g @i18n-agent/i18n-pseudo
Gói npm bao gồm tệp thực thi CLI dùng trên toàn hệ thống. Không cần phần phụ thuộc khi chạy.

7 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.

StrategyFlagInputOutput
Accents--accentsHelloĤéľľó
CJK--cjkHello你好世界你好
Special Chars--specialHelloHel­lo
Expansion--expansion NSaveSave~~~~
Brackets--bracketsHello[Hello]
RTL--rtlHello‮Hello‬
Unicode Stress--unicode-stressHelloH́ȩl̈l̀õ
Thêm ký tự có dấu là chiến lược phổ biến nhất để phát hiện chuỗi viết cứng trong mã. Nếu một chuỗi trong giao diện xuất hiện mà không có dấu, chuỗi đó chưa bao giờ đi qua hàm dịch.

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.

PresetStrategiesUse Case
defaultaccents + bracketsQuick visual check that all strings are externalized
layoutexpansion (1.4x) + bracketsCatch truncation and overflow before real translations
charsetCJK + special + bracketsTest font rendering and character encoding
rtlRTL markers + bracketsVerify bidirectional layout without switching locale
fullAll strategies combinedMaximum 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.

Terminal
# 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.

Before & After
// 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 {# íťéɱš}}]"
}
Các placeholder như {name}, {count} và biểu thức số nhiều ICU không bao giờ bị sửa đổi. Công cụ chỉ biến đổi những đoạn văn bản có thể dịch, nhờ đó app của bạn vẫn hiển thị chính xác với các tệp dịch giả lập.

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 đó.

CI Pipeline
# 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=visual
Kết hợp cấu hình layout với kiểm thử hồi quy trực quan bằng Playwright hoặc Chromatic. Mọi thành phần bị tràn hoặc cắt ngắn khi văn bản mở rộng 1,4 lần đều sẽ khiến bước so sánh trực quan thất bại.

Cô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

Không cần đăng kýBáo giá tức thì

Câu hỏi thường gặp