diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-09-29 14:09:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-09-29 14:09:09 +0200 |
commit | 3db672c89ebc5b75633a144360dc95e794647e8a (patch) | |
tree | cd75cdb3621fdf5b24f09c5a14f43c34ceebdd99 /core/string/translation.cpp | |
parent | 4c1d2e935061a99884fffc6a84f8fbf279387691 (diff) | |
parent | 9302b6547a4779de5f8f81817482493cad6fa7c3 (diff) |
Merge pull request #44670 from o01eg/test-translations
Diffstat (limited to 'core/string/translation.cpp')
-rw-r--r-- | core/string/translation.cpp | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/core/string/translation.cpp b/core/string/translation.cpp index cb7d924556..5c0eb388f5 100644 --- a/core/string/translation.cpp +++ b/core/string/translation.cpp @@ -875,6 +875,11 @@ void Translation::add_plural_message(const StringName &p_src_text, const Vector< } StringName Translation::get_message(const StringName &p_src_text, const StringName &p_context) const { + StringName ret; + if (GDVIRTUAL_CALL(_get_message, p_src_text, p_context, ret)) { + return ret; + } + if (p_context != StringName()) { WARN_PRINT("Translation class doesn't handle context. Using context in get_message() on a Translation instance is probably a mistake. \nUse a derived Translation class that handles context, such as TranslationPO class"); } @@ -888,6 +893,11 @@ StringName Translation::get_message(const StringName &p_src_text, const StringNa } StringName Translation::get_plural_message(const StringName &p_src_text, const StringName &p_plural_text, int p_n, const StringName &p_context) const { + StringName ret; + if (GDVIRTUAL_CALL(_get_plural_message, p_src_text, p_plural_text, p_n, p_context, ret)) { + return ret; + } + WARN_PRINT("Translation class doesn't handle plural messages. Calling get_plural_message() on a Translation instance is probably a mistake. \nUse a derived Translation class that handles plurals, such as TranslationPO class"); return get_message(p_src_text); } @@ -923,6 +933,9 @@ void Translation::_bind_methods() { ClassDB::bind_method(D_METHOD("_set_messages"), &Translation::_set_messages); ClassDB::bind_method(D_METHOD("_get_messages"), &Translation::_get_messages); + GDVIRTUAL_BIND(_get_plural_message, "src_message", "src_plural_message", "n", "context"); + GDVIRTUAL_BIND(_get_message, "src_message", "context"); + ADD_PROPERTY(PropertyInfo(Variant::DICTIONARY, "messages", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NOEDITOR | PROPERTY_USAGE_INTERNAL), "_set_messages", "_get_messages"); ADD_PROPERTY(PropertyInfo(Variant::STRING, "locale"), "set_locale", "get_locale"); } |