Files
tactility/Tactility/Source/settings/Language.cpp
T
Ken Van Hoeylandt f620255c41 New logging and more (#446)
- `TT_LOG_*` macros are replaced by `Logger` via `#include<Tactility/Logger.h>`
- Changed default timezone to Europe/Amsterdam
- Fix for logic bug in unPhone hardware
- Fix for init/deinit in DRV2605 driver
- Other fixes
- Removed optimization that broke unPhone (disabled the moving of heap-related functions to flash)
2026-01-06 22:35:39 +01:00

67 lines
1.6 KiB
C++

#include <Tactility/Logger.h>
#include <Tactility/settings/Language.h>
#include <Tactility/settings/SystemSettings.h>
#include <utility>
namespace tt::settings {
static const auto LOGGER = Logger("Language");
void setLanguage(Language newLanguage) {
SystemSettings properties;
if (!loadSystemSettings(properties)) {
return;
}
properties.language = newLanguage;
saveSystemSettings(properties);
}
Language getLanguage() {
SystemSettings properties;
if (!loadSystemSettings(properties)) {
return Language::en_US;
} else {
return properties.language;
}
}
std::string toString(Language language) {
switch (language) {
case Language::en_GB:
return "en-GB";
case Language::en_US:
return "en-US";
case Language::fr_FR:
return "fr-FR";
case Language::nl_BE:
return "nl-BE";
case Language::nl_NL:
return "nl-NL";
default:
LOGGER.error("Missing serialization for language {}", static_cast<int>(language));
std::unreachable();
}
}
bool fromString(const std::string& text, Language& language) {
if (text == "en-GB") {
language = Language::en_GB;
} else if (text == "en-US") {
language = Language::en_US;
} else if (text == "fr-FR") {
language = Language::fr_FR;
} else if (text == "nl-BE") {
language = Language::nl_BE;
} else if (text == "nl-NL") {
language = Language::nl_NL;
} else {
return false;
}
return true;
}
}