偽本地化是一種強大的測試技術,將您的源文本轉換為假語言,以便在實際翻譯開始之前識別國際化 (i18n) 問題。本指南將向您展示如何使用pseudo-l10n npm 套件自動化偽本地化測試。
偽本地化是將您的應用程式源文本轉換為一種改變過的假語言的過程,模擬翻譯後 UI 的行為。它幫助 QA 工程師和開發人員在開發周期的早期識別 i18n 問題。

使用偽本地化來識別潛在國際化問題的範例。兩側的字型和大小相同,但支援其他字母的內容通常需要更多空間。
偽本地化幫助您早期捕捉 i18n 問題:
以下是使用偽本地化自動化 i18n 測試的有效策略:
用重音形式或不同字母替換拉丁字母,以測試字符編碼和字型支援。
範例: "Save" → "Šàvē"
QA 檢查: 確保所有字符正確顯示,並且沒有因編碼問題而中斷。
自動將每個字串擴展約 30–40%,以模擬德語或芬蘭語等長語言。用視覺標記包裝以便於檢測剪裁。
範例: "Save" → ⟦Šàvēēēēē⟧
QA 檢查: 使用自動化截圖比較來發現 UI 溢出、剪裁或錯位。
用可見標記替換插值變數(佔位符),以驗證它們在翻譯過程中是否被保留。
範例: "You have {{count}} items" → "You have <COUNT> items"
QA 檢查: 執行回歸測試;如果缺少標記或錯誤轉義 (<COUNT>) 則失敗。
使用 Unicode 控制字符將文本包裝在從右到左 (RTL) 的標記中,以模擬阿拉伯語或希伯來語。
QA 檢查: 驗證 RTL 語言的對齊、文本方向和鏡像是否正確。
將偽本地化添加到您的自動化測試管道中,以便在問題到達生產環境之前捕捉 i18n 問題。
QA 檢查: 如果測試檢測到缺失的翻譯、損壞的佔位符或佈局問題,則阻止部署。
pseudo-l10n npm 套件自動化您的 JSON 翻譯文件的偽本地化,使您能輕鬆將 i18n 測試整合到開發工作流程中。
全局安裝pseudo-l10n以便命令行使用:
npm install -g pseudo-l10n或將其作為開發依賴添加:
npm install --save-dev pseudo-l10n將您的源翻譯文件轉換為pseudo-localized版本:
pseudo-l10n input.json output.json輸入 (en.json):
{
"welcome": "Welcome to our application",
"greeting": "Hello, {{name}}!",
"itemCount": "You have {{count}} items"
}輸出 (pseudo-en.json):
{
"welcome": "⟦Ŵëļçõɱë ţõ õür àƥƥļïçàţïõñēēēēēēēēēēēēēēēēēē⟧",
"greeting": "⟦Ĥëļļõēēēēēē, {{name}}!ēēēēē⟧",
"itemCount": "⟦Ŷõü ĥàṽë {{count}} ïţëɱšēēēēēēēēēēēēēēēē⟧"
}pseudo-l10n en.json pseudo-en.json --expansion=30模擬阿拉伯語或希伯來語等從右到左的語言:
pseudo-l10n en.json pseudo-ar.json --rtl用大寫標記替換佔位符,以便更輕鬆地進行視覺檢測:
pseudo-l10n en.json pseudo-en.json --replace-placeholders
# Input: { "greeting": "Hello, {{name}}!" }
# Output: { "greeting": "⟦Ĥëļļõēēēēēē, <NAME>!ēēēēē⟧" }該包支持不同i18n庫使用的各種佔位符格式:
# For i18next (default)
pseudo-l10n en.json pseudo-en.json --placeholder-format="{{key}}"
# For Angular/React Intl
pseudo-l10n en.json pseudo-en.json --placeholder-format="{key}"
# For sprintf style
pseudo-l10n en.json pseudo-en.json --placeholder-format="%key%"在您的Node.js腳本或構建過程中以程式化方式使用pseudo-l10n:
const { generatePseudoLocaleSync, pseudoLocalize } = require('pseudo-l10n');
// Generate a pseudo-localized JSON file
generatePseudoLocaleSync('en.json', 'pseudo-en.json', {
expansion: 40,
rtl: false
});
// Pseudo-localize a single string
const result = pseudoLocalize('Hello, {{name}}!');
console.log(result);
// Output: ⟦Ĥëļļõēēēēēēēēēēēēēē, {{name}}!ēēēēē⟧將pseudo-localization生成添加到您的package.json腳本中:
{
"scripts": {
"pseudo": "pseudo-l10n src/locales/en.json src/locales/pseudo-en.json",
"pseudo:rtl": "pseudo-l10n src/locales/en.json src/locales/pseudo-ar.json --rtl"
}
}將pseudo-locale作為構建過程的一部分生成:
// build.js
const { generatePseudoLocaleSync } = require('pseudo-l10n');
// Generate pseudo-locales as part of build
generatePseudoLocaleSync(
'./src/locales/en.json',
'./src/locales/pseudo-en.json',
{ expansion: 40 }
);
generatePseudoLocaleSync(
'./src/locales/en.json',
'./src/locales/pseudo-ar.json',
{ rtl: true }
);將pseudo-localization整合到您的持續集成管道中:
# .github/workflows/test.yml
- name: Generate pseudo-locales
run: |
npm install -g pseudo-l10n
pseudo-l10n src/locales/en.json src/locales/pseudo-en.json
- name: Run i18n tests
run: npm run test:i18n一旦您通過pseudo-localization驗證了您的i18n實現,就該為真正的用戶翻譯您的應用程序了。這就是像l10n.dev這樣的AI驅動翻譯服務的用武之地。
在確保您的應用程序正確處理國際化後,使用l10n.dev進行專業的AI驅動翻譯:
準備好及早捕捉i18n問題並簡化您的本地化工作流程了嗎?
Pseudo-localization是一種重要的測試技術,可以幫助您在問題進入生產之前捕捉國際化問題。通過使用pseudo-l10n包自動化pseudo-localization測試,您可以確保您的應用程序真正準備好迎接全球觀眾。
結合來自l10n.dev的AI驅動翻譯,您可以更快、更有信心地構建穩健的多語言應用程序。