diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/translation.cpp | 16 | ||||
-rw-r--r-- | core/translation.h | 4 | ||||
-rw-r--r-- | core/ustring.cpp | 11 | ||||
-rw-r--r-- | core/ustring.h | 2 |
4 files changed, 33 insertions, 0 deletions
diff --git a/core/translation.cpp b/core/translation.cpp index e4dad8d8de..85e207e08d 100644 --- a/core/translation.cpp +++ b/core/translation.cpp @@ -665,6 +665,22 @@ void TranslationServer::setup() { } +void TranslationServer::set_tool_translation(const Ref<Translation>& p_translation) { + tool_translation=p_translation; +} + +StringName TranslationServer::tool_translate(const StringName& p_message) const { + + if (tool_translation.is_valid()) { + StringName r = tool_translation->tr(p_message); + if (r) + return r; + } + + return p_message; +} + + void TranslationServer::_bind_methods() { ObjectTypeDB::bind_method(_MD("set_locale","locale"),&TranslationServer::set_locale); diff --git a/core/translation.h b/core/translation.h index 5be6b8913a..cdb22bfeca 100644 --- a/core/translation.h +++ b/core/translation.h @@ -75,6 +75,7 @@ class TranslationServer : public Object { Set< Ref<Translation> > translations; + Ref<Translation> tool_translation; bool enabled; @@ -102,6 +103,9 @@ public: static Vector<String> get_all_locales(); static Vector<String> get_all_locale_names(); + void set_tool_translation(const Ref<Translation>& p_translation); + StringName tool_translate(const StringName& p_message) const; + void setup(); void clear(); diff --git a/core/ustring.cpp b/core/ustring.cpp index a9d0012ebe..573c362389 100644 --- a/core/ustring.cpp +++ b/core/ustring.cpp @@ -3955,3 +3955,14 @@ String String::sprintf(const Array& values, bool* error) const { *error = false; return formatted; } + +#include "translation.h" + +String TTR(const String& p_text) { + + if (TranslationServer::get_singleton()) { + return TranslationServer::get_singleton()->translate(p_text); + } + + return p_text; +} diff --git a/core/ustring.h b/core/ustring.h index 6310d0a854..ec0932e54d 100644 --- a/core/ustring.h +++ b/core/ustring.h @@ -256,5 +256,7 @@ struct NoCaseComparator { /* end of namespace */ +//tool translate +String TTR(const String&); #endif |