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.
Checking the stable version of the documentation...
Translation
继承: Resource < RefCounted < Object
语言翻译,能够将一组字符串映射到对应的翻译。
描述
Translation 将一组字符串映射到其各自的翻译,并提供一些方便的复数形式处理方法。
Translation 包含多条消息。消息通过其上下文和未翻译的字符串来识别。与 gettext 不同,在 Godot 中使用空上下文字符串意味着不使用任何上下文。
教程
属性
|
||
|
方法
_get_message(src_message: StringName, context: StringName) virtual const |
|
_get_plural_message(src_message: StringName, src_plural_message: StringName, n: int, context: StringName) virtual const |
|
void |
add_message(src_message: StringName, xlated_message: StringName, context: StringName = &"") |
void |
add_plural_message(src_message: StringName, xlated_messages: PackedStringArray, context: StringName = &"") |
void |
erase_message(src_message: StringName, context: StringName = &"") |
get_message(src_message: StringName, context: StringName = &"") const |
|
get_message_count() const |
|
get_message_list() const |
|
get_plural_message(src_message: StringName, src_plural_message: StringName, n: int, context: StringName = &"") const |
|
get_translated_message_list() const |
属性说明
翻译的区域设置。
String plural_rules_override = "" 🔗
要强制执行的复数规则字符串。有关示例和更多信息,请参阅 GNU gettext。
如果为空或无效,则使用 TranslationServer.get_plural_rules() 中的默认复数规则。英文复数规则被用作回退方案。
方法说明
StringName _get_message(src_message: StringName, context: StringName) virtual const 🔗
覆盖 get_message() 的虚方法。
StringName _get_plural_message(src_message: StringName, src_plural_message: StringName, n: int, context: StringName) virtual const 🔗
覆盖 get_plural_message() 的虚方法。
void add_message(src_message: StringName, xlated_message: StringName, context: StringName = &"") 🔗
如果不存在,则添加一条消息,后跟其翻译。
可以使用一个额外的上下文,来指定翻译上下文或区分多义词。
void add_plural_message(src_message: StringName, xlated_messages: PackedStringArray, context: StringName = &"") 🔗
如果不存在相应的复数形式翻译,则添加一条,后跟其翻译。
可以使用额外的上下文来指定翻译上下文或区分多义词。
void erase_message(src_message: StringName, context: StringName = &"") 🔗
删除信息。
StringName get_message(src_message: StringName, context: StringName = &"") const 🔗
返回信息的翻译。
int get_message_count() const 🔗
返回现有信息的数量。
PackedStringArray get_message_list() const 🔗
返回所有消息的键,即每条消息的上下文和未翻译的字符串。
注意:如果消息不使用上下文,则对应的元素为未翻译的字符串。否则,相应的元素是上下文和未翻译的字符串,以 EOT 字符(U+0004)分隔。这样做是为了保持兼容性。
for key in translation.get_message_list():
var p = key.find("\u0004")
if p == -1:
var untranslated = key
print("消息 %s" % untranslated)
else:
var context = key.substr(0, p)
var untranslated = key.substr(p + 1)
print("消息 %s 其上下文 %s" % [untranslated, context])
StringName get_plural_message(src_message: StringName, src_plural_message: StringName, n: int, context: StringName = &"") const 🔗
返回一条消息涉及复数的翻译。
数字 n 是复数对象的数目或数量。它将被用于指导翻译系统为所选语言获取正确的复数形式。
注意:仅基于 gettext 的翻译(PO)支持复数,CSV 不支持。
PackedStringArray get_translated_message_list() const 🔗
返回所有已翻译的字符串。