伪本地化是一种强大的测试技术,它将源文本转换为一种虚假语言,以在实际翻译开始之前识别国际化(i18n)问题。本指南向您展示如何使用pseudo-l10n npm 包自动化伪本地化测试。
伪本地化是将应用程序的源文本转换为一种经过修改的虚假语言的过程,该语言模拟翻译后用户界面的行为。它帮助质量保证工程师和开发人员在开发周期的早期识别国际化问题。

使用伪本地化识别潜在国际化问题的示例。两侧的字体和大小相同,但支持其他脚本通常需要更多空间。
伪本地化帮助您及早捕获国际化问题:
以下是使用伪本地化自动化国际化测试的有效策略:
用重音形式或不同脚本替换拉丁字母,以测试字符编码和字体支持。
示例: "Save" → "Šàvē"
质量检查: 确保所有字符正确显示,并且没有因编码问题而导致的破损。
自动将每个字符串扩展约30–40%,以模拟德语或芬兰语等长语言。用可视标记包裹,以便于剪切检测。
示例: "Save" → ⟦Šàvēēēēē⟧
质量检查: 使用自动化屏幕截图比较来发现用户界面溢出、剪切或对齐问题。
用可见标记替换插值变量(占位符),以验证它们在翻译过程中是否被保留。
示例: "您有 {{count}} 项" → "您有 <COUNT> 项"
质量检查: 运行回归测试;如果缺少标记或标记转义不正确(<COUNT>),则失败。
使用 Unicode 控制字符将文本包裹在从右到左(RTL)标记中,以模拟阿拉伯语或希伯来语。
质量检查: 验证对齐、文本方向和镜像是否正确,适用于 RTL 语言。
将伪本地化添加到自动化测试管道中,以在问题到达生产之前捕获国际化问题。
质量检查: 如果测试检测到缺失的翻译、损坏的占位符或布局问题,则阻止部署。
pseudo-l10n npm 包自动化您的 JSON 翻译文件的伪本地化,使您能够轻松将国际化测试集成到开发工作流程中。
全局安装pseudo-l10n以便于命令行使用:
npm install -g pseudo-l10n或将其作为开发依赖添加:
npm install --save-dev pseudo-l10n将您的源翻译文件转换为伪本地化版本:
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}}!ēēēēē⟧将伪本地化生成添加到您的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"
}
}作为构建过程的一部分生成伪区域:
// 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 }
);将伪本地化集成到您的持续集成管道中:
# .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一旦您通过伪本地化验证了您的i18n实现,就该为真实用户翻译您的应用程序了。这就是像l10n.dev这样的AI驱动翻译服务的用武之地。
在确保您的应用程序正确处理国际化后,使用l10n.dev进行专业的AI驱动翻译:
准备好及早捕捉i18n问题并简化您的本地化工作流程了吗?
伪本地化是一种重要的测试技术,帮助您在问题到达生产之前捕捉国际化问题。通过使用pseudo-l10n包自动化伪本地化测试,您可以确保您的应用程序真正准备好迎接全球受众。
结合l10n.dev的AI驱动翻译,您可以更快、更自信地构建强大的多语言应用程序。