1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00
Files
godot/doc/classes/Translation.xml
Haoyu Qiu 4e80190a46 Move context and plural support to Translation
- `TranslationPO` is now an empty class. It exists for compatibility.
- `OptimizedTranslation` stays the same, no context or plural support.
2025-09-26 10:51:57 +08:00

123 lines
5.9 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<class name="Translation" inherits="Resource" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
<brief_description>
A language translation that maps a collection of strings to their individual translations.
</brief_description>
<description>
[Translation] maps a collection of strings to their individual translations, and also provides convenience methods for pluralization.
A [Translation] consists of messages. A message is identified by its context and untranslated string. Unlike [url=https://www.gnu.org/software/gettext/]gettext[/url], using an empty context string in Godot means not using any context.
</description>
<tutorials>
<link title="Internationalizing games">$DOCS_URL/tutorials/i18n/internationalizing_games.html</link>
<link title="Localization using gettext">$DOCS_URL/tutorials/i18n/localization_using_gettext.html</link>
<link title="Locales">$DOCS_URL/tutorials/i18n/locales.html</link>
</tutorials>
<methods>
<method name="_get_message" qualifiers="virtual const">
<return type="StringName" />
<param index="0" name="src_message" type="StringName" />
<param index="1" name="context" type="StringName" />
<description>
Virtual method to override [method get_message].
</description>
</method>
<method name="_get_plural_message" qualifiers="virtual const">
<return type="StringName" />
<param index="0" name="src_message" type="StringName" />
<param index="1" name="src_plural_message" type="StringName" />
<param index="2" name="n" type="int" />
<param index="3" name="context" type="StringName" />
<description>
Virtual method to override [method get_plural_message].
</description>
</method>
<method name="add_message">
<return type="void" />
<param index="0" name="src_message" type="StringName" />
<param index="1" name="xlated_message" type="StringName" />
<param index="2" name="context" type="StringName" default="&amp;&quot;&quot;" />
<description>
Adds a message if nonexistent, followed by its translation.
An additional context could be used to specify the translation context or differentiate polysemic words.
</description>
</method>
<method name="add_plural_message">
<return type="void" />
<param index="0" name="src_message" type="StringName" />
<param index="1" name="xlated_messages" type="PackedStringArray" />
<param index="2" name="context" type="StringName" default="&amp;&quot;&quot;" />
<description>
Adds a message involving plural translation if nonexistent, followed by its translation.
An additional context could be used to specify the translation context or differentiate polysemic words.
</description>
</method>
<method name="erase_message">
<return type="void" />
<param index="0" name="src_message" type="StringName" />
<param index="1" name="context" type="StringName" default="&amp;&quot;&quot;" />
<description>
Erases a message.
</description>
</method>
<method name="get_message" qualifiers="const">
<return type="StringName" />
<param index="0" name="src_message" type="StringName" />
<param index="1" name="context" type="StringName" default="&amp;&quot;&quot;" />
<description>
Returns a message's translation.
</description>
</method>
<method name="get_message_count" qualifiers="const">
<return type="int" />
<description>
Returns the number of existing messages.
</description>
</method>
<method name="get_message_list" qualifiers="const">
<return type="PackedStringArray" />
<description>
Returns the keys of all messages, that is, the context and untranslated strings of each message.
[b]Note:[/b] If a message does not use a context, the corresponding element is the untranslated string. Otherwise, the corresponding element is the context and untranslated string separated by the EOT character ([code]U+0004[/code]). This is done for compatibility purposes.
[codeblock]
for key in translation.get_message_list():
var p = key.find("\u0004")
if p == -1:
var untranslated = key
print("Message %s" % untranslated)
else:
var context = key.substr(0, p)
var untranslated = key.substr(p + 1)
print("Message %s with context %s" % [untranslated, context])
[/codeblock]
</description>
</method>
<method name="get_plural_message" qualifiers="const">
<return type="StringName" />
<param index="0" name="src_message" type="StringName" />
<param index="1" name="src_plural_message" type="StringName" />
<param index="2" name="n" type="int" />
<param index="3" name="context" type="StringName" default="&amp;&quot;&quot;" />
<description>
Returns a message's translation involving plurals.
The number [param n] is the number or quantity of the plural object. It will be used to guide the translation system to fetch the correct plural form for the selected language.
[b]Note:[/b] Plurals are only supported in [url=$DOCS_URL/tutorials/i18n/localization_using_gettext.html]gettext-based translations (PO)[/url], not CSV.
</description>
</method>
<method name="get_translated_message_list" qualifiers="const">
<return type="PackedStringArray" />
<description>
Returns all the translated strings.
</description>
</method>
</methods>
<members>
<member name="locale" type="String" setter="set_locale" getter="get_locale" default="&quot;en&quot;">
The locale of the translation.
</member>
<member name="plural_rules_override" type="String" setter="set_plural_rules_override" getter="get_plural_rules_override" default="&quot;&quot;">
The plural rules string to enforce. See [url=https://www.gnu.org/software/gettext/manual/html_node/Plural-forms.html]GNU gettext[/url] for examples and more info.
If empty or invalid, default plural rules from [method TranslationServer.get_plural_rules] are used. The English plural rules are used as a fallback.
</member>
</members>
</class>