Skip to content

本地化测试

为了测试本地化,请验证针对不同的区域设置是否显示了正确的翻译字符串,并确保格式和布局能适应区域设置的要求。

在不同平台上测试区域设置

Android

在 Android 上,你可以通过 Settings | System | Languages & input | Languages 更改设备的系统区域设置。对于自动化测试,你可以使用 adb shell 直接在模拟器上修改区域设置:

shell
adb -e shell
setprop persist.sys.locale [BCP-47 language tag];stop;sleep 5;start

此命令会重新启动模拟器,从而允许你使用新的区域设置重新启动应用程序。

此外,你可以在运行测试前使用 Espresso 等框架以编程方式配置区域设置。例如,你可以使用 LocaleTestRule() 在测试期间自动化区域设置切换。

iOS

在 iOS 上,你可以通过 Settings | General | Language & Region 更改设备的系统语言和区域。对于使用 XCUITest 框架的自动化 UI 测试,请使用启动参数来模拟区域设置更改:

swift
app.launchArguments = [
    "-AppleLanguages", "(es)",
    "-AppleLocale", "es_ES"
]

Desktop

在桌面端,JVM 区域设置通常默认为操作系统的区域设置。设置位置因不同的桌面平台而异。

你可以在 UI 初始化之前,在测试设置或应用程序入口点以编程方式设置 JVM 默认区域设置:

java
java.util.Locale.setDefault(java.util.Locale("es_ES"))

Web

为了快速检查,你可以在浏览器偏好设置中更改语言设置。对于自动化测试,Selenium 或 Puppeteer 等浏览器自动化工具可以模拟区域设置更改。

此外,你可以尝试绕过 window.navigator.languages 属性的只读限制来引入自定义区域设置。更多信息请参阅 教程。

关键测试场景

自定义区域设置

  • 以编程方式覆盖区域设置。
  • 断言 UI 元素、格式化字符串和布局能针对所选区域设置正确地进行调整,包括(如适用)处理从右到左的文本。

默认资源

当指定区域设置没有可用翻译时,将使用默认资源。应用程序必须正确回退到这些默认值。

  • 使用上述平台特有的方法,将区域设置配置为不支持的值。
  • 验证回退机制是否正确加载并显示了默认资源。

区域设置特有情况

为了避免常见的本地化问题,请考虑以下区域设置特有的情况:

  • 测试 区域设置特有的格式设置,例如日期格式设置(MM/dd/yyyy vs. dd/MM/yyyy)和数字格式设置。
  • 验证 RTL 和 LTR 行为,确保阿拉伯语和希伯来语等从右到左的语言能正确显示字符串、布局和对齐方式。