Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

偽在地化

前言

在開發遊戲時,本地化流程通常會在開發完成後才開始。這意味著在開發階段無法取得翻譯來測試專案是否正確支援國際化。

Godot 提供偽在地化功能,讓你可以測試專案在地區設定變更時的穩定性。偽在地化會模擬本地化過程中可能發生的變化,因此能在開發早期即發現國際化相關問題。

也參考

你可以透過 偽本地化示範專案 來實際體驗偽本地化的運作方式。

啟用與設定偽在地化

Enabling pseudolocalization and the configurations related to it is as simple as toggling a checkbox in the project settings. These settings can be found in Project > Project Settings > General > Internationalization > Pseudolocalization after enabling the Advanced toggle in the project settings dialog:

../../_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()