diff options
author | Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net> | 2015-06-22 15:12:58 +0200 |
---|---|---|
committer | Chusslove Illich (Часлав Илић) <caslav.ilic@gmx.net> | 2015-06-22 15:12:58 +0200 |
commit | 2fff683110385047bd20fb5f0b68a008b48320dd (patch) | |
tree | 36c47220c0c69c6096515284a4d5750014d6edc1 /src | |
parent | 173b33592739f9a671f34eb816499ef32fe65c06 (diff) | |
download | kconfig-2fff683110385047bd20fb5f0b68a008b48320dd.tar.gz kconfig-2fff683110385047bd20fb5f0b68a008b48320dd.tar.bz2 |
Support translation domain in 'kde' translation system
In applications translations can be looked up in the globally set
translation domain, but in libraries it is necessary to link every
i18n call to the library's own translation domain. A new code
generation option TranslationDomain= is added to enable this.
It has effect only if TranslationSystem=kde is set.
Added unit tests to check generated translation calls.
CHANGELOG: New code generation option TranslationDomain=, for use with TranslationSystem=kde; normally needed in libraries.
REVIEW: 123872
Diffstat (limited to 'src')
-rw-r--r-- | src/kconfig_compiler/kconfig_compiler.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/kconfig_compiler/kconfig_compiler.cpp b/src/kconfig_compiler/kconfig_compiler.cpp index 7160bb57..246cc92a 100644 --- a/src/kconfig_compiler/kconfig_compiler.cpp +++ b/src/kconfig_compiler/kconfig_compiler.cpp @@ -100,6 +100,7 @@ public: generateProperties = codegenConfig.value("GenerateProperties", false).toBool(); if (trString == "kde") { translationSystem = KdeTranslation; + translationDomain = codegenConfig.value("TranslationDomain").toString(); } else { if (!trString.isEmpty() && trString != "qt") { cerr << "Unknown translation system, falling back to Qt tr()" << endl; @@ -138,6 +139,7 @@ public: bool useEnumTypes; bool itemAccessors; TranslationSystem translationSystem; + QString translationDomain; bool generateProperties; }; @@ -1306,7 +1308,11 @@ QString translatedString(const CfgConfig &cfg, const QString &string, const QStr break; case CfgConfig::KdeTranslation: - if (!context.isEmpty()) { + if (!cfg.translationDomain.isEmpty() && !context.isEmpty()) { + result += "i18ndc(" + quoteString(cfg.translationDomain) + ", " + quoteString(context) + ", "; + } else if (!cfg.translationDomain.isEmpty()) { + result += "i18nd(" + quoteString(cfg.translationDomain) + ", "; + } else if (!context.isEmpty()) { result += "i18nc(" + quoteString(context) + ", "; } else { result += "i18n("; |