【游戏测试】多语言/本地化测试-抽样测试

一、从可能出现显示问题的角度,多语言可以大致分为以下6类:

  1. 字符集/编码支持类别(基础问题):

    • 单字节字符语言: 如英语、法语、德语、西班牙语(西欧字符)、意大利语、葡萄牙语等。主要使用ASCII或Latin-1扩展字符集。问题相对较少,但非ASCII字符(特殊符号、带重音字母如 é, ñ, ß, ø)如果编码处理不当或字体不支持,可能显示为乱码()、方块()或问号(?)。
    • 双字节字符语言: 如中文**(简体GBK/GB18030, 繁体Big5)、日语(Shift-JIS, EUC-JP, Unicode)、韩语(EUC-KR, Unicode)**。每个字符通常占用两个字节。问题包括:
      • 乱码: 最常见的问题,因错误的编码解码导致(如UTF-8页面错误用GBK解码)。
      • 字体缺失: 系统或应用未安装相应语言的字体。
      • 字符截断: 处理字符串长度时未考虑双字节特性导致半个字符乱码或截断错误。
      • 输入法兼容性: 输入法产生的字符序列未被正确处理。
  2. 书写方向类别(布局问题):

    • 从左向右语言: 绝大多数语言,如英语、中文、日语、韩语、法语、德语等。通常布局问题较少,但与RTL混合时会出现问题。
    • 从右向左语言: 如阿拉伯语**(Arabic)、希伯来语(Hebrew)。这是最复杂和最易出问题**的类别之一。典型问题包括:
      • 布局镜像错误: UI元素(按钮、菜单、图标、表单控件、数字列表、表格)未正确镜像,导致UI逻辑混乱或重叠(如“确定”按钮在最左边,“取消”按钮在右边)。
      • 文本方向错误: RTL文本被当作LTR显示(单词顺序反了),或混合文本(如含英文、数字)时方向处理不当(Bidirectional Text - BiDi 问题)。
      • 光标定位和选择: 光标移动、文本选择和编辑行为不符合RTL习惯。
      • 标点符号位置: 括号、引号、百分比符号等在RTL上下文中的位置错误。
      • 数字和日期: 数字在RTL文本中的书写顺序通常是LTR,处理不当会导致顺序错误或方向混乱。
  3. 字形连接与变形类别(渲染问题):

    • 需要连字或字形变形的语言:
      • 阿拉伯语: 同一个字母根据在词首、词中、词尾或单独存在有四种不同的字形。字母之间需要连接。这是字体渲染引擎的核心功能,如果字体不支持或渲染引擎有缺陷,会导致字符断裂、显示方块或错误字形。
      • 印度系语言: 如印地语**(Hindi)、泰米尔语(Tamil)、泰卢固语(Telugu)等。涉及大量组合字符**(辅音+元音符号构成一个音节)和连字。极易出现:
        • 组合错误: 上标或下标的元音符号位置不正确或脱离基本辅音字符。
        • 连字缺失/错误: 应该组合成一个视觉单元的字形未能正确组合,显示成分离的字符或错误形状。
        • 渲染崩溃: 复杂组合可能导致文本渲染失败或应用崩溃(尤其在旧系统或渲染引擎中)。
    • 带变音符号的语言: 如越南语**(Vietnamese - 大量组合变音符号)**、欧洲语言中的加重音字母(如法语 ê, 德语 ö, 西班牙语 ú)。问题主要是:
      • 组合错误: 变音符号与基础字母分离(漂浮在错误位置)。
      • 堆叠问题: 多个变音符号堆叠时重叠或位置错误(越南语常见)。
      • 渲染模糊: 在小字号或低分辨率下,变音符号可能难以辨认或与字母粘连。
  4. 复杂文本布局类别(高级渲染与布局问题):

    • 东南亚文字: 如泰语**(Thai)、老挝语(Lao)、缅甸语(Burmese)、高棉语(Khmer)**。这些语言的字符书写规则非常复杂:
      • 字符堆叠: 元音和声调符号可以出现在基础辅音的上方、下方、左侧、右侧,甚至环绕。
      • 非线性书写: 字符的视觉顺序不一定等同于逻辑存储顺序(类似于BiDi,但更复杂)。
      • 特殊规则: 有独特的换行规则(不能在音节内换行)、字形替换规则等。极易出现:
        • 字符位置错乱: 上下标符号漂移、重叠、顺序颠倒。
        • 换行错误: 在音节中间断开单词。
        • 光标导航错误: 按方向键时光标移动不符合用户预期(因为逻辑顺序!=视觉顺序)。
        • 渲染性能差: 复杂的布局计算可能导致性能下降。
  5. 字体与字形支持类别(资源问题):

    • 所有非基本拉丁语言都可能遇到:
      • 字体缺失: 目标操作系统或设备未安装包含所需语言字符的字体,显示为方块、问号或回退字体(可能样式不一致或不美观)。
      • 字体覆盖不全: 即使安装了字体,也可能未覆盖该语言的所有字符(尤其是生僻字、古字、特殊符号)。
      • 样式一致性: 应用的默认字体或用户选择的字体可能不支持所有语言,导致不同语言文本使用不同字体,破坏UI一致性。
      • 字形渲染质量: 低质量或未优化的字体可能导致小字号下模糊、锯齿、难以辨认。
  6. 混合语言文本类别(交互问题):

    • 任何包含多种语言类型的文本: 例如:
      • 中文段落中包含英文单词/句子。
      • 阿拉伯语文档中包含LTR的英文技术术语、数字、URL或代码片段。
      • 日语文本夹杂着半角片假名和全角汉字。
    • 问题结合了上述多个类别的挑战:
      • BiDi问题加剧: RTL和LTR混合时方向处理错误。
      • 断字/断行错误: 混合文本中的换行点判断复杂。
      • 字体回退不一致: 不同语言的文本可能自动回退到不同字体。
      • 间距问题: 不同语言字符间距(kerning)习惯不同,混合时可能显得拥挤或稀疏。
      • 对齐问题: 包含RTL和LTR的文本在需要对齐(左/中/右)时难以处理。

二、从可能出现格式规范问题的角度,诞生第7类:数字、日期、时间、货币格式规范 它连接了纯粹的显示问题和核心的功能正确性。**

7. 数字、日期、时间、货币格式规范类别(功能与显示兼具问题)

这类问题源于不同语言区域对以下方面的约定俗成规则不同:

  • 小数点符号:
    • 逗号 ,: 如德语、法语、西班牙语(欧洲)、俄语、意大利语等大部分欧洲大陆国家。例如: 1.234,56 (表示一千二百三十四点五六)。
    • .: 如英语(美、英)、中文、日语、韩语等。例如: 1,234.56
  • 千位分隔符:
    • .: 常用于使用逗号做小数点的地区(如德语: 1.234)。
    • 逗号 ,: 常用于使用点做小数点的地区(如英语: 1,234)。
    • 空格 : 如法语(加拿大)、瑞典语、芬兰语等越来越常见(1 2341 234,56)。
    • 撇号 ': 如瑞士(德语): 1'234.56 (注意这里小数点又是点)。
    • 无分隔符: 某些语言或特定场景(如年份)。
  • 日期格式:
    • DD/MM/YYYY: 欧洲大部分、拉美、澳洲等(如 25/12/2023)。
    • MM/DD/YYYY: 美国、菲律宾等(如 12/25/2023)。
    • YYYY/MM/DDYYYY-MM-DD: ISO 标准、日本、中国、加拿大官方等(如 2023/12/25)。
    • 分隔符: /, -, . 都是常见选择。
    • 月份名称/星期名称缩写: 不同语言差异巨大。
  • 时间格式:
    • 12小时制 vs 24小时制: 地区偏好不同(如美国常用12小时制加AM/PM,欧洲大陆常用24小时制)。
    • 时间分隔符: : 最常见,但 ., 也曾被使用(现在少见)。
    • AM/PM 标记: 不同语言的写法(AM/PM, 上午/下午, vorm./nachm., π.μ./μ.μ. 等)。
  • 货币格式:
    • 货币符号位置: 前置(如 €10, $10, ¥10) vs 后置(如 10 kr, 10 руб)。
    • 货币符号与数字间空格: 有空格(10 €) vs 无空格(€10) - 规则因货币和地区而异。
    • 负数表示: -€10, (€10), €10- 等。
  • 地址格式:
    • 字段顺序: 国家、邮编、州省、城市、街道、门牌号的顺序因地而异(如日本邮编在最前)。
    • 地址行分隔: 换行、逗号或其他。
    • 行政区划名称: 省/州/郡/都道府县等的命名和级别。

这些问题导致的后果远不止“显示难看”

  1. 功能错误:
    • 数据解析失败: 系统试图将 1,234 (欧洲用户输入的一千二百三十四) 解析为 1.234 (一点二三四),导致数值计算严重错误(金额、数量、科学数据等)。这是最严重的问题
    • 排序错误: 如果日期 MM/DD/YYYY 被当作 DD/MM/YYYY 排序,结果会混乱。
    • 输入验证失败: 要求点号做小数点却输入了逗号,被错误地标记为非法输入。
  2. 显示/布局问题:
    • 截断/省略: 较长的月份名称或货币符号组合可能超出预留空间。
    • 对齐混乱: 不同长度的数字(尤其带千位分隔符后)或货币符号位置不同,破坏表格或表单对齐。
    • 符号丢失或错误: 未能正确显示本地化的货币符号(¥, €, £, zł, kr, ¥, 元, ₩ 等)或日期/时间标记(AM/PM本地化)。
  3. 用户体验差:
    • 用户看到不符合自己习惯和预期的格式,感到困惑、不专业或不信任。
    • 输入时频繁遇到格式错误提示,增加使用难度。

为什么说它重要且容易被忽略?

  • 深层区域设置: 它与操作系统/浏览器的“区域设置”强相关,测试时如果只在英文系统上换个界面语言,常常无法暴露这些问题。必须同时切换系统区域设置
  • 后端处理: 问题可能出在前端显示、后端解析、数据库存储等多个环节。
  • 第三方依赖: 日期选择器、图表库、富文本编辑器等第三方组件可能未正确处理本地化格式。
  • 数据交换: 导入/导出CSV、Excel文件时,格式兼容性是重灾区。
  • 边界情况: 混合内容(如报告里同时有德国和美国的销售额)、用户覆盖系统默认格式等场景容易出错。

测试策略建议:

  1. 分区测试: 根据以上类别选择代表性的语言样本进行测试(不必测所有语言,但要覆盖每种问题类型)。例如:
    • 基础字符集: 法语(带重音)、西班牙语(ñ)。
    • 双字节字符: 简体中文、日语。
    • RTL布局: 阿拉伯语(必测!)、希伯来语。
    • 字形变形/连字: 阿拉伯语、印地语。
    • 复杂布局: 泰语(必测!)、缅甸语。
    • 混合文本: 在基础语言(如中文)中特意插入英文、数字、特殊符号;在阿拉伯语中插入英文网址等。
  2. 测试重点:
    • 编码/乱码: 页面加载、数据传输(表单提交/API)、文件导入导出。
    • 字体支持: 安装/未安装目标字体场景下,文本显示是否正确、清晰、一致。
    • 布局方向: UI整体布局镜像、文本方向、按钮顺序、表单对齐、列表/表格顺序(RTL尤其关键)。
    • 文本渲染: 字符是否连接正确(阿拉伯/印度)、组合字符位置是否正确(东南亚/越南)、有无方块/问号、是否有重叠/截断。
    • 输入与编辑: 输入法兼容性、光标移动、文本选择、复制粘贴、文本编辑操作(增删改)。
    • 搜索与排序: 不同语言的排序规则(Collation)是否正确。
    • 格式化: 日期、时间、数字、货币、地址格式是否符合目标区域设置。
    • 长度处理: 输入长度限制、数据库字段长度、UI控件自适应(双字节/复杂文本通常更宽)。
    • 打印输出: 打印或PDF导出是否能正确保留格式和字符。
    • 性能: 渲染大量复杂文本时的性能表现。
  3. 工具与环境:
    • 使用支持Unicode的测试工具和IDE。
    • 在目标区域的操作系统版本上进行测试(安装相应语言包和字体)。
    • 使用虚拟机或云测试平台模拟不同语言环境。
    • 利用伪本地化进行早期布局和字符串问题检测。
    • 使用专门的BiDi测试工具或包含大量混合方向文本的测试字符串。

阿拉伯语(RTL+字形变形)、泰语/缅甸语(复杂布局)、印地语(组合字符+连字)、中文/日文(双字节字符集)、以及越南语(密集变音符号)通常是问题的高发区,需要特别关注。

  1. 测试策略必须包含第7类:
    • 明确测试区域: 选择具有代表性格式差异的区域设置(如 de-DE, fr-FR, en-US, ja-JP, ar-SA)。
    • 切换系统区域: 测试环境(虚拟机/真机)必须配置为目标区域设置,而不仅仅是换界面语言。
    • 测试数据类型:
      • 输入: 在各种表单、搜索框等输入符合本地格式的数字、日期、金额。验证系统是否接受、存储和计算正确。
      • 输出: 检查列表、表格、报告、图表、邮件、通知等所有输出信息中的格式是否符合预期(符号、位置、分隔符)。
      • 导入/导出: 测试文件交换(CSV, Excel等)在不同区域设置下的兼容性。
      • 排序与筛选: 验证按数字、日期、金额排序/筛选的结果是否正确。
    • 检查UI控件: 日期选择器、数字输入框(Stepper)等是否适配本地格式。
    • 覆盖边界: 负数、零、大数字(需要千分位)、小数位数多的数字、跨时区时间等。

完备的多语言测试必须将“格式规范”作为核心类别之一,与文本渲染和布局问题同等对待。

关注我,评论区留言或私信 获取两种角度的多语言抽样表,助力高效测试~

你可能感兴趣的:(游戏测试,游戏,游戏测试,多语言测试,本地化测试,经验分享)