Class reference
TranslationServer
Inherits Object
The server responsible for language translations.
Description
The translation server is the API backend that manages all language translations. Translations are stored in TranslationDomains, which can be accessed by name. The most commonly used translation domain is the main translation domain. It always exists and can be accessed using an empty StringName. The translation server provides wrapper methods for accessing the main translation domain directly, without having to fetch the translation domain first. Custom translation domains are mainly for advanced usages like editor plugins. Names starting with godot. are reserved for engine internals.
Properties
bool pseudolocalization_enabled = false
bool pseudolocalization_enabled = falseIf true, enables the use of pseudolocalization on the main translation domain. See ProjectSettings.internationalization/pseudolocalization/use_pseudolocalization for details.
Methods
void add_translation(Translation translation)
Translation translation)Adds a translation to the main translation domain.
void clear()
Removes all translations from the main translation domain.
int compare_locales(String locale_a, String locale_b) const
int compare_locales(String locale_a, String locale_b) constCompares two locales and returns a similarity score between 0 (no match) and 10 (full match).
PackedStringArray get_all_countries() const
PackedStringArray get_all_countries() constReturns an array of known country codes.
PackedStringArray get_all_languages() const
PackedStringArray get_all_languages() constReturns array of known language codes.
PackedStringArray get_all_scripts() const
PackedStringArray get_all_scripts() constReturns an array of known script codes.
String get_country_name(String country) const
String get_country_name(String country) constReturns a readable country name for the country code.
String get_language_name(String language) const
String get_language_name(String language) constReturns a readable language name for the language code.
PackedStringArray get_loaded_locales() const
PackedStringArray get_loaded_locales() constReturns an array of all loaded locales of the project.
String get_locale() const
String get_locale() constReturns the current locale of the project. See also OS.get_locale() and OS.get_locale_language() to query the locale of the user system.
String get_locale_name(String locale) const
String get_locale_name(String locale) constReturns a locale's language and its variant (e.g. "en_US" would return "English (United States)").
TranslationDomain get_or_add_domain(StringName domain)
TranslationDomain get_or_add_domain(StringName domain)Returns the translation domain with the specified name. An empty translation domain will be created and added if it does not exist.
String get_script_name(String script) const
String get_script_name(String script) constReturns a readable script name for the script code.
String get_tool_locale()
String get_tool_locale()Returns the current locale of the editor. Note: When called from an exported project returns the same value as get_locale().
Translation get_translation_object(String locale)
Translation get_translation_object(String locale)Returns the Translation instance that best matches locale in the main translation domain. Returns null if there are no matches.
bool has_domain(StringName domain) const
bool has_domain(StringName domain) constReturns true if a translation domain with the specified name exists.
StringName pseudolocalize(StringName message) const
StringName pseudolocalize(StringName message) constReturns the pseudolocalized string based on the message passed in. Note: This method always uses the main translation domain.
void reload_pseudolocalization()
Reparses the pseudolocalization options and reloads the translation for the main translation domain.
void remove_domain(StringName domain)
StringName domain)Removes the translation domain with the specified name. Note: Trying to remove the main translation domain is an error.
void remove_translation(Translation translation)
Translation translation)Removes the given translation from the main translation domain.
void set_locale(String locale)
String locale)Sets the locale of the project. The locale string will be standardized to match known locales (e.g. en-US would be matched to en_US). If translations have been loaded beforehand for the new locale, they will be applied.
String standardize_locale(String locale, bool add_defaults = false) const
String standardize_locale(String locale, bool add_defaults = false) constReturns a locale string standardized to match known locales (e.g. en-US would be matched to en_US). If add_defaults is true, the locale may have a default script or country added.
StringName translate(StringName message, StringName context = &"") const
StringName translate(StringName message, StringName context = &"") constReturns the current locale's translation for the given message and context. Note: This method always uses the main translation domain.
StringName translate_plural(StringName message, StringName plural_message, int n, StringName context = &"") const
StringName translate_plural(StringName message, StringName plural_message, int n, StringName context = &"") constReturns the current locale's translation for the given message, plural message and context. The number 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. Note: This method always uses the main translation domain.