伪本地化

前言

在创建游戏时,本地化过程通常在开发完成后开始。这意味着在开发过程中无法使用翻译来测试项目是否正确国际化。

Godot 提供伪本地化作为测试项目在区域设置变更时的稳健性的一种方法。伪本地化模拟了本地化期间可能发生的更改。这样,任何有关国际化的问题都可以在开发早期就被识别出来。

参见

你可以使用伪本地化演示项目来查看伪本地化的实际工作原理。

伪本地化的启用和配置

启用伪本地化及其相关配置非常简单,只需在项目设置中勾选勾选框即可。在项目设置对话框中启用高级设置切换后,可以在项目 → 项目设置 → 常规 → 国际化 → 伪本地化中找到这些设置:

../../_images/pseudolocalization_settings.webp

伪本地化也可以在运行时通过脚本切换

伪本地化配置

Godot 中的伪本地化可以根据项目的具体用例进行设置。以下是可以通过项目设置配置的伪本地化属性:

  • replace_with_accents:将字符串中的所有字母替换为其重音变体。 启用该设置后,"The quick brown fox jumped over the lazy dog" 会被转换为 "Ŧh̀é q́üíćḱ ḅŕôŵή f́ôx́ ǰüm̀ṕéd́ ôṽéŕ ŧh̀é łáźý d́ôǵ"。这可用于发现没有重音的未翻译字符串,对于检查项目使用的字体是否缺少字形也很有用。

  • double_vowels:将字符串中的所有元音加倍。这是在本地化过程中模拟文本扩充的一个很好的近似方法。这可用于检查会溢出其容器的文本(例如按钮)。

  • fake_bidi:假双向文字(模拟从右到左的文字)。这对于模拟从右到左的书写系统非常有用,以检查使用从右到左脚本的语言中可能出现的潜在布局问题。

  • override:用星号(*)替换字符串中的所有字符。这对于快速查找未本地化的文本很有用。

  • expansion_ratio:可用于将元音加倍不足以近似的情况。该设置用下划线(_)填充字符串,并按给定比率扩展它。对于大多数实际情况来说,扩展比率为 0.3 就足够了;它将使字符串的长度增加 30%。

  • prefixsuffix:这些属性可用于指定包装文本的前缀和后缀。

  • skip_placeholders:跳过字符串格式化的占位符,如 %s%f。这对于识别需要更多参数才能正确显示格式化字符串的位置很有用。

所有这些属性都可以根据项目的用例按需进行切换。

运行时配置伪本地化

可以在运行时使用 TranslationServer 中的 pseudolocalization_enabled 属性切换伪本地化。但是,如果需要在运行时配置伪本地化属性,则可以使用 ProjectSettings.set_setting(property, value) 直接配置它们,然后调用 TranslationServer.reload_pseudolocalization() 重新解析伪本地化属性并重新加载伪本地化。以下代码片段应打开 replace_with_accentsdouble_vowels 属性,然后调用 reload_pseudolocalization() 以反映更改:

ProjectSettings.set_setting("internationalization/pseudolocalization/replace_with_accents", true)
ProjectSettings.set_setting("internationalization/pseudolocalization/double_vowels", true)
TranslationServer.reload_pseudolocalization()