summaryrefslogtreecommitdiff
path: root/core/src/Utils/I18n.cpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2021-05-06 21:56:40 -0700
committerrtk0c <[email protected]>2021-05-06 21:56:40 -0700
commit1fd1e4b5f2418e3ac2909658993bfedb615537ec (patch)
tree6de080d2273890f8a74d7fcd3572bb44f44ac545 /core/src/Utils/I18n.cpp
parent538e804fc9beb83e711a210ffbb6badc15f285d5 (diff)
Change brace style to on new line, add initial deliveries view when an order entry is selected
Diffstat (limited to 'core/src/Utils/I18n.cpp')
-rw-r--r--core/src/Utils/I18n.cpp60
1 files changed, 40 insertions, 20 deletions
diff --git a/core/src/Utils/I18n.cpp b/core/src/Utils/I18n.cpp
index edc5469..e5131cc 100644
--- a/core/src/Utils/I18n.cpp
+++ b/core/src/Utils/I18n.cpp
@@ -14,15 +14,18 @@ using namespace std::literals::string_view_literals;
namespace {
-struct LanguageInfo {
+struct LanguageInfo
+{
std::string CodeName;
std::string LocaleName;
fs::path File;
};
-class I18nState {
+class I18nState
+{
public:
- static I18nState& Get() {
+ static I18nState& Get()
+ {
static I18nState instance;
return instance;
}
@@ -33,19 +36,22 @@ public:
LanguageInfo* CurrentLanguage = nullptr;
bool Unloaded = false;
- void Unload() {
+ void Unload()
+ {
Unloaded = true;
CurrentEntries = {};
}
- void EnsureLoaded() {
+ void EnsureLoaded()
+ {
if (Unloaded) {
Unloaded = false;
Reload();
}
}
- void Reload() {
+ void Reload()
+ {
if (!CurrentLanguage) return;
std::ifstream ifs(CurrentLanguage->File);
@@ -65,7 +71,8 @@ public:
}
};
-std::string FindLocalizedName(const fs::path& localeFile) {
+std::string FindLocalizedName(const fs::path& localeFile)
+{
std::ifstream ifs(localeFile);
if (!ifs) {
throw std::runtime_error("Failed to open locale file.");
@@ -82,7 +89,8 @@ std::string FindLocalizedName(const fs::path& localeFile) {
} // namespace
-void I18n::Init() {
+void I18n::Init()
+{
auto& state = I18nState::Get();
auto dir = fs::current_path() / "locale";
@@ -106,7 +114,8 @@ void I18n::Init() {
}
}
-void I18n::Shutdown() {
+void I18n::Shutdown()
+{
auto& state = I18nState::Get();
state.LocaleInfos.clear();
state.CurrentEntries.clear();
@@ -114,18 +123,21 @@ void I18n::Shutdown() {
state.Unloaded = false;
}
-void I18n::Unload() {
+void I18n::Unload()
+{
auto& state = I18nState::Get();
state.Unload();
OnUnload();
}
-std::string_view I18n::GetLanguage() {
+std::string_view I18n::GetLanguage()
+{
auto& state = I18nState::Get();
return state.CurrentLanguage->CodeName;
}
-bool I18n::SetLanguage(std::string_view lang) {
+bool I18n::SetLanguage(std::string_view lang)
+{
auto& state = I18nState::Get();
if (state.CurrentLanguage &&
state.CurrentLanguage->CodeName == lang)
@@ -142,7 +154,8 @@ bool I18n::SetLanguage(std::string_view lang) {
return true;
}
-std::optional<std::string_view> I18n::Lookup(std::string_view key) {
+std::optional<std::string_view> I18n::Lookup(std::string_view key)
+{
auto& state = I18nState::Get();
state.EnsureLoaded();
@@ -154,7 +167,8 @@ std::optional<std::string_view> I18n::Lookup(std::string_view key) {
}
}
-std::string_view I18n::LookupUnwrap(std::string_view key) {
+std::string_view I18n::LookupUnwrap(std::string_view key)
+{
auto o = Lookup(key);
if (!o) {
std::string msg;
@@ -166,7 +180,8 @@ std::string_view I18n::LookupUnwrap(std::string_view key) {
return o.value();
}
-std::string_view I18n::LookupLanguage(std::string_view lang) {
+std::string_view I18n::LookupLanguage(std::string_view lang)
+{
auto& state = I18nState::Get();
auto iter = state.LocaleInfos.find(lang);
if (iter != state.LocaleInfos.end()) {
@@ -177,18 +192,22 @@ std::string_view I18n::LookupLanguage(std::string_view lang) {
}
BasicTranslation::BasicTranslation(std::string_view key)
- : mContent{ I18n::LookupUnwrap(key) } {
+ : mContent{ I18n::LookupUnwrap(key) }
+{
}
-const std::string& BasicTranslation::GetString() const {
+const std::string& BasicTranslation::GetString() const
+{
return mContent;
}
-const char* BasicTranslation::Get() const {
+const char* BasicTranslation::Get() const
+{
return mContent.c_str();
}
-FormattedTranslation::FormattedTranslation(std::string_view key) {
+FormattedTranslation::FormattedTranslation(std::string_view key)
+{
auto src = I18n::LookupUnwrap(key);
mMinimumResultLen = 0;
@@ -259,7 +278,8 @@ FormattedTranslation::FormattedTranslation(std::string_view key) {
}
}
-std::string FormattedTranslation::Format(std::span<Argument> args) {
+std::string FormattedTranslation::Format(std::span<Argument> args)
+{
if (args.size() != mNumArguments) {
throw std::runtime_error("Invalid number of arguments for FormattedTranslation::Format, expected " + std::to_string(mNumArguments) + " but found " + std::to_string(args.size()) + ".");
}