伪语言区域是一种旨在模拟可能导致应用翻译时出现 UI、布局和其他翻译相关问题的语言特征的语言区域。伪语言区域是通过即时自动翻译创建的,所有可本地化消息均以英文显示。未经伪本地化的文本指向源代码中不可翻译的消息。
伪语言区域可以节省时间和金钱,因为您可以在将消息提交到源存储库进行后续翻译之前,对 UI 文本及其布局进行调整。有关潜在翻译问题的列表,请参阅发现本地化问题部分。

图 1. 英语 (XA) 伪语言区域。
Android 伪语言区域名称遵循标准语言区域命名约定,其语言区域 ID 可由任何符合 BCP 47 标准的编程语言解析。从这个意义上讲,伪语言区域与其他任何语言区域(例如法语、中文或俄语)一样。
Android 平台提供以下两种伪语言区域,用于表示从左到右 (LTR) 和从右到左 (RTL) 的语言

图 2. AR (XB) 伪语言区域。
英语 (XA):在基础英文 UI 文本中添加拉丁重音,通过添加无重音文本扩展原始文本,并用括号括起每个消息单元,以暴露扩展文本可能导致的问题。潜在问题包括布局损坏和格式错误的消息语法,例如一个句子被分成多个部分,显示为多个括号括起来的消息。英语 (XA) 伪语言区域如图 1 所示。
AR (XB):将原始从左到右的消息的文本方向设置为从右到左的方向,这会反转原始消息中字符的顺序。AR (XB) 伪语言区域如图 2 所示。
伪语言区域可以帮助您制作应用的 RTL 版本,即使您不编写或说任何 RTL 语言。
启用伪语言区域
伪语言区域通常添加到面向开发人员的版本中。当您在设备上选择伪语言区域时,所有支持伪语言区域的应用都会采用所选伪语言区域的特性,包括所有系统应用,例如“设置”应用和“快速设置”面板。
要使用 Android 伪语言区域,您的设备必须运行 Android 4.3 (API 级别 18) 或更高版本,并且已启用开发者选项。启用开发者选项后,您还必须重新启动设备。
以下步骤说明如何启用伪语言区域
在 Android Studio 中,通过将以下配置添加到您的
build.gradle
文件中,为特定应用启用伪语言区域Groovy
android { ... buildTypes { debug {
pseudoLocalesEnabled
true } } }Kotlin
android { ... buildTypes.getByName("debug") { isPseudoLocalesEnabled = true } }
-
图 3. 选择伪语言区域。
使用“设置”应用选择伪语言区域。此步骤因您的 Android 版本而异,具体如下
Android 5.0 (API 级别 21) 或更高版本
- 在设备上,打开“设置”应用,然后依次点按语言和输入法 > 语言偏好设置。
- 在语言偏好设置列表中,拖动标签将伪语言区域移到列表顶部,并使其成为活动语言。请参阅图 3。
Android 4.4.4 (API 级别 19) 或更低版本
- 在设备上,打开“设置”应用,然后依次点按语言和输入法 > 语言偏好设置 > 添加语言。
- 点按伪语言区域以将其添加到语言偏好设置列表。
- 在语言偏好设置列表中,拖动标签将伪语言区域移到列表顶部,并使其成为活动语言。请参阅图 3。
发现本地化问题
伪语言区域提供了一种省时有效的方法,可帮助您识别以下方面的 UI 中潜在的本地化问题
- 硬编码字符串无法发送进行翻译,在伪语言区域中会显示为无重音文本,以便您能注意到它们。
- 文本扩展导致的 UI 布局问题,显示 UI 可能因文本长度而损坏的位置。
字符串连接,其显示为一个消息被分成两个或更多括号。这可能导致正确翻译变得困难,因为翻译人员必须独立翻译每个部分,而不知道这些部分是相互关联的。字符串连接还可能导致无法进行正确翻译,因为不同的语言可能需要不同的部分顺序或完全不同的句子结构。例如,日语、韩语和泰米尔语等语言将动词置于句末。当一个句子被连接时,翻译人员无法根据需要更改词序。
双向 (BIDI) 文本问题,例如当一个文本方向的内容包含相反文本方向的内联短语时,使字符串难以阅读。
从右到左 (RTL) 问题,例如元素未镜像。一些示例包括 UI 元素未向左移动、文本未反转并向左移动,或者标点符号错位,例如“pseudolocales rule!”变为“elur selacoloduesp!”而不是“!elur selacoloduesp”。