1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
/*
* SPDX-FileCopyrightText: 2025 Felix Morgner <felix.morgner@gmail.com>
* SPDX-License-Identifier: LGPL-2.1-only
*/
#include "messages.hpp"
#include <catch2/catch_test_macros.hpp>
#include <catch2/generators/catch_generators.hpp>
#include <libintl.h>
#include <clocale>
#include <format>
#include <string>
namespace Turns::gui::tests
{
TEST_CASE("Translated messages")
{
auto locale = GENERATE("de_CH.UTF-8", "de_DE.UTF-8", "de_AT.UTF-8");
setlocale(LC_ALL, locale);
SECTION(std::format("Locale '{}'", locale))
{
auto message = GENERATE(message::add_participant,
message::cancel,
message::clear,
message::delete_participant,
message::disposition,
message::disposition_colors,
message::edit_participant,
message::end_turn_order,
message::finish,
message::flow,
message::friendly,
message::hostile,
message::main_menu,
message::mark_as_defeated,
// a better solution is required to test the following entry:
// name,
message::new_turn_order_file_name,
message::next_participant,
message::no_active_turn_order,
message::open,
message::preferences,
message::preferences_mnemonic,
message::previous_participant,
message::priority,
message::priority_number,
message::question_clear_turn_order,
message::quit,
message::reset,
message::save,
message::save_as,
message::saving_failed_format,
message::secret,
message::skip_defeated,
message::start_turn_order,
message::stop,
message::stop_and_clear,
message::stop_turn_order,
message::successfully_opened_format,
message::successfully_saved_format,
message::round_number,
message::turns,
message::turns_files);
SECTION(std::format("has a translation for '{}'", message))
{
REQUIRE(std::string{gettext(message)} != message);
}
}
}
} // namespace Turns::messages
|