使用伪本地化测试您的应用

伪语言是一种旨在模拟语言特征的语言环境,这些语言特征会导致应用翻译时出现 UI、布局和其他与翻译相关的难题。伪语言是通过即时且自动的翻译创建的,所有可本地化消息都可以用英文阅读。未伪本地化的文本指向源代码中不可翻译的消息。

伪语言可以节省时间和金钱,因为您可以在将消息提交到源代码库以供以后翻译之前,调整 UI 文本及其布局。有关潜在翻译问题的列表,请参阅发现本地化问题部分。

图 1. 英文 (XA) 伪语言。

Android 伪语言名称遵循标准语言环境命名约定,并且它们的语言环境 ID 可以被任何符合 BCP 47 的编程语言解析。从这个意义上说,伪语言就像任何其他语言环境一样,例如法语、中文或俄语。

Android 平台提供以下两种伪语言来表示从左到右 (LTR) 和从右到左 (RTL) 语言

图 2. 阿拉伯语 (XB) 伪语言。

英文 (XA):在基本英文 UI 文本中添加拉丁字母重音,通过添加非重音文本扩展原始文本,并用括号括起每个消息单元以显示扩展文本的潜在问题。潜在问题可能是布局中断和格式错误的消息语法,例如句子分成多个部分显示为多个带括号的消息。图 1 显示了英文 (XA) 伪语言。

阿拉伯语 (XB):将原始从左到右消息的文本方向设置为从右到左方向,这会反转原始消息中字符的顺序。图 2 显示了阿拉伯语 (XB) 伪语言。

即使您不编写或不会说任何 RTL 语言,伪语言也可以帮助您创建应用的 RTL 版本。

启用伪语言

伪语言通常添加到面向开发人员的构建中。当您在设备上选择伪语言时,所有支持伪语言的应用都会呈现所选伪语言的特征,包括所有系统应用,例如“设置”应用和“快速设置”面板。

要使用 Android 伪语言,您必须运行 Android 4.3(API 级别 18)或更高版本,并且必须在设备上启用开发者选项

以下过程说明了如何启用伪语言

  1. 在 Android Studio 中,通过将以下配置添加到您的build.gradle 文件中,为特定应用启用伪语言

    Groovy

    android {
       ...
       buildTypes {
           debug {
               pseudoLocalesEnabled true
           }
       }
    }

    Kotlin

    android {
       ...
       buildTypes.getByName("debug") {
           isPseudoLocalesEnabled = true
       }
    }
  2. 构建并运行您的应用.

    图 3. 选择伪语言。

  3. 使用“设置”应用选择伪语言。此步骤根据您的 Android 版本而有所不同,如下所示

    Android 5.0(API 级别 21)或更高版本

    1. 在设备上,打开“设置”应用,然后点击语言和输入 > 语言首选项
    2. 语言首选项列表中,拖动选项卡以将伪语言移动到列表顶部并将其设为活动语言。请参阅图 3。

    Android 4.4.4(API 级别 19)或更低版本

    1. 在设备上,打开“设置”应用,然后点击语言和输入 > 语言首选项 > 添加语言
    2. 点击伪语言将其添加到语言首选项列表中。
    3. 语言首选项列表中,拖动选项卡将伪语言移动到列表顶部,并将其设置为活动语言。请参见图 3。

发现本地化问题

伪语言提供了一种省时有效的方法来发现 UI 中潜在的本地化问题,帮助您识别以下方面的问题:

  • 硬编码字符串(无法发送到翻译)在伪语言中显示为无重音文本,以便于识别。
  • 由于文本扩展引起的 UI 布局问题,显示 UI 由于文本长度而可能中断的位置。
  • 字符串连接,显示为跨两个或多个括号拆分的一条消息。这可能使正确的翻译变得困难,因为翻译人员必须独立翻译每个部分,而不知道这些部分是相关的。字符串连接也可能使正确的翻译变得不可能,因为不同的语言可能需要不同的部分顺序或完全不同的句子结构。例如,日语、韩语和泰米尔语等语言将动词放在句尾。当句子连接时,翻译人员无法根据需要更改词序。

  • 双向 (BIDI) 文本问题,例如,当一个文本方向的内容包含相反文本方向的内联短语时,使字符串难以阅读。

  • 从右到左 (RTL) 问题,例如元素未镜像。一些示例包括 UI 元素未移动到左侧、文本未反转并移动到左侧,或标点符号放置错误,例如“pseudolocales rule!”更改为“elur selacoloduesp!”而不是“!elur selacoloduesp”。