mirror of
https://github.com/WerWolv/ImHex.git
synced 2026-04-01 21:17:44 -05:00
Added Language setting and localization wrapper
This commit is contained in:
@@ -4,6 +4,56 @@ namespace hex::plugin::builtin {
|
||||
|
||||
void registerSettings() {
|
||||
|
||||
ContentRegistry::Settings::add("Interface", "Color theme", 0, [](nlohmann::json &setting) {
|
||||
static int selection = setting;
|
||||
if (ImGui::Combo("##color_theme", &selection, "Dark\0Light\0Classic\0")) {
|
||||
setting = selection;
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
ContentRegistry::Settings::add("Interface", "Language", "en-US", [](nlohmann::json &setting) {
|
||||
auto &languages = LangEntry::getSupportedLanguages();
|
||||
|
||||
static int selection = [&]() -> int {
|
||||
u16 index = 0;
|
||||
for (auto &[languageName, languageFile] : languages){
|
||||
if (languageFile == setting)
|
||||
return index;
|
||||
index++;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}();
|
||||
|
||||
static auto languageNames = [&]() {
|
||||
std::vector<const char*> result;
|
||||
for (auto &[languageName, languageFile] : languages)
|
||||
result.push_back(languageName.c_str());
|
||||
|
||||
return result;
|
||||
}();
|
||||
|
||||
|
||||
if (ImGui::Combo("##language", &selection, languageNames.data(), languageNames.size())) {
|
||||
|
||||
u16 index = 0;
|
||||
for (auto &[languageName, languageFile] : languages){
|
||||
if (selection == index) {
|
||||
setting = languageFile;
|
||||
break;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user