summaryrefslogtreecommitdiff
path: root/src/i18n/Engine.hpp
blob: 79ec86f89ea7ea2072df255f581c54950af3ed98 (plain)
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
#pragma once

#include "../helpers/memory/Memory.hpp"
#include <unordered_map>
#include <cstdint>
#include <string>

namespace I18n {

    enum eI18nKeys : uint8_t {
        TXT_KEY_ANR_TITLE = 0,
        TXT_KEY_ANR_CONTENT,
        TXT_KEY_ANR_OPTION_TERMINATE,
        TXT_KEY_ANR_OPTION_WAIT,
        TXT_KEY_ANR_PROP_UNKNOWN,

        TXT_KEY_PERMISSION_REQUEST_UNKNOWN,
        TXT_KEY_PERMISSION_REQUEST_SCREENCOPY,
        TXT_KEY_PERMISSION_REQUEST_CURSOR_POS,
        TXT_KEY_PERMISSION_REQUEST_PLUGIN,
        TXT_KEY_PERMISSION_REQUEST_KEYBOARD,
        TXT_KEY_PERMISSION_UNKNOWN_NAME,
        TXT_KEY_PERMISSION_TITLE,
        TXT_KEY_PERMISSION_PERSISTENCE_HINT,
        TXT_KEY_PERMISSION_ALLOW,
        TXT_KEY_PERMISSION_ALLOW_AND_REMEMBER,
        TXT_KEY_PERMISSION_ALLOW_ONCE,
        TXT_KEY_PERMISSION_DENY,
        TXT_KEY_PERMISSION_UNKNOWN_WAYLAND_APP,

        TXT_KEY_NOTIF_EXTERNAL_XDG_DESKTOP,
        TXT_KEY_NOTIF_NO_GUIUTILS,
        TXT_KEY_NOTIF_FAILED_ASSETS,
        TXT_KEY_NOTIF_INVALID_MONITOR_LAYOUT,
        TXT_KEY_NOTIF_MONITOR_MODE_FAIL,
        TXT_KEY_NOTIF_MONITOR_AUTO_SCALE,
        TXT_KEY_NOTIF_FAILED_TO_LOAD_PLUGIN,
        TXT_KEY_NOTIF_CM_RELOAD_FAILED,
        TXT_KEY_NOTIF_WIDE_COLOR_NOT_10B,
        TXT_KEY_NOTIF_NO_WATCHDOG,

        TXT_KEY_SAFE_MODE_TITLE,
        TXT_KEY_SAFE_MODE_DESCRIPTION,
        TXT_KEY_SAFE_MODE_BUTTON_OPEN_CRASH_REPORT_DIR,
        TXT_KEY_SAFE_MODE_BUTTON_LOAD_CONFIG,
        TXT_KEY_SAFE_MODE_BUTTON_UNDERSTOOD,
    };

    class CI18nEngine {
      public:
        CI18nEngine();
        ~CI18nEngine() = default;

        std::string localize(eI18nKeys key, const std::unordered_map<std::string, std::string>& vars = {});
    };

    SP<CI18nEngine> i18nEngine();
};