You've already forked godot
mirror of
https://github.com/godotengine/godot.git
synced 2025-11-04 12:00:25 +00:00
This makes the PO loader correctly handle the situation where the optional `Plural-Forms` header field does not exist. The `Translation` class and its subclasses always have access to valid plural rules via `_get_plural_rules()`. Plural rules are prioritized: 1. `Translation.plural_rules_override` 2. `TranslationServer.get_plural_rules(locale)` 3. The English plural rules: `nplurals=2; plurals=(n != 1)` Co-Authored-By: Pāvels Nadtočajevs <7645683+bruvzg@users.noreply.github.com>
111 lines
5.2 KiB
XML
111 lines
5.2 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]s are resources that can be loaded and unloaded on demand. They map a collection of strings to their individual translations, and they also provide convenience methods for pluralization.
|
|
</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="&""" />
|
|
<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="&""" />
|
|
<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.
|
|
[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="erase_message">
|
|
<return type="void" />
|
|
<param index="0" name="src_message" type="StringName" />
|
|
<param index="1" name="context" type="StringName" default="&""" />
|
|
<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="&""" />
|
|
<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 all the messages (keys).
|
|
</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="&""" />
|
|
<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 messages (translated text).
|
|
</description>
|
|
</method>
|
|
</methods>
|
|
<members>
|
|
<member name="locale" type="String" setter="set_locale" getter="get_locale" default=""en"">
|
|
The locale of the translation.
|
|
</member>
|
|
<member name="plural_rules_override" type="String" setter="set_plural_rules_override" getter="get_plural_rules_override" default="""">
|
|
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>
|