summaryrefslogtreecommitdiff
path: root/src/utils/translation
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2016-01-02 22:54:36 +0300
committerAndrei Karas <akaras@inbox.ru>2016-01-03 00:46:28 +0300
commit519c2796e52ea933f6de5a490aee1f1ab826ea5e (patch)
tree01205558a568663d1c1ff67fda39ee84ce4051ec /src/utils/translation
parent2d2bbb2fe5a0dc55cbf5b9616a78500704b6ea65 (diff)
downloadplus-519c2796e52ea933f6de5a490aee1f1ab826ea5e.tar.gz
plus-519c2796e52ea933f6de5a490aee1f1ab826ea5e.tar.bz2
plus-519c2796e52ea933f6de5a490aee1f1ab826ea5e.tar.xz
plus-519c2796e52ea933f6de5a490aee1f1ab826ea5e.zip
Add support for custom NLS (without gettext).
Add configure flag --enable-customnls Add empty directory in data/translations/manaplus for suctom translations (po files from /po directory)
Diffstat (limited to 'src/utils/translation')
-rw-r--r--src/utils/translation/podict.cpp3
-rw-r--r--src/utils/translation/podict.h3
-rw-r--r--src/utils/translation/translationmanager.cpp8
-rw-r--r--src/utils/translation/translationmanager.h4
4 files changed, 18 insertions, 0 deletions
diff --git a/src/utils/translation/podict.cpp b/src/utils/translation/podict.cpp
index 8aca50880..ba199a6d6 100644
--- a/src/utils/translation/podict.cpp
+++ b/src/utils/translation/podict.cpp
@@ -25,6 +25,9 @@
std::string empty;
PoDict *translator = nullptr;
+#ifdef ENABLE_CUSTOMNLS
+PoDict *mainTranslator = nullptr;
+#endif
PoDict::PoDict(std::string lang) :
mPoLines(),
diff --git a/src/utils/translation/podict.h b/src/utils/translation/podict.h
index 4153835bd..73948aeb4 100644
--- a/src/utils/translation/podict.h
+++ b/src/utils/translation/podict.h
@@ -61,5 +61,8 @@ class PoDict final
};
extern PoDict *translator;
+#ifdef ENABLE_CUSTOMNLS
+extern PoDict *mainTranslator;
+#endif
#endif // UTILS_TRANSLATION_PODICT_H
diff --git a/src/utils/translation/translationmanager.cpp b/src/utils/translation/translationmanager.cpp
index 01f38e57f..4fa233990 100644
--- a/src/utils/translation/translationmanager.cpp
+++ b/src/utils/translation/translationmanager.cpp
@@ -44,6 +44,14 @@ void TranslationManager::loadCurrentLang()
translator = loadLang(getLang(), "help/", translator);
}
+#ifdef ENABLE_CUSTOMNLS
+void TranslationManager::loadGettextLang()
+{
+ delete mainTranslator;
+ mainTranslator = loadLang(getLang(), "manaplus/");
+}
+#endif
+
void TranslationManager::close()
{
delete2(translator);
diff --git a/src/utils/translation/translationmanager.h b/src/utils/translation/translationmanager.h
index e6e56dd4a..e228b1e75 100644
--- a/src/utils/translation/translationmanager.h
+++ b/src/utils/translation/translationmanager.h
@@ -41,6 +41,10 @@ class TranslationManager final
static void loadCurrentLang();
+#ifdef ENABLE_CUSTOMNLS
+ static void loadGettextLang();
+#endif
+
static bool translateFile(const std::string &fileName,
PoDict *const dict,
StringVect &lines);