You've already forked godot
							
							
				mirror of
				https://github.com/godotengine/godot.git
				synced 2025-11-04 12:00:25 +00:00 
			
		
		
		
	- `TranslationPO` is now an empty class. It exists for compatibility. - `OptimizedTranslation` stays the same, no context or plural support.
		
			
				
	
	
		
			123 lines
		
	
	
		
			5.9 KiB
		
	
	
	
		
			XML
		
	
	
	
	
	
			
		
		
	
	
			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="&""" />
 | 
						|
			<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.
 | 
						|
			</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 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="&""" />
 | 
						|
			<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=""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>
 |