From 8f7daa9bd100345d7e23639604c9a3a50ce6448b Mon Sep 17 00:00:00 2001 From: rtk0c Date: Fri, 11 Jun 2021 13:35:35 -0700 Subject: Convert runtime-loaded l10n to string literals chosen at compile time --- core/src/Model/Assets.cpp | 37 +++++++++++++++---------------- core/src/Model/Template/Template_Main.cpp | 24 +++++++++----------- core/src/Model/Workflow/Workflow_Main.cpp | 18 ++++++--------- 3 files changed, 35 insertions(+), 44 deletions(-) (limited to 'core/src/Model') diff --git a/core/src/Model/Assets.cpp b/core/src/Model/Assets.cpp index ac3335a..64e1f22 100644 --- a/core/src/Model/Assets.cpp +++ b/core/src/Model/Assets.cpp @@ -1,11 +1,12 @@ #include "Assets.hpp" -#include "UI/Localization.hpp" #include "UI/UI.hpp" +#include "Utils/I18n.hpp" #include #include #include +#include #include #include #include @@ -34,10 +35,10 @@ public: switch (NewNameError) { case NameSelectionError::None: break; case NameSelectionError::Duplicated: - ImGui::ErrorMessage("Duplicate template name"); + ImGui::ErrorMessage(I18N_TEXT("Duplicate name", L10N_DUPLICATE_NAME_ERROR)); break; case NameSelectionError::Empty: - ImGui::ErrorMessage("Template name cannot be empty"); + ImGui::ErrorMessage(I18N_TEXT("Name cannot be empty", L10N_EMPTY_NAME_ERROR)); break; } } @@ -189,28 +190,26 @@ void AssetList::DisplayDetailsList(ListState& state) void AssetList::DisplayControls(ListState& state) { auto& ps = mPrivate->PopupPrivateState; - auto ls = LocaleStrings::Instance.get(); - bool openedDummy = true; - if (ImGui::Button(ls->Add.Get())) { - ImGui::OpenPopup(ls->AddDialogTitle.Get()); + if (ImGui::Button(ICON_FA_PLUS " " I18N_TEXT("Add", L10N_ADD))) { + ImGui::OpenPopup(I18N_TEXT("Add asset wizard", L10N_ADD_ASSET_DIALOG_TITLE)); } - if (ImGui::BeginPopupModal(ls->AddDialogTitle.Get(), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { + if (ImGui::BeginPopupModal(I18N_TEXT("Add asset wizard", L10N_ADD_ASSET_DIALOG_TITLE), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { DisplayAssetCreator(state); ImGui::EndPopup(); } ImGui::SameLine(); - if (ImGui::Button(ls->Rename.Get(), state.SelectedAsset == nullptr)) { - ImGui::OpenPopup(ls->RenameDialogTitle.Get()); + if (ImGui::Button(ICON_FA_I_CURSOR " " I18N_TEXT("Rename", L10N_RENAME), state.SelectedAsset == nullptr)) { + ImGui::OpenPopup(I18N_TEXT("Rename asset wizard", L10N_RENAME_ASSET_DIALOG_TITLE)); } - if (ImGui::BeginPopupModal(ls->RenameDialogTitle.Get(), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { - if (ImGui::InputText("New name", &ps.NewName)) { + if (ImGui::BeginPopupModal(I18N_TEXT("Rename asset wizard", L10N_RENAME_ASSET_DIALOG_TITLE), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { + if (ImGui::InputText(I18N_TEXT("Name", L10N_NAME), &ps.NewName)) { ps.Validate(*this); } - if (ImGui::Button(ls->Confirm.Get(), ps.HasErrors())) { + if (ImGui::Button(I18N_TEXT("Confirm", L10N_CONFIRM), ps.HasErrors())) { ImGui::CloseCurrentPopup(); auto movedAsset = Rename(state.SelectedAsset->Name, ps.NewName); @@ -220,7 +219,7 @@ void AssetList::DisplayControls(ListState& state) ps = {}; } ImGui::SameLine(); - if (ImGui::Button(ls->Cancel.Get())) { + if (ImGui::Button(I18N_TEXT("Cancel", L10N_CANCEL))) { ImGui::CloseCurrentPopup(); } @@ -230,11 +229,11 @@ void AssetList::DisplayControls(ListState& state) } ImGui::SameLine(); - if (ImGui::Button(ls->Delete.Get(), state.SelectedAsset == nullptr)) { - ImGui::OpenPopup(ls->DeleteDialogTitle.Get()); + if (ImGui::Button(ICON_FA_TRASH " " I18N_TEXT("Delete", L10N_DELETE), state.SelectedAsset == nullptr)) { + ImGui::OpenPopup(I18N_TEXT("Delete asset", L10N_DELETE_ASSET_DIALOG_TITLE)); } - if (ImGui::BeginPopupModal(ls->DeleteDialogTitle.Get(), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { - if (ImGui::Button(ls->Confirm.Get())) { + if (ImGui::BeginPopupModal(I18N_TEXT("Delete asset", L10N_DELETE_ASSET_DIALOG_TITLE), &openedDummy, ImGuiWindowFlags_AlwaysAutoResize)) { + if (ImGui::Button(I18N_TEXT("Confirm", L10N_CONFIRM))) { ImGui::CloseCurrentPopup(); auto& assetName = state.SelectedAsset->Name; @@ -243,7 +242,7 @@ void AssetList::DisplayControls(ListState& state) state.SelectedAsset = nullptr; } ImGui::SameLine(); - if (ImGui::Button(ls->Cancel.Get())) { + if (ImGui::Button(I18N_TEXT("Cancel", L10N_CANCEL))) { ImGui::CloseCurrentPopup(); } ImGui::EndPopup(); diff --git a/core/src/Model/Template/Template_Main.cpp b/core/src/Model/Template/Template_Main.cpp index 7d1b755..7dd5f87 100644 --- a/core/src/Model/Template/Template_Main.cpp +++ b/core/src/Model/Template/Template_Main.cpp @@ -2,7 +2,7 @@ #include "Model/GlobalStates.hpp" #include "Model/Project.hpp" -#include "UI/Localization.hpp" +#include "Utils/I18n.hpp" #include "UI/UI.hpp" #include "Utils/UUID.hpp" @@ -91,8 +91,6 @@ Template* TemplateAssetList::LoadImpl(const SavedAsset& asset) const void TemplateAssetList::DisplayAssetCreator(ListState& state) { - auto ls = LocaleStrings::Instance.get(); - auto ValidateNewName = [&]() -> void { if (mACNewName.empty()) { mACNewNameError = NameSelectionError::Empty; @@ -111,17 +109,17 @@ void TemplateAssetList::DisplayAssetCreator(ListState& state) switch (mACNewNameError) { case NameSelectionError::None: break; case NameSelectionError::Duplicated: - ImGui::ErrorMessage(ls->DuplicateNameError.Get()); + ImGui::ErrorMessage(I18N_TEXT("Duplicate name", L10N_DUPLICATE_NAME_ERROR)); break; case NameSelectionError::Empty: - ImGui::ErrorMessage(ls->EmptyNameError.Get()); + ImGui::ErrorMessage(I18N_TEXT("Name cannot be empty", L10N_EMPTY_NAME_ERROR)); break; } }; auto ShowNewKindErrors = [&]() -> void { if (mACNewKind == Template::InvalidKind) { - ImGui::ErrorMessage(ls->InvalidTemplateTypeError.Get()); + ImGui::ErrorMessage(I18N_TEXT("Invalid template type", L10N_TEMPLATE_INVALID_TYPE_ERROR)); } }; @@ -136,11 +134,11 @@ void TemplateAssetList::DisplayAssetCreator(ListState& state) ValidateNewName(); }; - if (ImGui::InputText(ls->Name.Get(), &mACNewName)) { + if (ImGui::InputText(I18N_TEXT("Name", L10N_NAME), &mACNewName)) { ValidateNewName(); } - if (ImGui::BeginCombo(ls->Type.Get(), Template::FormatKind(mACNewKind))) { + if (ImGui::BeginCombo(I18N_TEXT("Type", L10N_TYPE), Template::FormatKind(mACNewKind))) { for (int i = 0; i < Template::KindCount; ++i) { auto kind = static_cast(i); if (ImGui::Selectable(Template::FormatKind(kind), mACNewKind == kind)) { @@ -153,7 +151,7 @@ void TemplateAssetList::DisplayAssetCreator(ListState& state) ShowNewNameErrors(); ShowNewKindErrors(); - if (ImGui::Button(ls->Confirm.Get(), !IsInputValid())) { + if (ImGui::Button(I18N_TEXT("OK", L10N_CONFIRM), !IsInputValid())) { ImGui::CloseCurrentPopup(); Create(SavedAsset{ @@ -163,19 +161,17 @@ void TemplateAssetList::DisplayAssetCreator(ListState& state) ResetState(); } ImGui::SameLine(); - if (ImGui::Button(ls->Cancel.Get())) { + if (ImGui::Button(I18N_TEXT("Cancel", L10N_CANCEL))) { ImGui::CloseCurrentPopup(); } } void TemplateAssetList::SetupDetailsTable(const char* tableId) const { - auto ls = LocaleStrings::Instance.get(); - ImGui::BeginTable(tableId, 2, ImGuiTableFlags_Borders); - ImGui::TableSetupColumn(ls->Name.Get()); - ImGui::TableSetupColumn(ls->Type.Get()); + ImGui::TableSetupColumn(I18N_TEXT("Name", L10N_NAME)); + ImGui::TableSetupColumn(I18N_TEXT("Type", L10N_TYPE)); ImGui::TableHeadersRow(); } diff --git a/core/src/Model/Workflow/Workflow_Main.cpp b/core/src/Model/Workflow/Workflow_Main.cpp index a01ab7b..adf944e 100644 --- a/core/src/Model/Workflow/Workflow_Main.cpp +++ b/core/src/Model/Workflow/Workflow_Main.cpp @@ -2,9 +2,9 @@ #include "Model/GlobalStates.hpp" #include "Model/Project.hpp" -#include "UI/Localization.hpp" #include "UI/UI.hpp" #include "Utils/UUID.hpp" +#include "Utils/I18n.hpp" #include #include @@ -804,8 +804,6 @@ Workflow* WorkflowAssetList::LoadImpl(const SavedAsset& asset) const void WorkflowAssetList::DisplayAssetCreator(ListState& state) { - auto ls = LocaleStrings::Instance.get(); - auto ValidateNewName = [&]() -> void { if (mACNewName.empty()) { mACNewNameError = NameSelectionError::Empty; @@ -824,10 +822,10 @@ void WorkflowAssetList::DisplayAssetCreator(ListState& state) switch (mACNewNameError) { case NameSelectionError::None: break; case NameSelectionError::Duplicated: - ImGui::ErrorMessage(ls->DuplicateNameError.Get()); + ImGui::ErrorMessage(I18N_TEXT("Duplicate name", L10N_DUPLICATE_NAME_ERROR)); break; case NameSelectionError::Empty: - ImGui::ErrorMessage(ls->EmptyNameError.Get()); + ImGui::ErrorMessage(I18N_TEXT("Name cannot be empty", L10N_EMPTY_NAME_ERROR)); break; } }; @@ -841,13 +839,13 @@ void WorkflowAssetList::DisplayAssetCreator(ListState& state) ValidateNewName(); }; - if (ImGui::InputText(ls->Name.Get(), &mACNewName)) { + if (ImGui::InputText(I18N_TEXT("Name", L10N_NAME), &mACNewName)) { ValidateNewName(); } ShowNewNameErrors(); - if (ImGui::Button(ls->Confirm.Get(), !IsInputValid())) { + if (ImGui::Button(I18N_TEXT("OK", L10N_CONFIRM), !IsInputValid())) { ImGui::CloseCurrentPopup(); Create(SavedAsset{ @@ -856,18 +854,16 @@ void WorkflowAssetList::DisplayAssetCreator(ListState& state) ResetState(); } ImGui::SameLine(); - if (ImGui::Button(ls->Cancel.Get())) { + if (ImGui::Button(I18N_TEXT("Cancel", L10N_CANCEL))) { ImGui::CloseCurrentPopup(); } } void WorkflowAssetList::SetupDetailsTable(const char* tableId) const { - auto ls = LocaleStrings::Instance.get(); - ImGui::BeginTable(tableId, 1, ImGuiTableFlags_Borders); - ImGui::TableSetupColumn(ls->Name.Get()); + ImGui::TableSetupColumn(I18N_TEXT("Name", L10N_NAME)); ImGui::TableHeadersRow(); } -- cgit v1.2.3-70-g09d2