Inheritance #

Table of contents

TranslationServer #

is_instantiable, core, not_builtin_classes, singleton

The server responsible for language translations.

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.

Members #

var pseudolocalization_enabled: bool = false#

If true, enables the use of pseudolocalization on the main translation domain. See ProjectSettings.internationalization/pseudolocalization/use_pseudolocalization for details.

Methods #

func add_translation(translation: Translation) -> void#

Adds a translation to the main translation domain.

func clear() -> void#

Removes all translations from the main translation domain.

const func compare_locales(locale_b: String) -> int#

Compares two locales and returns a similarity score between 0 (no match) and 10 (full match).

const func get_all_countries() -> PackedStringArray#

Returns an array of known country codes.

const func get_all_languages() -> PackedStringArray#

Returns array of known language codes.

const func get_all_scripts() -> PackedStringArray#

Returns an array of known script codes.

const func get_country_name(country: String) -> String#

Returns a readable country name for the country code.

const func get_language_name(language: String) -> String#

Returns a readable language name for the language code.

const func get_loaded_locales() -> PackedStringArray#

Returns an array of all loaded locales of the project.

const func get_locale() -> String#

Returns the current locale of the project.

See also OS.get_locale and OS.get_locale_language to query the locale of the user system.

const func get_locale_name(locale: String) -> String#

Returns a locale's language and its variant (e.g. "en_US" would return "English (United States)").

func get_or_add_domain(domain: StringName) -> TranslationDomain#

Returns the translation domain with the specified name. An empty translation domain will be created and added if it does not exist.

const func get_script_name(script: String) -> String#

Returns a readable script name for the script code.

func get_tool_locale() -> String#

Returns the current locale of the editor.

Note: When called from an exported project returns the same value as get_locale.

func get_translation_object(locale: String) -> Translation#

Returns the Translation instance that best matches locale in the main translation domain. Returns null if there are no matches.

const func has_domain(domain: StringName) -> bool#

Returns true if a translation domain with the specified name exists.

const func pseudolocalize(message: StringName) -> StringName#

Returns the pseudolocalized string based on the message passed in.

Note: This method always uses the main translation domain.

func reload_pseudolocalization() -> void#

Reparses the pseudolocalization options and reloads the translation for the main translation domain.

func remove_domain(domain: StringName) -> void#

Removes the translation domain with the specified name.

Note: Trying to remove the main translation domain is an error.

func remove_translation(translation: Translation) -> void#

Removes the given translation from the main translation domain.

func set_locale(locale: String) -> void#

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.

const func standardize_locale(add_defaults: bool = false) -> String#

Returns 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.

const func translate(context: StringName = &"") -> StringName#

Returns the current locale's translation for the given message and context.

Note: This method always uses the main translation domain.

const func translate_plural(context: StringName = &"") -> StringName#

Returns 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.

Annotations #

Constants #

Constructors #

Enums #

Operators #

Signals #

Theme Items #

Tutorials #