summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/translation.cpp16
-rw-r--r--core/translation.h4
-rw-r--r--core/ustring.cpp11
-rw-r--r--core/ustring.h2
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