aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--autotests/kconfig_compiler/CMakeLists.txt24
-rw-r--r--autotests/kconfig_compiler/kconfigcompiler_test.cpp10
-rw-r--r--autotests/kconfig_compiler/klocalizedstring.h53
-rw-r--r--autotests/kconfig_compiler/test_translation.kcfg16
-rw-r--r--autotests/kconfig_compiler/test_translation_kde.cpp.ref25
-rw-r--r--autotests/kconfig_compiler/test_translation_kde.h.ref40
-rw-r--r--autotests/kconfig_compiler/test_translation_kde.kcfgc6
-rw-r--r--autotests/kconfig_compiler/test_translation_kde_domain.cpp.ref25
-rw-r--r--autotests/kconfig_compiler/test_translation_kde_domain.h.ref40
-rw-r--r--autotests/kconfig_compiler/test_translation_kde_domain.kcfgc7
-rw-r--r--autotests/kconfig_compiler/test_translation_kde_domain_main.cpp32
-rw-r--r--autotests/kconfig_compiler/test_translation_kde_main.cpp32
-rw-r--r--autotests/kconfig_compiler/test_translation_qt.cpp.ref23
-rw-r--r--autotests/kconfig_compiler/test_translation_qt.h.ref40
-rw-r--r--autotests/kconfig_compiler/test_translation_qt.kcfgc6
-rw-r--r--autotests/kconfig_compiler/test_translation_qt_main.cpp32
-rw-r--r--src/kconfig_compiler/kconfig_compiler.cpp8
17 files changed, 416 insertions, 3 deletions
diff --git a/autotests/kconfig_compiler/CMakeLists.txt b/autotests/kconfig_compiler/CMakeLists.txt
index f73aec05..1ea6472a 100644
--- a/autotests/kconfig_compiler/CMakeLists.txt
+++ b/autotests/kconfig_compiler/CMakeLists.txt
@@ -233,3 +233,27 @@ gen_kcfg_test_source(test_qdebugcategory test_qcategory_SRCS)
ecm_add_test(TEST_NAME test_qdebugcategory ${test_qcategory_SRCS})
target_link_libraries(test_qdebugcategory KF5::ConfigGui)
+########### next target ###############
+
+set(test_translation_qt_SRCS test_translation_qt_main.cpp)
+gen_kcfg_test_source(test_translation_qt test_translation_qt_SRCS KCFG test_translation.kcfg)
+
+ecm_add_test(TEST_NAME test_translation_qt ${test_translation_qt_SRCS})
+target_link_libraries(test_translation_qt KF5::ConfigGui)
+
+########### next target ###############
+
+set(test_translation_kde_SRCS test_translation_kde_main.cpp)
+gen_kcfg_test_source(test_translation_kde test_translation_kde_SRCS KCFG test_translation.kcfg)
+
+ecm_add_test(TEST_NAME test_translation_kde ${test_translation_kde_SRCS})
+target_link_libraries(test_translation_kde KF5::ConfigGui)
+
+########### next target ###############
+
+set(test_translation_kde_domain_SRCS test_translation_kde_domain_main.cpp)
+gen_kcfg_test_source(test_translation_kde_domain test_translation_kde_domain_SRCS KCFG test_translation.kcfg)
+
+ecm_add_test(TEST_NAME test_translation_kde_domain ${test_translation_kde_domain_SRCS})
+target_link_libraries(test_translation_kde_domain KF5::ConfigGui)
+
diff --git a/autotests/kconfig_compiler/kconfigcompiler_test.cpp b/autotests/kconfig_compiler/kconfigcompiler_test.cpp
index 77a31a3e..231e3c45 100644
--- a/autotests/kconfig_compiler/kconfigcompiler_test.cpp
+++ b/autotests/kconfig_compiler/kconfigcompiler_test.cpp
@@ -45,8 +45,11 @@ static CompilerTestSet testCases = {
"test12.h", "test12.cpp",
"test13.h", "test13.cpp",
"test_dpointer.cpp", "test_dpointer.h",
- "test_signal.cpp", "test_signal.h",
"test_qdebugcategory.cpp", "test_qdebugcategory.h",
+ "test_signal.cpp", "test_signal.h",
+ "test_translation_kde.cpp", "test_translation_kde.h",
+ "test_translation_kde_domain.cpp", "test_translation_kde_domain.h",
+ "test_translation_qt.cpp", "test_translation_qt.h",
Q_NULLPTR
};
@@ -66,8 +69,11 @@ static CompilerTestSet testCasesToRun = {
"test12",
"test13",
"test_dpointer",
- "test_signal",
"test_qdebugcategory",
+ "test_signal",
+ "test_translation_kde",
+ "test_translation_kde_domain",
+ "test_translation_qt",
Q_NULLPTR
};
diff --git a/autotests/kconfig_compiler/klocalizedstring.h b/autotests/kconfig_compiler/klocalizedstring.h
new file mode 100644
index 00000000..1a878d9d
--- /dev/null
+++ b/autotests/kconfig_compiler/klocalizedstring.h
@@ -0,0 +1,53 @@
+/*
+Copyright (c) 2015 Chusslove Illich <caslav.ilic@gmx.net>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+/* This file is needed for test_translation_kde.
+ * It provides fake i18n* in order to avoid dependency on Ki18n framework.
+ */
+
+#ifndef KLOCALIZEDSTRING_H
+#define KLOCALIZEDSTRING_H
+
+inline QString i18n(const char *msgid)
+{
+ return QString::fromUtf8(msgid);
+}
+
+inline QString i18nc(const char *msgctxt, const char *msgid)
+{
+ Q_UNUSED(msgctxt);
+ return QString::fromUtf8(msgid);
+}
+
+inline QString i18nd(const char *domain, const char *msgid)
+{
+ Q_UNUSED(domain);
+ return QString::fromUtf8(msgid);
+}
+
+inline QString i18ndc(const char *domain, const char *msgctxt, const char *msgid)
+{
+ Q_UNUSED(domain);
+ Q_UNUSED(msgctxt);
+ return QString::fromUtf8(msgid);
+}
+
+#endif
diff --git a/autotests/kconfig_compiler/test_translation.kcfg b/autotests/kconfig_compiler/test_translation.kcfg
new file mode 100644
index 00000000..ca2c2085
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation.kcfg
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<kcfg xmlns="http://www.kde.org/standards/kcfg/1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://www.kde.org/standards/kcfg/1.0
+ http://www.kde.org/standards/kcfg/1.0/kcfg.xsd" >
+ <kcfgfile name="test_translation_rc"/>
+
+ <group name="General">
+ <entry type="Bool" key="Auto Save">
+ <label>Enable automatic saving of calendar</label>
+ <whatsthis context="@info:whatsthis">Enable automatic saving of calendars to have calendars saved automatically.</whatsthis>
+ <default>false</default>
+ </entry>
+ </group>
+
+</kcfg>
diff --git a/autotests/kconfig_compiler/test_translation_kde.cpp.ref b/autotests/kconfig_compiler/test_translation_kde.cpp.ref
new file mode 100644
index 00000000..5c11133d
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_kde.cpp.ref
@@ -0,0 +1,25 @@
+// This file is generated by kconfig_compiler_kf5 from test_translation.kcfg.
+// All changes you do to this file will be lost.
+
+#include "test_translation_kde.h"
+
+#include <klocalizedstring.h>
+
+using namespace TestNameSpace;
+
+TestTranslationKde::TestTranslationKde( )
+ : KConfigSkeleton( QLatin1String( "test_translation_rc" ) )
+{
+ setCurrentGroup( QLatin1String( "General" ) );
+
+ KConfigSkeleton::ItemBool *itemAutoSave;
+ itemAutoSave = new KConfigSkeleton::ItemBool( currentGroup(), QLatin1String( "Auto Save" ), mAutoSave, false );
+ itemAutoSave->setLabel( i18n("Enable automatic saving of calendar") );
+ itemAutoSave->setWhatsThis( i18nc("@info:whatsthis", "Enable automatic saving of calendars to have calendars saved automatically.") );
+ addItem( itemAutoSave, QLatin1String( "AutoSave" ) );
+}
+
+TestTranslationKde::~TestTranslationKde()
+{
+}
+
diff --git a/autotests/kconfig_compiler/test_translation_kde.h.ref b/autotests/kconfig_compiler/test_translation_kde.h.ref
new file mode 100644
index 00000000..f9b582c4
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_kde.h.ref
@@ -0,0 +1,40 @@
+// This file is generated by kconfig_compiler_kf5 from test_translation.kcfg.
+// All changes you do to this file will be lost.
+#ifndef TESTNAMESPACE_TESTTRANSLATIONKDE_H
+#define TESTNAMESPACE_TESTTRANSLATIONKDE_H
+
+#include <qglobal.h>
+#include <kconfigskeleton.h>
+#include <QCoreApplication>
+#include <QDebug>
+
+namespace TestNameSpace {
+
+class TestTranslationKde : public KConfigSkeleton
+{
+ public:
+
+ TestTranslationKde( );
+ ~TestTranslationKde();
+
+
+ /**
+ Get Enable automatic saving of calendar
+ */
+ bool autoSave() const
+ {
+ return mAutoSave;
+ }
+
+ protected:
+
+ // General
+ bool mAutoSave;
+
+ private:
+};
+
+}
+
+#endif
+
diff --git a/autotests/kconfig_compiler/test_translation_kde.kcfgc b/autotests/kconfig_compiler/test_translation_kde.kcfgc
new file mode 100644
index 00000000..402250c1
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_kde.kcfgc
@@ -0,0 +1,6 @@
+# Code generation options for kconfig_compiler_kf5
+File=test_translation.kcfg
+NameSpace=TestNameSpace
+ClassName=TestTranslationKde
+SetUserTexts=true
+TranslationSystem=kde
diff --git a/autotests/kconfig_compiler/test_translation_kde_domain.cpp.ref b/autotests/kconfig_compiler/test_translation_kde_domain.cpp.ref
new file mode 100644
index 00000000..66fc4cb9
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_kde_domain.cpp.ref
@@ -0,0 +1,25 @@
+// This file is generated by kconfig_compiler_kf5 from test_translation.kcfg.
+// All changes you do to this file will be lost.
+
+#include "test_translation_kde_domain.h"
+
+#include <klocalizedstring.h>
+
+using namespace TestNameSpace;
+
+TestTranslationKdeDomain::TestTranslationKdeDomain( )
+ : KConfigSkeleton( QLatin1String( "test_translation_rc" ) )
+{
+ setCurrentGroup( QLatin1String( "General" ) );
+
+ KConfigSkeleton::ItemBool *itemAutoSave;
+ itemAutoSave = new KConfigSkeleton::ItemBool( currentGroup(), QLatin1String( "Auto Save" ), mAutoSave, false );
+ itemAutoSave->setLabel( i18nd("test-kcfg-kde", "Enable automatic saving of calendar") );
+ itemAutoSave->setWhatsThis( i18ndc("test-kcfg-kde", "@info:whatsthis", "Enable automatic saving of calendars to have calendars saved automatically.") );
+ addItem( itemAutoSave, QLatin1String( "AutoSave" ) );
+}
+
+TestTranslationKdeDomain::~TestTranslationKdeDomain()
+{
+}
+
diff --git a/autotests/kconfig_compiler/test_translation_kde_domain.h.ref b/autotests/kconfig_compiler/test_translation_kde_domain.h.ref
new file mode 100644
index 00000000..2fa42c71
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_kde_domain.h.ref
@@ -0,0 +1,40 @@
+// This file is generated by kconfig_compiler_kf5 from test_translation.kcfg.
+// All changes you do to this file will be lost.
+#ifndef TESTNAMESPACE_TESTTRANSLATIONKDEDOMAIN_H
+#define TESTNAMESPACE_TESTTRANSLATIONKDEDOMAIN_H
+
+#include <qglobal.h>
+#include <kconfigskeleton.h>
+#include <QCoreApplication>
+#include <QDebug>
+
+namespace TestNameSpace {
+
+class TestTranslationKdeDomain : public KConfigSkeleton
+{
+ public:
+
+ TestTranslationKdeDomain( );
+ ~TestTranslationKdeDomain();
+
+
+ /**
+ Get Enable automatic saving of calendar
+ */
+ bool autoSave() const
+ {
+ return mAutoSave;
+ }
+
+ protected:
+
+ // General
+ bool mAutoSave;
+
+ private:
+};
+
+}
+
+#endif
+
diff --git a/autotests/kconfig_compiler/test_translation_kde_domain.kcfgc b/autotests/kconfig_compiler/test_translation_kde_domain.kcfgc
new file mode 100644
index 00000000..5b242b41
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_kde_domain.kcfgc
@@ -0,0 +1,7 @@
+# Code generation options for kconfig_compiler_kf5
+File=test_translation.kcfg
+NameSpace=TestNameSpace
+ClassName=TestTranslationKdeDomain
+SetUserTexts=true
+TranslationSystem=kde
+TranslationDomain=test-kcfg-kde
diff --git a/autotests/kconfig_compiler/test_translation_kde_domain_main.cpp b/autotests/kconfig_compiler/test_translation_kde_domain_main.cpp
new file mode 100644
index 00000000..64f8d59d
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_kde_domain_main.cpp
@@ -0,0 +1,32 @@
+/*
+Copyright (c) 2015 Chusslove Illich <caslav.ilic@gmx.net>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include "test_translation_kde_domain.h"
+#include <QGuiApplication>
+
+int main(int argc, char **argv)
+{
+ QGuiApplication app(argc, argv);
+ Q_UNUSED(app);
+ TestNameSpace::TestTranslationKdeDomain *t = new TestNameSpace::TestTranslationKdeDomain();
+ delete t;
+ return 0;
+}
diff --git a/autotests/kconfig_compiler/test_translation_kde_main.cpp b/autotests/kconfig_compiler/test_translation_kde_main.cpp
new file mode 100644
index 00000000..a6a597c6
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_kde_main.cpp
@@ -0,0 +1,32 @@
+/*
+Copyright (c) 2015 Chusslove Illich <caslav.ilic@gmx.net>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include "test_translation_kde.h"
+#include <QGuiApplication>
+
+int main(int argc, char **argv)
+{
+ QGuiApplication app(argc, argv);
+ Q_UNUSED(app);
+ TestNameSpace::TestTranslationKde *t = new TestNameSpace::TestTranslationKde();
+ delete t;
+ return 0;
+}
diff --git a/autotests/kconfig_compiler/test_translation_qt.cpp.ref b/autotests/kconfig_compiler/test_translation_qt.cpp.ref
new file mode 100644
index 00000000..f5ae7273
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_qt.cpp.ref
@@ -0,0 +1,23 @@
+// This file is generated by kconfig_compiler_kf5 from test_translation.kcfg.
+// All changes you do to this file will be lost.
+
+#include "test_translation_qt.h"
+
+using namespace TestNameSpace;
+
+TestTranslationQt::TestTranslationQt( )
+ : KConfigSkeleton( QLatin1String( "test_translation_rc" ) )
+{
+ setCurrentGroup( QLatin1String( "General" ) );
+
+ KConfigSkeleton::ItemBool *itemAutoSave;
+ itemAutoSave = new KConfigSkeleton::ItemBool( currentGroup(), QLatin1String( "Auto Save" ), mAutoSave, false );
+ itemAutoSave->setLabel( QCoreApplication::translate("TestTranslationQt", "Enable automatic saving of calendar") );
+ itemAutoSave->setWhatsThis( /*: @info:whatsthis */ QCoreApplication::translate("TestTranslationQt", "Enable automatic saving of calendars to have calendars saved automatically.") );
+ addItem( itemAutoSave, QLatin1String( "AutoSave" ) );
+}
+
+TestTranslationQt::~TestTranslationQt()
+{
+}
+
diff --git a/autotests/kconfig_compiler/test_translation_qt.h.ref b/autotests/kconfig_compiler/test_translation_qt.h.ref
new file mode 100644
index 00000000..9831468b
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_qt.h.ref
@@ -0,0 +1,40 @@
+// This file is generated by kconfig_compiler_kf5 from test_translation.kcfg.
+// All changes you do to this file will be lost.
+#ifndef TESTNAMESPACE_TESTTRANSLATIONQT_H
+#define TESTNAMESPACE_TESTTRANSLATIONQT_H
+
+#include <qglobal.h>
+#include <kconfigskeleton.h>
+#include <QCoreApplication>
+#include <QDebug>
+
+namespace TestNameSpace {
+
+class TestTranslationQt : public KConfigSkeleton
+{
+ public:
+
+ TestTranslationQt( );
+ ~TestTranslationQt();
+
+
+ /**
+ Get Enable automatic saving of calendar
+ */
+ bool autoSave() const
+ {
+ return mAutoSave;
+ }
+
+ protected:
+
+ // General
+ bool mAutoSave;
+
+ private:
+};
+
+}
+
+#endif
+
diff --git a/autotests/kconfig_compiler/test_translation_qt.kcfgc b/autotests/kconfig_compiler/test_translation_qt.kcfgc
new file mode 100644
index 00000000..fcdd26c6
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_qt.kcfgc
@@ -0,0 +1,6 @@
+# Code generation options for kconfig_compiler_kf5
+File=test_translation.kcfg
+NameSpace=TestNameSpace
+ClassName=TestTranslationQt
+SetUserTexts=true
+TranslationSystem=qt
diff --git a/autotests/kconfig_compiler/test_translation_qt_main.cpp b/autotests/kconfig_compiler/test_translation_qt_main.cpp
new file mode 100644
index 00000000..5e142fba
--- /dev/null
+++ b/autotests/kconfig_compiler/test_translation_qt_main.cpp
@@ -0,0 +1,32 @@
+/*
+Copyright (c) 2015 Chusslove Illich <caslav.ilic@gmx.net>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include "test_translation_qt.h"
+#include <QGuiApplication>
+
+int main(int argc, char **argv)
+{
+ QGuiApplication app(argc, argv);
+ Q_UNUSED(app);
+ TestNameSpace::TestTranslationQt *t = new TestNameSpace::TestTranslationQt();
+ delete t;
+ return 0;
+}
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(";