在Android KitKat中,如果我选择设置>语言与输入>语言,我提供的第一选择是[开发者]重音英语。这将使用重音版本替换每个罗马字母。您可以找到所有字符映射here的列表。 (如果你能读法语,那会很有帮助。)
此设置的目的是什么?是否只是为了展示角色如何映射到其他角色?或者它可以有效地使用(例如,在文本到语音输出中创建特定的音素?
答案 0 :(得分:6)
这是一种名为'Pseudolocalization'的技术,它用于帮助测试应用正确处理本地化的各个方面。
这个想法是,不是等待应用程序的字符串资源被翻译成其他语言 - 这可能需要一些时间 - 而是使用“假的”伪语言。如果应用程序在这种假翻译方面表现良好,那么它很可能会在实际翻译中表现良好。伪定位有不同的变化,但大多数都倾向于做以下一些:
在字符串周围添加parens [...]或其他分隔符:这样可以更轻松地确保字符串不会在两端被剪裁。
用重音字符替换常规字符:如果您看到字符串没有重音字符,那么这表示它可能是硬编码而不是被视为可本地化资源。 (过去,这也用于确保应用程序可以正确处理非ASCII字符,并且不会丢失代码页转换中的数据,尽管现在的平台支持Unicode,这不是一个问题。)
为字符串添加填充:这是为了模拟德语等语言,这些语言通常具有较长的相应英语字符串的翻译。如果填充的字符串被截断而不是包裹或流动,则德语字符串可能会相似。
添加已知的棘手字符作为“金丝雀”:在某些平台上,可以添加来自Unicode范围特定部分的符号,以确保正确处理或支持它们。例如,可能会添加一个中文字符以确保支持中文字体:如果最终显示为空方格,则表示存在问题。其他常见的“金丝雀”字符包括来自BMP外部或使用Combining Characters的代码点。
使用伪定位而不是实际翻译的一个优点是,测试可以由不了解目标语言的人执行:“[ÀççôûñţŠéţţîñĝš___]”仍然在视觉上看起来与原始英文文本“帐户设置”类似。如果您尝试将其与屏幕阅读器(如TalkBack)一起使用,或者其他明智的方式将伪定位文本发送到文本到语音,您可能会觉得无意义,因为它会尝试将重音字符视为实际重音字符。