跳转至

多语言/国际化测试案例

国际化测试不只是"翻译对不对",它涉及字符集、布局适配、日期/货币/数字格式、语言切换、翻译缺失兜底、RTL 布局等。一个中文页面看起来没问题,切换到德语可能文字溢出,切换到阿拉伯语可能整个布局错乱。

需求背景

系统支持中文、英文和日文三种语言。用户可在页面右上角切换语言。所有界面文本从语言包读取,支持变量插值(如"共 {count} 条")。日期和货币格式随语言切换自动变化。

测试点拆解

维度 测试点
语言切换 切换语言后页面刷新、URL 变化、语言偏好持久化
翻译完整性 所有页面文本是否都有对应翻译
翻译缺失 语言包缺少某个 key 时的兜底显示
字符集 中文、日文、特殊字符(ü、ñ、ß)是否正常显示
布局适配 德语长文本是否溢出、日文竖排是否正常
日期格式 中文"2026年6月20日"、英文"Jun 20, 2026"、日文"2026年06月20日"
货币格式 中文"¥299.00"、英文"$299.00"、日文"¥29,900"
数字格式 千分位分隔符:中文"1,234" vs 德语"1.234"
排序规则 不同语言的排序规则(拼音 vs 字母 vs 假名)
输入验证 不同语言的姓名格式(西方姓名、日文姓名)
URL 和 SEO 多语言 URL 结构(/en//zh//ja/
邮件/通知 多语言邮件模板、短信模板

用例示例

编号 测试点 步骤 预期结果
I18N-001 语言切换 点击右上角语言切换,选择 English 页面刷新,所有文本切换为英文
I18N-002 语言持久化 切换到英文后关闭浏览器,重新打开 仍显示英文,语言偏好被记住
I18N-003 翻译缺失 人为删除语言包中某个 key 显示英文兜底文本或 key 名,不显示空白
I18N-004 长文本溢出 切换到德语,检查按钮和导航栏 文本被截断或自动换行,不破坏布局
I18N-005 日期格式 中文下查看订单日期 显示"2026年6月20日"格式
I18N-006 日期格式英文 英文下查看同一订单日期 显示"Jun 20, 2026"格式
I18N-007 货币格式 英文下查看商品价格 显示"$299.00",不是"¥299.00"
I18N-008 特殊字符 用户名包含"ü"、"ñ"、"ö" 正常显示,不变成乱码或问号
I18N-009 日文假名 搜索栏输入日文假名"テスト" 搜索正常执行,结果正确返回
I18N-010 URL 结构 访问 /en/products/ja/products 分别显示英文和日文页面,内容对应

接口校验

多语言接口至少检查:

  • 接口 Accept-Language 头或 lang 参数是否生效。
  • 返回的错误提示信息是否跟随语言设置。
  • 语言参数传非法值(如 lang=xx)时的默认行为。
  • 语言包接口(/api/i18n/zh.json)返回的 JSON 是否完整。
  • 列表接口的排序是否跟随语言(中文按拼音,英文按字母)。

测试数据准备

数据 用途
中/英/日三语用户账号 验证语言偏好持久化
包含特殊字符的用户名 验证字符集兼容
多语言商品名称 验证搜索和排序
多语言邮件模板 验证通知内容语言一致

建议先确认系统支持哪些语言,再逐语言覆盖核心页面。不要一次测所有语言,先确保中英双语没问题再扩展。

执行步骤示例

  1. 保持默认中文,走一遍核心流程(注册、浏览、下单),记录所有页面文本。
  2. 切换到英文,逐页对比文本是否完整翻译,有无遗漏的中文。
  3. 检查英文下的按钮、导航栏、表单标签,是否有长文本溢出。
  4. 切换到日文,检查假名和汉字混合显示是否正常。
  5. 检查订单详情页的日期和货币格式是否随语言变化。
  6. 删除语言包中一个 key,刷新页面检查兜底显示。
  7. 在不同语言下搜索同一个关键词,检查结果是否一致。

数据校验示例

-- 查看用户语言偏好设置
SELECT user_id, language, updated_at
FROM user_preferences
WHERE user_id = 10001;

-- 查看多语言商品名称
SELECT product_id, lang, name
FROM product_translations
WHERE product_id = 1001;
-- 期望:每种支持的语言都有对应翻译记录

缺陷示例

字段 内容
标题 切换英文后"购物车"按钮显示为中文"购物车"未翻译
前置条件 系统支持中英文切换
复现步骤 右上角切换为 English,查看购物车按钮
实际结果 按钮文字仍显示"购物车",其他文本已切换为英文
期望结果 按钮显示"Cart",所有文本统一为英文
影响 界面语言不一致,用户体验差,国际化质量低

容易漏测

  • 只测页面标题和菜单,不测弹窗、Toast 提示、错误信息。
  • 不验证日期和货币格式是否随语言变化。
  • 忘记测翻译缺失时的兜底显示。
  • 不检查长文本语言(德语、俄语)的布局溢出。
  • 不验证邮件和短信通知的语言是否跟随用户设置。
  • 忽略表单校验提示的翻译("请输入用户名"是否翻译)。
  • 不测 URL 中的语言前缀和 SEO meta 标签。

复盘问题

  • 语言包缺失某个 key 时,应该显示英文兜底还是显示 key 名?为什么?
  • 用户在中文下填写的表单数据,切换到英文后应该显示什么格式?
  • 如何确保新增功能时不会遗漏翻译?有没有自动化检查方案?