Skip to main content

偽翻譯工具

發佈前測試 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-pseudo
npm 包包含全域 CLI 二進制檔案,無需執行階段依賴。

7 種轉換策略

每種策略都針對一類特定的 i18n 缺陷。可使用標誌單獨應用,也可通過預設組合。

StrategyFlagInputOutput
Accents--accentsHelloĤéľľó
CJK--cjkHello你好世界你好
Special Chars--specialHelloHel­lo
Expansion--expansion NSaveSave~~~~
Brackets--bracketsHello[Hello]
RTL--rtlHello‮Hello‬
Unicode Stress--unicode-stressHelloH́ȩl̈l̀õ
重音是檢測硬編碼字串最常用的策略。如果 UI 中某字串沒有重音符號,就說明它從未經過翻譯函數。

預設

預設會為常見測試場景組合多種策略。使用 --preset 一次應用一組策略。

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

用法示例

對來源語言檔案執行 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

或點擊選擇檔案

目標語言

無需註冊即時估價

常見問題