Android中"[Developer] Accented English"(zz-ZZ)的目的是什么?

Jam*_*ton 5 android localization android-4.4-kitkat

在Android KitKat中,如果我选择设置>语言和输入>语言,我提供的第一个选择是[开发者]重音英语.这将使用重音版本替换每个罗马字母.您可以在此处找到所有字符映射的列表.(如果你能读法语,这会很有帮助).

这个设置的目的是什么?是否只是为了展示角色如何映射到其他角色?或者它可以有效地使用(例如,在文本到语音输出中创建特定的音素?

Bre*_*McK 6

这是一种称为"伪局域化"的技术,它用于帮助测试应用程序正确处理本地化的各个方面.

这个想法是,不是等待应用程序的字符串资源被翻译成其他语言 - 这可能需要一些时间 - 而是使用"假的"伪语言.如果应用程序在这种假翻译方面表现良好,那么它很可能会在实际翻译中表现良好.伪定位有不同的变化,但大多数都倾向于做以下一些:

  • 在字符串周围添加parens [...]或其他分隔符:这样可以更容易确保字符串不会在任何一端被剪裁.

  • 用重音字符替换常规字符:如果您看到没有重音字符的字符串,则表示它可能是硬编码而不是被视为可本地化的资源.(过去,这也用于确保应用程序可以正确处理非ASCII字符,并且不会丢失代码页转换中的数据,尽管现在的平台支持Unicode,这不是一个问题.)

  • 在字符串中添加填充:这是为了模拟德语等语言,这些语言通常具有相应英语字符串的较长翻译.如果填充的字符串被截断而不是包裹或流动,那么德语字符串可能会做类似的事情.

  • 添加已知的棘手字符作为"金丝雀":在某些平台上,可以添加来自Unicode范围特定部分的符号,以确保正确处理或支持它们.例如,可能会添加一个中文字符以确保支持中文字体:如果最终显示为空方格,则表示存在问题.其他常见的"金丝雀"字符包括来自BMP外部的代码点,或使用组合字符.

使用伪定位而不是实际翻译的一个优点是测试可以由不了解目标语言的人执行:"[ÀççôûñţŠéţţîñĝš___]"仍然在视觉上看起来与原始英文文本"帐户设置"类似.如果你尝试使用屏幕阅读器(如TalkBack)或其他明智的方式发送伪定位文本到文本到语音,你可能会得到废话,因为它会尝试将重音字符视为实际的重音字符.