伪本地化是一种旨在模拟语言特征的语言环境,当应用被翻译时,这些特征会导致 UI、布局和其他与翻译相关的问题。伪本地化是通过即时和自动翻译创建的,对于所有可本地化的消息,这些翻译都是用英文可读的。未伪本地化的文本指向源代码中不可翻译的消息。
伪本地化可以节省时间和金钱,因为您可以在将消息提交到源代码库以供以后翻译之前,对 UI 文本及其布局进行调整。有关潜在翻译问题的列表,请参阅发现本地化问题部分。
Android 伪本地化名称遵循标准语言环境命名约定,并且它们的语言环境 ID 可以被任何符合 BCP 47 的编程语言解析。从这个意义上说,伪本地化就像任何其他语言环境一样,例如法语、中文或俄语。
Android 平台提供以下两种伪本地化来表示从左到右 (LTR) 和从右到左 (RTL) 语言
英文 (XA):在基本英文 UI 文本中添加拉丁字母重音符号,通过添加非重音文本扩展原始文本,并用括号括起每个消息单元以显示扩展文本的潜在问题。潜在问题可能是布局中断和格式错误的消息语法,例如将句子拆分为多个部分显示为多个带括号的消息。图 1 显示了英文 (XA) 伪本地化。
阿拉伯语 (XB):将原始从左到右消息的文本方向设置为从右到左方向,这会反转原始消息中字符的顺序。图 2 显示了阿拉伯语 (XB) 伪本地化。
即使您不编写或不会说任何 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 } }
-
使用“设置”应用选择伪本地化。此步骤因您的 Android 版本而异,如下所示
Android 5.0(API 级别 21)或更高版本
- 在设备上,打开“设置”应用,然后点击语言和输入 > 语言首选项。
- 在语言首选项列表中,拖动标签以将伪本地化移动到列表顶部并使其成为活动语言。请参阅图 3。
Android 4.4.4(API 级别 19)或更低版本
- 在设备上,打开“设置”应用,然后点击语言和输入 > 语言首选项 > 添加语言。
- 点击一个伪本地化版本将其添加到语言偏好设置列表中。
- 在语言偏好设置列表中,拖动选项卡将伪本地化版本移动到列表顶部,并将其设置为活动语言。参见图 3。
发现本地化问题
伪本地化提供了一种省时有效的方法来发现 UI 中潜在的可本地化问题,通过帮助您识别以下方面的潜在问题:
- 硬编码字符串,无法发送到翻译,在伪本地化中显示为无重音文本,以便于识别。
- 由于文本扩展引起的 UI 布局问题,显示 UI 由于文本长度而可能出现断裂的地方。
字符串连接,显示为跨越两个或多个括号拆分的一个消息。这可能导致翻译困难,因为翻译人员必须独立地翻译每个部分,而不知道这些部分之间存在关联。字符串连接也可能导致无法进行正确的翻译,因为不同的语言可能需要不同的部分顺序或完全不同的句子结构。例如,日语、韩语和泰米尔语等语言将动词放在句子的末尾。当句子被连接时,翻译人员无法根据需要更改词序。
双向 (BIDI) 文本问题,例如,在一个文本方向的内容中包含相反文本方向的内联短语,导致字符串难以阅读。
从右到左 (RTL) 问题,例如元素未镜像。一些示例包括 UI 元素未向左移动,文本未反转并向左移动,或标点符号放置错误,例如“伪本地化规则!”更改为“elur selacoloduesp!”而不是“!elur selacoloduesp”。