summaryrefslogtreecommitdiff
path: root/lang/tests
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-12 16:54:48 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-12 16:54:48 +0200
commit8714470ebb41abec07e178abf4d4739dcd6087fb (patch)
treeee7a82246286feb80457c96e71a9dd0e88207767 /lang/tests
parenta1777f0c9b3322592c702293b747404730dd1a70 (diff)
downloadturns-8714470ebb41abec07e178abf4d4739dcd6087fb.tar.xz
turns-8714470ebb41abec07e178abf4d4739dcd6087fb.zip
lang: extract constants for messages
Diffstat (limited to 'lang/tests')
-rw-r--r--lang/tests/labels.cpp30
-rw-r--r--lang/tests/menu_items.cpp29
-rw-r--r--lang/tests/tooltips.cpp (renamed from lang/tests/translations.cpp)14
3 files changed, 68 insertions, 5 deletions
diff --git a/lang/tests/labels.cpp b/lang/tests/labels.cpp
new file mode 100644
index 0000000..3ebdf42
--- /dev/null
+++ b/lang/tests/labels.cpp
@@ -0,0 +1,30 @@
+#include "turns/lang/messages.hpp"
+
+#include <catch2/catch_test_macros.hpp>
+#include <catch2/generators/catch_generators.hpp>
+
+#include <format>
+#include <string>
+
+#include <libintl.h>
+
+namespace turns::lang::tests
+{
+
+ TEST_CASE("Label translations")
+ {
+ auto message = GENERATE(
+ labels::no_active_turn_order,
+ labels::turns
+ );
+
+ 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);
+ }
+ }
+
+} // namespace turns::lang::tests \ No newline at end of file
diff --git a/lang/tests/menu_items.cpp b/lang/tests/menu_items.cpp
new file mode 100644
index 0000000..71fdef5
--- /dev/null
+++ b/lang/tests/menu_items.cpp
@@ -0,0 +1,29 @@
+#include "turns/lang/messages.hpp"
+
+#include <catch2/catch_test_macros.hpp>
+#include <catch2/generators/catch_generators.hpp>
+
+#include <format>
+#include <string>
+
+#include <libintl.h>
+
+namespace turns::lang::tests
+{
+
+ TEST_CASE("Menu item translations")
+ {
+ auto message = GENERATE(
+ menu_items::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);
+ }
+ }
+
+} // namespace turns::lang::tests \ No newline at end of file
diff --git a/lang/tests/translations.cpp b/lang/tests/tooltips.cpp
index 1bb78a5..66b6d72 100644
--- a/lang/tests/translations.cpp
+++ b/lang/tests/tooltips.cpp
@@ -1,3 +1,5 @@
+#include "turns/lang/messages.hpp"
+
#include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
@@ -6,13 +8,13 @@
#include <format>
#include <string>
-TEST_CASE("All supported languages have translations")
+namespace turns::lang::tests
+{
+
+TEST_CASE("Tooltip translations")
{
auto message = GENERATE(
- "Turns",
- "Add a participant",
- "No active turn-order",
- "_Quit"
+ tooltips::add_a_participant
);
auto locale = GENERATE(
@@ -27,3 +29,5 @@ TEST_CASE("All supported languages have translations")
REQUIRE(std::string{gettext(message)} != message);
}
}
+
+} \ No newline at end of file