summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-14 12:31:24 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-14 12:31:24 +0200
commit22affd3c791679f05ccde937a1804ecb3f5bf5e2 (patch)
tree1053b86309f5c3f827cdfb5de9988eec28faf3c9 /lang
parentf5e65adb5c348b5c1f3fe479fc71053183f66674 (diff)
downloadturns-22affd3c791679f05ccde937a1804ecb3f5bf5e2.tar.xz
turns-22affd3c791679f05ccde937a1804ecb3f5bf5e2.zip
app/gui: add translations for create participant dialog
Diffstat (limited to 'lang')
-rw-r--r--lang/CMakeLists.txt19
-rw-r--r--lang/include/turns/lang/messages.hpp9
-rw-r--r--lang/po/buttons/de.po2
-rw-r--r--lang/po/buttons/de_CH.po2
-rw-r--r--lang/po/buttons/en_US.po2
-rw-r--r--lang/po/de_CH.po9
-rw-r--r--lang/po/labels/de.po12
-rw-r--r--lang/po/labels/en_US.po14
-rw-r--r--lang/tests/buttons.cpp29
-rw-r--r--lang/tests/labels.cpp4
10 files changed, 88 insertions, 14 deletions
diff --git a/lang/CMakeLists.txt b/lang/CMakeLists.txt
index ac045a8..ed234e6 100644
--- a/lang/CMakeLists.txt
+++ b/lang/CMakeLists.txt
@@ -1,15 +1,13 @@
set(TRANSLATIONS
"de"
+ "de_CH"
"en_US"
)
foreach(LANG IN LISTS TRANSLATIONS)
- set(BASE_SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/po/${LANG}.po")
- set(LABELS_SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/po/labels/${LANG}.po")
- set(MENU_ITEMS_SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/po/menu_items/${LANG}.po")
- set(TOOLTIPS_SOURCE_FILE "${CMAKE_CURRENT_SOURCE_DIR}/po/tooltips/${LANG}.po")
set(BINARY_FILE "${CMAKE_CURRENT_BINARY_DIR}/${LANG}/LC_MESSAGES/turns.mo")
-
+ file(GLOB_RECURSE PARTS CONFIGURE_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/*/${LANG}.po")
+
list(APPEND TRANSLATION_BINARIES "${BINARY_FILE}")
add_custom_command(OUTPUT "${BINARY_FILE}"
@@ -17,16 +15,10 @@ foreach(LANG IN LISTS TRANSLATIONS)
ARGS
"-o"
"${BINARY_FILE}"
- "${BASE_SOURCE_FILE}"
- "${LABELS_SOURCE_FILE}"
- "${MENU_ITEMS_SOURCE_FILE}"
- "${TOOLTIPS_SOURCE_FILE}"
+ ${PARTS}
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
DEPENDS
- "${BASE_SOURCE_FILE}"
- "${LABELS_SOURCE_FILE}"
- "${MENU_ITEMS_SOURCE_FILE}"
- "${TOOLTIPS_SOURCE_FILE}"
+ ${PARTS}
COMMENT "Processing translation ${LANG}"
)
@@ -60,6 +52,7 @@ add_dependencies("lang" "mofiles")
# Tests
add_executable("lang-tests"
+ "tests/buttons.cpp"
"tests/labels.cpp"
"tests/menu_items.cpp"
"tests/tooltips.cpp"
diff --git a/lang/include/turns/lang/messages.hpp b/lang/include/turns/lang/messages.hpp
index 0b16648..ea76565 100644
--- a/lang/include/turns/lang/messages.hpp
+++ b/lang/include/turns/lang/messages.hpp
@@ -3,6 +3,11 @@
namespace turns::lang
{
+ namespace buttons
+ {
+ auto constexpr static finish = "Finish";
+ }
+
namespace menu_items
{
auto constexpr static quit = "_Quit";
@@ -10,7 +15,11 @@ namespace turns::lang
namespace labels
{
+ auto constexpr static add_participant = "Add participant";
+ auto constexpr static disposition = "Disposition";
+ auto constexpr static name = "Name";
auto constexpr static no_active_turn_order = "No active turn order";
+ auto constexpr static order = "Order";
auto constexpr static turns = "Turns";
} // namespace labels
diff --git a/lang/po/buttons/de.po b/lang/po/buttons/de.po
new file mode 100644
index 0000000..afbf89e
--- /dev/null
+++ b/lang/po/buttons/de.po
@@ -0,0 +1,2 @@
+msgid "Finish"
+msgstr "Abschließen"
diff --git a/lang/po/buttons/de_CH.po b/lang/po/buttons/de_CH.po
new file mode 100644
index 0000000..dba2a58
--- /dev/null
+++ b/lang/po/buttons/de_CH.po
@@ -0,0 +1,2 @@
+msgid "Finish"
+msgstr "Abschliessen"
diff --git a/lang/po/buttons/en_US.po b/lang/po/buttons/en_US.po
new file mode 100644
index 0000000..a38c78d
--- /dev/null
+++ b/lang/po/buttons/en_US.po
@@ -0,0 +1,2 @@
+msgid "Finish"
+msgstr "Finish"
diff --git a/lang/po/de_CH.po b/lang/po/de_CH.po
new file mode 100644
index 0000000..c775800
--- /dev/null
+++ b/lang/po/de_CH.po
@@ -0,0 +1,9 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: turns 1.0.0\n"
+"Last-Translator: Felix Morgner\n"
+"Language: de\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
diff --git a/lang/po/labels/de.po b/lang/po/labels/de.po
index 82fdc4a..3f6f7f9 100644
--- a/lang/po/labels/de.po
+++ b/lang/po/labels/de.po
@@ -1,5 +1,17 @@
+msgid "Add participant"
+msgstr "Teilnehmer hinzufügen"
+
+msgid "Disposition"
+msgstr "Gesinnung"
+
+msgid "Name"
+msgstr "Name"
+
msgid "No active turn order"
msgstr "Keine aktive Zugreihenfolge"
+msgid "Order"
+msgstr "Reihenfolge"
+
msgid "Turns"
msgstr "Züge"
diff --git a/lang/po/labels/en_US.po b/lang/po/labels/en_US.po
index 56d9ed5..88eed2e 100644
--- a/lang/po/labels/en_US.po
+++ b/lang/po/labels/en_US.po
@@ -1,5 +1,17 @@
+msgid "Add participant"
+msgstr "Add participant"
+
+msgid "Disposition"
+msgstr "Disposition"
+
+msgid "Name"
+msgstr "Name"
+
msgid "No active turn order"
msgstr "No active turn order"
+msgid "Order"
+msgstr "Order"
+
msgid "Turns"
-msgstr "Turns"
+msgstr "Turns" \ No newline at end of file
diff --git a/lang/tests/buttons.cpp b/lang/tests/buttons.cpp
new file mode 100644
index 0000000..b016ecf
--- /dev/null
+++ b/lang/tests/buttons.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("Button translations")
+ {
+ auto message = GENERATE(
+ buttons::finish
+ );
+
+ 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/labels.cpp b/lang/tests/labels.cpp
index 3ebdf42..6bdf8cc 100644
--- a/lang/tests/labels.cpp
+++ b/lang/tests/labels.cpp
@@ -14,7 +14,11 @@ namespace turns::lang::tests
TEST_CASE("Label translations")
{
auto message = GENERATE(
+ labels::add_participant,
+ labels::disposition,
+ // labels::name, // a better solution is required to support this one
labels::no_active_turn_order,
+ labels::order,
labels::turns
);