summaryrefslogtreecommitdiffstats
path: root/tests/auto/cmake/linguist/test_create_translation_same_base_names
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/cmake/linguist/test_create_translation_same_base_names')
-rw-r--r--tests/auto/cmake/linguist/test_create_translation_same_base_names/CMakeLists.txt22
-rw-r--r--tests/auto/cmake/linguist/test_create_translation_same_base_names/de/myobject.ts12
-rw-r--r--tests/auto/cmake/linguist/test_create_translation_same_base_names/fr/myobject.ts12
-rw-r--r--tests/auto/cmake/linguist/test_create_translation_same_base_names/myi18nobject.cpp32
4 files changed, 78 insertions, 0 deletions
diff --git a/tests/auto/cmake/linguist/test_create_translation_same_base_names/CMakeLists.txt b/tests/auto/cmake/linguist/test_create_translation_same_base_names/CMakeLists.txt
new file mode 100644
index 000000000..e395cd2b6
--- /dev/null
+++ b/tests/auto/cmake/linguist/test_create_translation_same_base_names/CMakeLists.txt
@@ -0,0 +1,22 @@
+# Copyright (C) 2023 The Qt Company Ltd.
+# SPDX-License-Identifier: BSD-3-Clause
+
+cmake_minimum_required(VERSION 3.16)
+
+project(test_create_translation_same_base_names)
+
+find_package(Qt6 COMPONENTS Core LinguistTools REQUIRED)
+
+set(my_srcs myi18nobject.cpp)
+
+set(ts_files "")
+foreach(language de fr)
+ set(ts_file ${language}/myobject.ts)
+ set_property(SOURCE ${ts_file}
+ PROPERTY OUTPUT_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/${language})
+ list(APPEND ts_files ${ts_file})
+endforeach()
+qt_create_translation(qm_files ${my_srcs} ${ts_files})
+
+add_executable(myobject ${my_srcs} ${qm_files})
+target_link_libraries(myobject Qt::Core)
diff --git a/tests/auto/cmake/linguist/test_create_translation_same_base_names/de/myobject.ts b/tests/auto/cmake/linguist/test_create_translation_same_base_names/de/myobject.ts
new file mode 100644
index 000000000..4d4292e5b
--- /dev/null
+++ b/tests/auto/cmake/linguist/test_create_translation_same_base_names/de/myobject.ts
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="de_DE">
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../myi18nobject.cpp" line="26"/>
+ <source>Hello, world!</source>
+ <translation>Hallo, Welt!</translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/cmake/linguist/test_create_translation_same_base_names/fr/myobject.ts b/tests/auto/cmake/linguist/test_create_translation_same_base_names/fr/myobject.ts
new file mode 100644
index 000000000..ab96d20e3
--- /dev/null
+++ b/tests/auto/cmake/linguist/test_create_translation_same_base_names/fr/myobject.ts
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE TS>
+<TS version="2.1" language="fr">
+<context>
+ <name>main</name>
+ <message>
+ <location filename="../myi18nobject.cpp" line="26"/>
+ <source>Hello, world!</source>
+ <translation>Bonjour le monde!</translation>
+ </message>
+</context>
+</TS>
diff --git a/tests/auto/cmake/linguist/test_create_translation_same_base_names/myi18nobject.cpp b/tests/auto/cmake/linguist/test_create_translation_same_base_names/myi18nobject.cpp
new file mode 100644
index 000000000..2f2b31ff6
--- /dev/null
+++ b/tests/auto/cmake/linguist/test_create_translation_same_base_names/myi18nobject.cpp
@@ -0,0 +1,32 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// Copyright (C) 2016 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com, author Stephen Kelly <stephen.kelly@kdab.com>
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+#include <QCoreApplication>
+#include <QTranslator>
+#include <QLocale>
+
+#include <cstdio>
+
+using namespace Qt::Literals::StringLiterals;
+
+int main(int argc, char **argv)
+{
+ QCoreApplication app(argc, argv);
+ QTranslator *translator = new QTranslator();
+ QLocale frenchLocale = QLocale(QLocale::French);
+ QLocale::setDefault(frenchLocale);
+ if (!translator->load(QLocale(), "myobject.qm"_L1, {},
+ qApp->applicationDirPath() + "/fr/"_L1)) {
+ qFatal("Could not load translation file!");
+ }
+
+ app.installTranslator(translator);
+
+ QString text = QCoreApplication::translate("main", "Hello, world!");
+ if (text != "Bonjour le monde!"_L1)
+ qFatal("Translation not found!");
+
+ std::fprintf(stdout, "%s\n", qPrintable(text));
+ return 0;
+}