aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>2015-06-22 15:12:58 +0200
committerChusslove Illich (Часлав Илић) <caslav.ilic@gmx.net>2015-06-22 15:12:58 +0200
commit2fff683110385047bd20fb5f0b68a008b48320dd (patch)
tree36c47220c0c69c6096515284a4d5750014d6edc1 /src
parent173b33592739f9a671f34eb816499ef32fe65c06 (diff)
downloadkconfig-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.cpp8
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(";