本地化测试是什么
本地化(L10n)测试验证产品在具体语言与地区下的表现:翻译是否完整准确、文本变长后是否溢出、日期数字货币格式是否符合当地习惯、时区换算是否正确、阿拉伯语等双向文字(RTL)布局是否镜像。它和国际化(i18n)是两件事:i18n 是让代码具备可本地化的能力(资源抽取、格式接口),L10n 是具体语言包落地后的验证。
基本信息
| 测试维度 | 翻译完整性、格式、时区、排序规则、双向往排、法律与合规文案 |
|---|---|
| 适用平台 | Web、iOS、Android、桌面客户端,以及导出文件与邮件模板 |
| 关键手段 | 伪本地化(pseudo-localization)、CLDR 区域数据、ICU 格式规则 |
| 参考标准 | W3C 国际化最佳实践、Unicode CLDR 区域数据 |
| 入口数据 | 各语言资源文件、区域配置 locale、用户时区设置 |
典型使用场景
- 新语言上线前全量走查:检查未翻译残留、术语一致性与标点规范
- 伪本地化回归:用扩展字符与伪译文提前暴露硬编码文案与布局溢出
- 格式验证:日期、时间、千分位、货币、地址与姓名顺序按区域正确显示
- 时区边界:跨时区用户的日期归属、报表口径与定时任务触发时间
- RTL 布局检查:阿拉伯语、希伯来语界面的镜像、图标方向与省略位置
- 长文本压力:德语、俄语等文案通常更长,验证按钮、表格列是否截断或错行
时区断言示例
时区断言示例
from datetime import datetime, timezone
now_utc = datetime.now(timezone.utc) # 生成带时区的 UTC 时间
# 断言接口返回的时间字段为 UTC 或带明确偏移,避免浏览器按本地时区解析
# 边界用例:当地 23:30 与 00:30 各取一次,核对日期归属是否偏一天
# 导出文件同样要验:CSV 中的时间列与界面显示必须一致典型缺陷与触发条件
| 缺陷 | 触发条件 | 检查方法 |
|---|---|---|
| 翻译缺失 | 新增文案没同步进语言包 | 对照资源文件与各语言截图找英文残留 |
| 文本溢出 | 德俄等语言文案更长 | 伪本地化加多语言截图对比 |
| 格式错误 | 日期数字货币被硬编码 | 切换系统区域后核对显示格式 |
| 日期偏一天 | 服务端 UTC 与本地时区换算 | 目标市场时区的跨日边界用例 |
| RTL 错乱 | 镜像布局未生效 | 阿拉伯语界面检查方向与图标翻转 |
排序与大小写这类细节最容易翻车:土耳其语的 i/I 行为特殊,瑞典语字母顺序与多数语言不同,数据库默认排序与平台排序可能结果不一致,测试要按目标市场显式验证。
伪本地化常用做法:把文案替换成带重音的扩展字符并拉长三到五成(如 [Ĺöŕéḿ íṕṡúḿ ḓöĺöŕ],示意格式),在还没有真实译文时就能提前暴露硬编码与布局问题。