From 44755b2af3e1ea9110735b119e2c7d1538fae46f Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Fri, 12 Jul 2024 15:14:20 +0200 Subject: lang: add translation tests --- lang/CMakeLists.txt | 16 +++++++++++++++- lang/tests/translations.cpp | 29 +++++++++++++++++++++++++++++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 lang/tests/translations.cpp (limited to 'lang') diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt index 4bc985c..9ba960b 100644 --- a/lang/CMakeLists.txt +++ b/lang/CMakeLists.txt @@ -35,4 +35,18 @@ target_compile_definitions("lang" INTERFACE "LOCALEDIR=\"${CMAKE_INSTALL_FULL_LOCALEDIR}\"" ) -add_dependencies("lang" "mofiles") \ No newline at end of file +add_dependencies("lang" "mofiles") + +# Tests + +add_executable("lang-tests" + "tests/translations.cpp" +) + +target_link_libraries("lang-tests" PRIVATE + "Catch2::Catch2" + + "turns::intl-test-main" +) + +catch_discover_tests("lang-tests") \ No newline at end of file diff --git a/lang/tests/translations.cpp b/lang/tests/translations.cpp new file mode 100644 index 0000000..1bb78a5 --- /dev/null +++ b/lang/tests/translations.cpp @@ -0,0 +1,29 @@ +#include +#include + +#include + +#include +#include + +TEST_CASE("All supported languages have translations") +{ + auto message = GENERATE( + "Turns", + "Add a participant", + "No active turn-order", + "_Quit" + ); + + auto locale = GENERATE( + "de_CH.UTF-8", + "de_DE.UTF-8", + "de_AT.UTF-8" + ); + + SECTION(std::format("'{}' has a translation in '{}'", message, locale)) + { + setlocale(LC_ALL, locale); + REQUIRE(std::string{gettext(message)} != message); + } +} -- cgit v1.2.3