diff options
Diffstat (limited to 'tests/auto/cmake/linguist/test_create_translation_same_base_names')
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; +} |