i18n: init localization for ANR, Permissions and Notifications (#12316)

Adds localization support for en, it, pl and jp

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
Co-authored-by: Aaron Blasko <blaskoazzolaaaron@gmail.com>
This commit is contained in:
Vaxry 2025-11-16 14:51:14 +00:00 committed by GitHub
parent cb47eb1d11
commit e616e595ae
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
12 changed files with 302 additions and 67 deletions

50
src/i18n/Engine.hpp Normal file
View file

@ -0,0 +1,50 @@
#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_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,
};
class CI18nEngine {
public:
CI18nEngine();
~CI18nEngine() = default;
std::string localize(eI18nKeys key, const std::unordered_map<std::string, std::string>& vars = {});
};
SP<CI18nEngine> i18nEngine();
};