summaryrefslogtreecommitdiffstats
path: root/core/translation.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2020-03-18 18:34:36 +0100
committerRémi Verschelde <rverschelde@gmail.com>2020-03-20 08:48:11 +0100
commit4857648a16585bbd0fb2fbc33d3d0f768b8223b5 (patch)
treef078268dfb7b6f2f417de9e272e7bf48e08ebcd8 /core/translation.cpp
parentb0aecb466dbc8a8c67f8aefb8277447f7603e9a5 (diff)
downloadredot-engine-4857648a16585bbd0fb2fbc33d3d0f768b8223b5.tar.gz
i18n: Add support for translating the class reference
- Parse `.po` files from `doc/translations/*.po` like already done with `editor/translations/*.po`. - Add logic to register a doc translation mapping in `TranslationServer` and `EditorSettings`. - Add `DTR()` to lookup the doc translation mapping (similar to `TTR()`). Strings are automatically dedented and stripped of whitespace to ensure that they would match the translation catalog. - Use `DTR()` to translate relevant strings in `EditorHelp`, `EditorInspector`, `CreateDialog`, `ConnectionsDialog`. - Small simplification to `TranslationLoaderPO`, the path argument was not really meaningful.
Diffstat (limited to 'core/translation.cpp')
-rw-r--r--core/translation.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/core/translation.cpp b/core/translation.cpp
index 7399fa5619..df3661e5d0 100644
--- a/core/translation.cpp
+++ b/core/translation.cpp
@@ -1176,7 +1176,6 @@ void TranslationServer::setup() {
set_locale(OS::get_singleton()->get_locale());
fallback = GLOBAL_DEF("locale/fallback", "en");
#ifdef TOOLS_ENABLED
-
{
String options = "";
int idx = 0;
@@ -1189,7 +1188,6 @@ void TranslationServer::setup() {
ProjectSettings::get_singleton()->set_custom_property_info("locale/fallback", PropertyInfo(Variant::STRING, "locale/fallback", PROPERTY_HINT_ENUM, options));
}
#endif
- //load translations
}
void TranslationServer::set_tool_translation(const Ref<Translation> &p_translation) {
@@ -1197,15 +1195,26 @@ void TranslationServer::set_tool_translation(const Ref<Translation> &p_translati
}
StringName TranslationServer::tool_translate(const StringName &p_message) const {
-
if (tool_translation.is_valid()) {
StringName r = tool_translation->get_message(p_message);
-
if (r) {
return r;
}
}
+ return p_message;
+}
+void TranslationServer::set_doc_translation(const Ref<Translation> &p_translation) {
+ doc_translation = p_translation;
+}
+
+StringName TranslationServer::doc_translate(const StringName &p_message) const {
+ if (doc_translation.is_valid()) {
+ StringName r = doc_translation->get_message(p_message);
+ if (r) {
+ return r;
+ }
+ }
return p_message;
}