偽翻譯工具
發佈前測試 i18n UI。無需等待真實譯文,即可產生用於佈局、編碼和雙向渲染壓力測試的偽譯文。
問題
你的 UI 在英語下看起來完美無缺。德語加入後,字串長 40%,所有按鈕都被撐破,表格標頭也被截斷。阿拉伯語會翻轉整個佈局,讓圖示指向錯誤方向。日語需要不同的行高,精心安排間距的卡片隨之崩塌。而你在付費翻譯後才發現這一切。
翻譯後再修復 i18n 佈局缺陷,平均成本是在開發期間發現問題的 5-10 倍。偽翻譯可以免費發現這些問題,趕在你為真實譯文投入一分錢之前。
解決方案
i18n-pseudo 無需等待真實譯員,即可產生用於 UI 壓力測試的偽譯文。它在保留 ICU 預留位置、複數語法和插值變數的同時,應用重音、中日韓字元、文字擴展、RTL 標記等 7 種轉換策略。
安裝
i18n-pseudo 可作為 npm 包或 Homebrew formula 取得,也可通過 Cargo 從源程式碼構建。
Terminal
npm install -g @i18n-agent/i18n-pseudonpm 包包含全域 CLI 二進制檔案,無需執行階段依賴。
7 種轉換策略
每種策略都針對一類特定的 i18n 缺陷。可使用標誌單獨應用,也可通過預設組合。
| 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̀õ |
重音是檢測硬編碼字串最常用的策略。如果 UI 中某字串沒有重音符號,就說明它從未經過翻譯函數。
預設
預設會為常見測試場景組合多種策略。使用 --preset 一次應用一組策略。
| 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 |
用法示例
對來源語言檔案執行 i18n-pseudo。它會讀取 JSON、YAML、PO 等 i18n 格式,應用所選策略並寫入轉換後的輸出。
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/轉換前後
以下展示quick 預設(重音加方括號)對普通翻譯檔案的效果。可以看到,ICU 複數語法和插值預留位置均得到精確保留。
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 {# íťéɱš}}]"
}{name}、{count} 等預留位置和 ICU 複數表達式絕不會被修改。只轉換可翻譯文字區段,因此應用程式可使用偽翻譯檔案正確渲染。
CI 整合
將偽翻譯新增到 CI 管線,自動發現 i18n 回歸。產生偽翻譯檔案,再對它們執行視覺回歸測試。
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將佈局預設與 Playwright 或 Chromatic 視覺回歸測試結合使用。文字擴展到 1.4 倍時,任何溢出或截斷的元件都會導致視覺差異測試失敗。
立即試用 i18n Agent
將翻譯檔案拖放到此處
JSON, YAML, PO, XML, CSV, Markdown, Properties
或點擊選擇檔案
目標語言
無需註冊即時估價