From f088658004beb83e73d3887ca5986b91f0f4e36b Mon Sep 17 00:00:00 2001 From: Leon Styhre <leon@leonstyhre.com> Date: Sat, 13 Jul 2024 22:14:37 +0200 Subject: [PATCH] Added localization support to parts of the application --- es-app/src/CollectionSystemsManager.cpp | 11 ++-- es-app/src/FileFilterIndex.cpp | 41 +++++++----- es-app/src/SystemData.cpp | 4 +- es-app/src/guis/GuiAlternativeEmulators.cpp | 2 +- .../src/guis/GuiCollectionSystemsOptions.cpp | 46 ++++++------- es-app/src/guis/GuiGamelistFilter.cpp | 34 ++++++---- es-app/src/guis/GuiGamelistOptions.cpp | 2 +- es-app/src/guis/GuiMediaViewerOptions.cpp | 25 +++---- es-app/src/guis/GuiScreensaverOptions.cpp | 65 ++++++++++--------- es-app/src/views/SystemView.cpp | 4 +- es-app/src/views/ViewController.cpp | 19 +++--- es-core/src/guis/GuiTextEditKeyboardPopup.cpp | 4 +- es-core/src/guis/GuiTextEditPopup.cpp | 6 +- 13 files changed, 144 insertions(+), 119 deletions(-) diff --git a/es-app/src/CollectionSystemsManager.cpp b/es-app/src/CollectionSystemsManager.cpp index f0d7437d3..62307936f 100644 --- a/es-app/src/CollectionSystemsManager.cpp +++ b/es-app/src/CollectionSystemsManager.cpp @@ -30,6 +30,7 @@ #include "UIModeController.h" #include "Window.h" #include "utils/FileSystemUtil.h" +#include "utils/LocalizationUtil.h" #include "utils/StringUtil.h" #include "utils/TimeUtil.h" #include "views/GamelistView.h" @@ -46,11 +47,11 @@ CollectionSystemsManager::CollectionSystemsManager() noexcept { // clang-format off CollectionSystemDecl systemDecls[] { - // Type Name Long name Theme folder isCustom - {AUTO_ALL_GAMES, "all", "all games", "auto-allgames", false}, - {AUTO_LAST_PLAYED, "recent", "last played", "auto-lastplayed", false}, - {AUTO_FAVORITES, "favorites", "favorites", "auto-favorites", false}, - {CUSTOM_COLLECTION, myCollectionsName, "collections", "custom-collections", true } + // Type Name Long name Theme folder isCustom + {AUTO_ALL_GAMES, "all", _("ALL GAMES"), "auto-allgames", false}, + {AUTO_LAST_PLAYED, "recent", _("LAST PLAYED"), "auto-lastplayed", false}, + {AUTO_FAVORITES, "favorites", _("FAVORITES"), "auto-favorites", false}, + {CUSTOM_COLLECTION, myCollectionsName, _("COLLECTIONS"), "custom-collections", true } }; // clang-format on diff --git a/es-app/src/FileFilterIndex.cpp b/es-app/src/FileFilterIndex.cpp index c14c65e8b..5431eb888 100644 --- a/es-app/src/FileFilterIndex.cpp +++ b/es-app/src/FileFilterIndex.cpp @@ -12,6 +12,7 @@ #include "Log.h" #include "Settings.h" #include "UIModeController.h" +#include "utils/LocalizationUtil.h" #include "utils/StringUtil.h" #include "views/ViewController.h" @@ -40,23 +41,29 @@ FileFilterIndex::FileFilterIndex() // clang-format off FilterDataDecl filterDecls[] = { //type //allKeys //filteredBy //filteredKeys //primaryKey //hasSecondaryKey //secondaryKey //menuLabel - {RATINGS_FILTER, &mRatingsIndexAllKeys, &mFilterByRatings, &mRatingsIndexFilteredKeys, "rating", false, "", "RATING"}, - {DEVELOPER_FILTER, &mDeveloperIndexAllKeys, &mFilterByDeveloper, &mDeveloperIndexFilteredKeys, "developer", false, "", "DEVELOPER"}, - {PUBLISHER_FILTER, &mPublisherIndexAllKeys, &mFilterByPublisher, &mPublisherIndexFilteredKeys, "publisher", false, "", "PUBLISHER"}, - {GENRE_FILTER, &mGenreIndexAllKeys, &mFilterByGenre, &mGenreIndexFilteredKeys, "genre", true, "genre", "GENRE"}, - {PLAYER_FILTER, &mPlayersIndexAllKeys, &mFilterByPlayers, &mPlayersIndexFilteredKeys, "players", false, "", "PLAYERS"}, - {FAVORITES_FILTER, &mFavoritesIndexAllKeys, &mFilterByFavorites, &mFavoritesIndexFilteredKeys, "favorite", false, "", "FAVORITE"}, - {COMPLETED_FILTER, &mCompletedIndexAllKeys, &mFilterByCompleted, &mCompletedIndexFilteredKeys, "completed", false, "", "COMPLETED"}, - {KIDGAME_FILTER, &mKidGameIndexAllKeys, &mFilterByKidGame, &mKidGameIndexFilteredKeys, "kidgame", false, "", "KIDGAME"}, - {HIDDEN_FILTER, &mHiddenIndexAllKeys, &mFilterByHidden, &mHiddenIndexFilteredKeys, "hidden", false, "", "HIDDEN"}, - {BROKEN_FILTER, &mBrokenIndexAllKeys, &mFilterByBroken, &mBrokenIndexFilteredKeys, "broken", false, "", "BROKEN"}, - {CONTROLLER_FILTER, &mControllerIndexAllKeys, &mFilterByController, &mControllerIndexFilteredKeys, "controller", false, "", "CONTROLLER"}, - {ALTEMULATOR_FILTER, &mAltemulatorIndexAllKeys, &mFilterByAltemulator, &mAltemulatorIndexFilteredKeys, "altemulator", false, "", "ALTERNATIVE EMULATOR"} + {RATINGS_FILTER, &mRatingsIndexAllKeys, &mFilterByRatings, &mRatingsIndexFilteredKeys, "rating", false, "", _("RATING")}, + {DEVELOPER_FILTER, &mDeveloperIndexAllKeys, &mFilterByDeveloper, &mDeveloperIndexFilteredKeys, "developer", false, "", _("DEVELOPER")}, + {PUBLISHER_FILTER, &mPublisherIndexAllKeys, &mFilterByPublisher, &mPublisherIndexFilteredKeys, "publisher", false, "", _("PUBLISHER")}, + {GENRE_FILTER, &mGenreIndexAllKeys, &mFilterByGenre, &mGenreIndexFilteredKeys, "genre", true, "genre", _("GENRE")}, + {PLAYER_FILTER, &mPlayersIndexAllKeys, &mFilterByPlayers, &mPlayersIndexFilteredKeys, "players", false, "", _("PLAYERS")}, + {FAVORITES_FILTER, &mFavoritesIndexAllKeys, &mFilterByFavorites, &mFavoritesIndexFilteredKeys, "favorite", false, "", _("FAVORITE")}, + {COMPLETED_FILTER, &mCompletedIndexAllKeys, &mFilterByCompleted, &mCompletedIndexFilteredKeys, "completed", false, "", _("COMPLETED")}, + {KIDGAME_FILTER, &mKidGameIndexAllKeys, &mFilterByKidGame, &mKidGameIndexFilteredKeys, "kidgame", false, "", _("KIDGAME")}, + {HIDDEN_FILTER, &mHiddenIndexAllKeys, &mFilterByHidden, &mHiddenIndexFilteredKeys, "hidden", false, "", _("HIDDEN")}, + {BROKEN_FILTER, &mBrokenIndexAllKeys, &mFilterByBroken, &mBrokenIndexFilteredKeys, "broken", false, "", _("BROKEN")}, + {CONTROLLER_FILTER, &mControllerIndexAllKeys, &mFilterByController, &mControllerIndexFilteredKeys, "controller", false, "", _("CONTROLLER")}, + {ALTEMULATOR_FILTER, &mAltemulatorIndexAllKeys, &mFilterByAltemulator, &mAltemulatorIndexFilteredKeys, "altemulator", false, "", _("ALTERNATIVE EMULATOR")} }; // clang-format on filterDataDecl = std::vector<FilterDataDecl>( filterDecls, filterDecls + sizeof(filterDecls) / sizeof(filterDecls[0])); + +#if defined(GETTEXT_DUMMY_ENTRIES) + // This is just to get gettext msgid entries added to the PO message catalog files. + _("FALSE"); + _("TRUE"); +#endif } FileFilterIndex::~FileFilterIndex() @@ -148,10 +155,10 @@ std::string FileFilterIndex::getIndexableKey(FileData* game, ratingNumber = 0; if (ratingNumber == 5) - key = "5 STARS"; + key = "5"; else key = std::to_string(ratingNumber) + " - " + - std::to_string(ratingNumber) + ".5 STARS"; + std::to_string(ratingNumber) + ".5"; } catch (int e) { LOG(LogError) << "Error parsing Rating (invalid value, exception nr.): " @@ -239,10 +246,10 @@ std::string FileFilterIndex::getIndexableKey(FileData* game, if ((type == GENRE_FILTER || type == PLAYER_FILTER || type == DEVELOPER_FILTER || type == PUBLISHER_FILTER) && Utils::String::toUpper(key) == UNKNOWN_LABEL) - key = ViewController::CROSSEDCIRCLE_CHAR + " UNKNOWN"; + key = ViewController::CROSSEDCIRCLE_CHAR + " " + _("UNKNOWN"); else if ((type == CONTROLLER_FILTER || type == ALTEMULATOR_FILTER) && key.empty()) - key = ViewController::CROSSEDCIRCLE_CHAR + " NONE SELECTED"; - else if (key.empty() || (type == RATINGS_FILTER && key == "0 STARS")) + key = ViewController::CROSSEDCIRCLE_CHAR + " " + _("NONE SELECTED"); + else if (key.empty() || (type == RATINGS_FILTER && key == "0")) key = UNKNOWN_LABEL; return key; diff --git a/es-app/src/SystemData.cpp b/es-app/src/SystemData.cpp index 1e01e63e7..e926b9a65 100644 --- a/es-app/src/SystemData.cpp +++ b/es-app/src/SystemData.cpp @@ -22,6 +22,7 @@ #include "UIModeController.h" #include "resources/ResourceManager.h" #include "utils/FileSystemUtil.h" +#include "utils/LocalizationUtil.h" #include "utils/StringUtil.h" #include "views/GamelistView.h" #include "views/ViewController.h" @@ -260,7 +261,8 @@ SystemData::SystemData(const std::string& name, } // This placeholder can be used later in the gamelist view. - mPlaceholder = new FileData(PLACEHOLDER, "<No Entries Found>", getSystemEnvData(), this); + mPlaceholder = + new FileData(PLACEHOLDER, "<" + _("No Entries Found") + ">", getSystemEnvData(), this); setIsGameSystemStatus(); loadTheme(ThemeTriggers::TriggerType::NONE); diff --git a/es-app/src/guis/GuiAlternativeEmulators.cpp b/es-app/src/guis/GuiAlternativeEmulators.cpp index bb2851868..e738f1096 100644 --- a/es-app/src/guis/GuiAlternativeEmulators.cpp +++ b/es-app/src/guis/GuiAlternativeEmulators.cpp @@ -65,7 +65,7 @@ GuiAlternativeEmulators::GuiAlternativeEmulators() bool invalidEntry {false}; if (label.empty()) { - label = ViewController::EXCLAMATION_CHAR + " INVALID ENTRY"; + label = ViewController::EXCLAMATION_CHAR + " " + _("INVALID ENTRY"); invalidEntry = true; } diff --git a/es-app/src/guis/GuiCollectionSystemsOptions.cpp b/es-app/src/guis/GuiCollectionSystemsOptions.cpp index 6b21c2a24..2cf127307 100644 --- a/es-app/src/guis/GuiCollectionSystemsOptions.cpp +++ b/es-app/src/guis/GuiCollectionSystemsOptions.cpp @@ -16,6 +16,7 @@ #include "guis/GuiSettings.h" #include "guis/GuiTextEditKeyboardPopup.h" #include "guis/GuiTextEditPopup.h" +#include "utils/LocalizationUtil.h" #include "utils/StringUtil.h" #include "views/ViewController.h" @@ -46,7 +47,7 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) // Automatic collections. mCollectionSystemsAuto = std::make_shared<OptionListComponent<std::string>>( - getHelpStyle(), "SELECT COLLECTIONS", true); + getHelpStyle(), _("SELECT COLLECTIONS"), true); std::map<std::string, CollectionSystemData, StringComparator> autoSystems { CollectionSystemsManager::getInstance()->getAutoCollectionSystems()}; // Add automatic systems. @@ -55,7 +56,7 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) it != autoSystems.cend(); ++it) mCollectionSystemsAuto->add(it->second.decl.fullName, it->second.decl.name, it->second.isEnabled); - addWithLabel("AUTOMATIC GAME COLLECTIONS", mCollectionSystemsAuto); + addWithLabel(_("AUTOMATIC GAME COLLECTIONS"), mCollectionSystemsAuto); addSaveFunc([this, autoSystems] { std::string autoSystemsSelected {Utils::String::vectorToDelimitedString( mCollectionSystemsAuto->getSelectedObjects(), ",", true)}; @@ -96,7 +97,7 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) // Custom collections. mCollectionSystemsCustom = std::make_shared<OptionListComponent<std::string>>( - getHelpStyle(), "SELECT COLLECTIONS", true); + getHelpStyle(), _("SELECT COLLECTIONS"), true); std::map<std::string, CollectionSystemData, StringComparator> customSystems { CollectionSystemsManager::getInstance()->getCustomCollectionSystems()}; // Add custom systems. @@ -106,7 +107,7 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) mCollectionSystemsCustom->add(it->second.decl.fullName, it->second.decl.name, it->second.isEnabled); - addWithLabel("CUSTOM GAME COLLECTIONS", mCollectionSystemsCustom); + addWithLabel(_("CUSTOM GAME COLLECTIONS"), mCollectionSystemsCustom); addSaveFunc([this, customSystems] { if (!mDeletedCustomCollection) { std::string customSystemsSelected {Utils::String::vectorToDelimitedString( @@ -166,7 +167,7 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) if (unusedFolders.size() > 0) { ComponentListRow row; auto themeCollection = - std::make_shared<TextComponent>("CREATE NEW CUSTOM COLLECTION FROM THEME", + std::make_shared<TextComponent>(_("CREATE NEW CUSTOM COLLECTION FROM THEME"), Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); auto bracketThemeCollection = std::make_shared<ImageComponent>(); bracketThemeCollection->setResize( @@ -176,10 +177,10 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) row.addElement(themeCollection, true); row.addElement(bracketThemeCollection, false); row.makeAcceptInputHandler([this, unusedFolders] { - auto ss = new GuiSettings("SELECT THEME FOLDER"); + auto ss = new GuiSettings(_("SELECT THEME FOLDER")); std::shared_ptr<OptionListComponent<std::string>> folderThemes { std::make_shared<OptionListComponent<std::string>>(getHelpStyle(), - "SELECT THEME FOLDER", true)}; + _("SELECT THEME FOLDER"), true)}; // Add custom systems. for (auto it = unusedFolders.cbegin(); it != unusedFolders.cend(); ++it) { ComponentListRow row; @@ -201,7 +202,7 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) // Create new custom collection. ComponentListRow row; auto newCollection = std::make_shared<TextComponent>( - "CREATE NEW CUSTOM COLLECTION", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); + _("CREATE NEW CUSTOM COLLECTION"), Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); auto bracketNewCollection = std::make_shared<ImageComponent>(); bracketNewCollection->setResize( glm::vec2 {0.0f, Font::get(FONT_SIZE_MEDIUM)->getLetterHeight()}); @@ -224,15 +225,15 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) const float verticalPosition { mRenderer->getIsVerticalOrientation() ? getMenu().getPosition().y : 0.0f}; mWindow->pushGui(new GuiTextEditKeyboardPopup( - getHelpStyle(), verticalPosition, "New Collection Name", "", createCollectionCall, - false, "CREATE", "CREATE COLLECTION?")); + getHelpStyle(), verticalPosition, _("NEW COLLECTION NAME"), "", + createCollectionCall, false, _("CREATE"), _("CREATE COLLECTION?"))); }); } else { row.makeAcceptInputHandler([this, createCollectionCall] { - mWindow->pushGui(new GuiTextEditPopup(getHelpStyle(), "New Collection Name", "", - createCollectionCall, false, "CREATE", - "CREATE COLLECTION?")); + mWindow->pushGui(new GuiTextEditPopup(getHelpStyle(), _("NEW COLLECTION NAME"), "", + createCollectionCall, false, _("CREATE"), + _("CREATE COLLECTION?"))); }); } addRow(row); @@ -240,7 +241,7 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) // Delete custom collection. row.elements.clear(); auto deleteCollection = std::make_shared<TextComponent>( - "DELETE CUSTOM COLLECTION", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); + _("DELETE CUSTOM COLLECTION"), Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); auto bracketDeleteCollection = std::make_shared<ImageComponent>(); bracketDeleteCollection->setResize( glm::vec2 {0.0f, Font::get(FONT_SIZE_MEDIUM)->getLetterHeight()}); @@ -249,7 +250,7 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) row.addElement(deleteCollection, true); row.addElement(bracketDeleteCollection, false); row.makeAcceptInputHandler([this, customSystems] { - auto ss = new GuiSettings("COLLECTION TO DELETE"); + auto ss = new GuiSettings(_("COLLECTION TO DELETE")); std::shared_ptr<OptionListComponent<std::string>> customCollections { std::make_shared<OptionListComponent<std::string>>(getHelpStyle(), "", true)}; for (std::map<std::string, CollectionSystemData, StringComparator>::const_iterator it = @@ -317,17 +318,18 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) // Custom collections grouping. auto collectionCustomGrouping = std::make_shared<OptionListComponent<std::string>>( - getHelpStyle(), "GROUP CUSTOM COLLECTIONS", false); + getHelpStyle(), _("GROUP CUSTOM COLLECTIONS"), false); const std::string& selectedCustomGrouping { Settings::getInstance()->getString("CollectionCustomGrouping")}; - collectionCustomGrouping->add("IF UNTHEMED", "unthemed", selectedCustomGrouping == "unthemed"); - collectionCustomGrouping->add("ALWAYS", "always", selectedCustomGrouping == "always"); - collectionCustomGrouping->add("NEVER", "never", selectedCustomGrouping == "never"); + collectionCustomGrouping->add(_("IF UNTHEMED"), "unthemed", + selectedCustomGrouping == "unthemed"); + collectionCustomGrouping->add(_("ALWAYS"), "always", selectedCustomGrouping == "always"); + collectionCustomGrouping->add(_("NEVER"), "never", selectedCustomGrouping == "never"); // If there are no objects returned, then there must be a manually modified entry in the // configuration file. Simply set custom collections grouping to "unthemed" in this case. if (collectionCustomGrouping->getSelectedObjects().size() == 0) collectionCustomGrouping->selectEntry(0); - addWithLabel("GROUP CUSTOM COLLECTIONS", collectionCustomGrouping); + addWithLabel(_("GROUP CUSTOM COLLECTIONS"), collectionCustomGrouping); addSaveFunc([this, collectionCustomGrouping] { if (collectionCustomGrouping->getSelected() != Settings::getInstance()->getString("CollectionCustomGrouping")) { @@ -348,7 +350,7 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) // Sort favorites on top for custom collections. auto fav_first_custom = std::make_shared<SwitchComponent>(); fav_first_custom->setState(Settings::getInstance()->getBool("FavFirstCustom")); - addWithLabel("SORT FAVORITES ON TOP FOR CUSTOM COLLECTIONS", fav_first_custom); + addWithLabel(_("SORT FAVORITES ON TOP FOR CUSTOM COLLECTIONS"), fav_first_custom); addSaveFunc([this, fav_first_custom] { if (fav_first_custom->getState() != Settings::getInstance()->getBool("FavFirstCustom")) { Settings::getInstance()->setBool("FavFirstCustom", fav_first_custom->getState()); @@ -363,7 +365,7 @@ GuiCollectionSystemsOptions::GuiCollectionSystemsOptions(std::string title) // Display star markings for custom collections. auto fav_star_custom = std::make_shared<SwitchComponent>(); fav_star_custom->setState(Settings::getInstance()->getBool("FavStarCustom")); - addWithLabel("DISPLAY STAR MARKINGS FOR CUSTOM COLLECTIONS", fav_star_custom); + addWithLabel(_("DISPLAY STAR MARKINGS FOR CUSTOM COLLECTIONS"), fav_star_custom); addSaveFunc([this, fav_star_custom] { if (fav_star_custom->getState() != Settings::getInstance()->getBool("FavStarCustom")) { Settings::getInstance()->setBool("FavStarCustom", fav_star_custom->getState()); diff --git a/es-app/src/guis/GuiGamelistFilter.cpp b/es-app/src/guis/GuiGamelistFilter.cpp index 829641ce8..cb1684806 100644 --- a/es-app/src/guis/GuiGamelistFilter.cpp +++ b/es-app/src/guis/GuiGamelistFilter.cpp @@ -21,7 +21,7 @@ GuiGamelistFilter::GuiGamelistFilter(SystemData* system, std::function<void(bool)> filterChangedCallback) - : mMenu {"FILTER GAMELIST"} + : mMenu {_("FILTER GAMELIST")} , mSystem {system} , mFiltersChangedCallback {filterChangedCallback} , mFiltersChanged {false} @@ -40,8 +40,8 @@ void GuiGamelistFilter::initializeMenu() // Show filtered menu. row.elements.clear(); - row.addElement(std::make_shared<TextComponent>("RESET ALL FILTERS", Font::get(FONT_SIZE_MEDIUM), - mMenuColorPrimary), + row.addElement(std::make_shared<TextComponent>(_("RESET ALL FILTERS"), + Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary), true); row.makeAcceptInputHandler(std::bind(&GuiGamelistFilter::resetAllFilters, this)); mMenu.addRow(row); @@ -49,7 +49,7 @@ void GuiGamelistFilter::initializeMenu() addFiltersToMenu(); - mMenu.addButton("BACK", "back", std::bind(&GuiGamelistFilter::applyFilters, this)); + mMenu.addButton(_("BACK"), _("back"), std::bind(&GuiGamelistFilter::applyFilters, this)); mMenu.setPosition((Renderer::getScreenWidth() - mMenu.getSize().x) / 2.0f, Renderer::getScreenHeight() * 0.13f); @@ -88,7 +88,7 @@ void GuiGamelistFilter::addFiltersToMenu() ComponentListRow row; auto lbl = std::make_shared<TextComponent>( - Utils::String::toUpper(ViewController::KEYBOARD_CHAR + " GAME NAME"), + Utils::String::toUpper(ViewController::KEYBOARD_CHAR + " " + _("GAME NAME")), Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); mTextFilterField = std::make_shared<TextComponent>("", Font::get(FONT_SIZE_MEDIUM), @@ -123,15 +123,15 @@ void GuiGamelistFilter::addFiltersToMenu() const float verticalPosition { Renderer::getIsVerticalOrientation() ? mMenu.getPosition().y : 0.0f}; mWindow->pushGui(new GuiTextEditKeyboardPopup( - getHelpStyle(), verticalPosition, "GAME NAME", mTextFilterField->getValue(), - updateVal, false, "OK", "APPLY CHANGES?")); + getHelpStyle(), verticalPosition, _("GAME NAME"), mTextFilterField->getValue(), + updateVal, false, _("OK"), _("APPLY CHANGES?"))); }); } else { row.makeAcceptInputHandler([this, updateVal] { - mWindow->pushGui(new GuiTextEditPopup(getHelpStyle(), "GAME NAME", + mWindow->pushGui(new GuiTextEditPopup(getHelpStyle(), _("GAME NAME"), mTextFilterField->getValue(), updateVal, false, - "OK", "APPLY CHANGES?")); + _("OK"), _("APPLY CHANGES?"))); }); } @@ -181,7 +181,7 @@ void GuiGamelistFilter::addFiltersToMenu() if (allKeys->size() == 1 || allKeys->empty()) { optionList->setEnabled(false); optionList->setOpacity(DISABLED_OPACITY); - optionList->setOverrideMultiText("NOTHING TO FILTER"); + optionList->setOverrideMultiText(_("NOTHING TO FILTER")); } if (type == CONTROLLER_FILTER) { @@ -195,9 +195,17 @@ void GuiGamelistFilter::addFiltersToMenu() } } else { - for (auto it : *allKeys) - optionList->add(it.first, it.first, - mFilterIndex->isKeyBeingFilteredBy(it.first, type)); + if (type == FAVORITES_FILTER || type == COMPLETED_FILTER || type == KIDGAME_FILTER || + type == HIDDEN_FILTER || type == BROKEN_FILTER) { + for (auto it : *allKeys) + optionList->add(_(it.first.c_str()), it.first, + mFilterIndex->isKeyBeingFilteredBy(it.first, type)); + } + else { + for (auto it : *allKeys) + optionList->add(it.first, it.first, + mFilterIndex->isKeyBeingFilteredBy(it.first, type)); + } } if (allKeys->size() == 0) diff --git a/es-app/src/guis/GuiGamelistOptions.cpp b/es-app/src/guis/GuiGamelistOptions.cpp index 6f53b02e5..6831f1ff0 100644 --- a/es-app/src/guis/GuiGamelistOptions.cpp +++ b/es-app/src/guis/GuiGamelistOptions.cpp @@ -239,7 +239,7 @@ GuiGamelistOptions::GuiGamelistOptions(SystemData* system) if (file->getType() == FOLDER && file->metadata.get("folderlink") != "") { row.elements.clear(); - row.addElement(std::make_shared<TextComponent>("ENTER FOLDER (OVERRIDE FOLDER LINK)", + row.addElement(std::make_shared<TextComponent>(_("ENTER FOLDER (OVERRIDE FOLDER LINK)"), Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary), true); diff --git a/es-app/src/guis/GuiMediaViewerOptions.cpp b/es-app/src/guis/GuiMediaViewerOptions.cpp index a82be8d86..d3f89a70b 100644 --- a/es-app/src/guis/GuiMediaViewerOptions.cpp +++ b/es-app/src/guis/GuiMediaViewerOptions.cpp @@ -12,23 +12,24 @@ #include "Settings.h" #include "components/OptionListComponent.h" #include "components/SwitchComponent.h" +#include "utils/LocalizationUtil.h" GuiMediaViewerOptions::GuiMediaViewerOptions(const std::string& title) : GuiSettings {title} { // Help prompts. - auto mediaViewerHelpPrompts = - std::make_shared<OptionListComponent<std::string>>(getHelpStyle(), "HELP PROMPTS", false); + auto mediaViewerHelpPrompts = std::make_shared<OptionListComponent<std::string>>( + getHelpStyle(), _("HELP PROMPTS"), false); std::string selectedHelpPrompts {Settings::getInstance()->getString("MediaViewerHelpPrompts")}; - mediaViewerHelpPrompts->add("TOP", "top", selectedHelpPrompts == "top"); - mediaViewerHelpPrompts->add("BOTTOM", "bottom", selectedHelpPrompts == "bottom"); - mediaViewerHelpPrompts->add("DISABLED", "disabled", selectedHelpPrompts == "disabled"); + mediaViewerHelpPrompts->add(_("TOP"), "top", selectedHelpPrompts == "top"); + mediaViewerHelpPrompts->add(_("BOTTOM"), "bottom", selectedHelpPrompts == "bottom"); + mediaViewerHelpPrompts->add(_("DISABLED"), "disabled", selectedHelpPrompts == "disabled"); // If there are no objects returned, then there must be a manually modified entry in the // configuration file. Simply set the help prompts to "top" in this case. if (mediaViewerHelpPrompts->getSelectedObjects().size() == 0) mediaViewerHelpPrompts->selectEntry(0); - addWithLabel("HELP PROMPTS", mediaViewerHelpPrompts); + addWithLabel(_("HELP PROMPTS"), mediaViewerHelpPrompts); addSaveFunc([mediaViewerHelpPrompts, this] { if (mediaViewerHelpPrompts->getSelected() != Settings::getInstance()->getString("MediaViewerHelpPrompts")) { @@ -41,7 +42,7 @@ GuiMediaViewerOptions::GuiMediaViewerOptions(const std::string& title) // Display media types. auto mediaViewerShowTypes = std::make_shared<SwitchComponent>(); mediaViewerShowTypes->setState(Settings::getInstance()->getBool("MediaViewerShowTypes")); - addWithLabel("DISPLAY MEDIA TYPES", mediaViewerShowTypes); + addWithLabel(_("DISPLAY MEDIA TYPES"), mediaViewerShowTypes); addSaveFunc([mediaViewerShowTypes, this] { if (mediaViewerShowTypes->getState() != Settings::getInstance()->getBool("MediaViewerShowTypes")) { @@ -54,7 +55,7 @@ GuiMediaViewerOptions::GuiMediaViewerOptions(const std::string& title) // Keep videos running when viewing images. auto keepVideoRunning = std::make_shared<SwitchComponent>(); keepVideoRunning->setState(Settings::getInstance()->getBool("MediaViewerKeepVideoRunning")); - addWithLabel("KEEP VIDEOS RUNNING WHEN VIEWING IMAGES", keepVideoRunning); + addWithLabel(_("KEEP VIDEOS RUNNING WHEN VIEWING IMAGES"), keepVideoRunning); addSaveFunc([keepVideoRunning, this] { if (keepVideoRunning->getState() != Settings::getInstance()->getBool("MediaViewerKeepVideoRunning")) { @@ -67,7 +68,7 @@ GuiMediaViewerOptions::GuiMediaViewerOptions(const std::string& title) // Stretch videos to screen resolution. auto stretchVideos = std::make_shared<SwitchComponent>(); stretchVideos->setState(Settings::getInstance()->getBool("MediaViewerStretchVideos")); - addWithLabel("STRETCH VIDEOS TO SCREEN RESOLUTION", stretchVideos); + addWithLabel(_("STRETCH VIDEOS TO SCREEN RESOLUTION"), stretchVideos); addSaveFunc([stretchVideos, this] { if (stretchVideos->getState() != Settings::getInstance()->getBool("MediaViewerStretchVideos")) { @@ -79,7 +80,7 @@ GuiMediaViewerOptions::GuiMediaViewerOptions(const std::string& title) // Render scanlines for videos using a shader. auto videoScanlines = std::make_shared<SwitchComponent>(); videoScanlines->setState(Settings::getInstance()->getBool("MediaViewerVideoScanlines")); - addWithLabel("RENDER SCANLINES FOR VIDEOS", videoScanlines); + addWithLabel(_("RENDER SCANLINES FOR VIDEOS"), videoScanlines); addSaveFunc([videoScanlines, this] { if (videoScanlines->getState() != Settings::getInstance()->getBool("MediaViewerVideoScanlines")) { @@ -92,7 +93,7 @@ GuiMediaViewerOptions::GuiMediaViewerOptions(const std::string& title) // Render blur for videos using a shader. auto videoBlur = std::make_shared<SwitchComponent>(); videoBlur->setState(Settings::getInstance()->getBool("MediaViewerVideoBlur")); - addWithLabel("RENDER BLUR FOR VIDEOS", videoBlur); + addWithLabel(_("RENDER BLUR FOR VIDEOS"), videoBlur); addSaveFunc([videoBlur, this] { if (videoBlur->getState() != Settings::getInstance()->getBool("MediaViewerVideoBlur")) { Settings::getInstance()->setBool("MediaViewerVideoBlur", videoBlur->getState()); @@ -104,7 +105,7 @@ GuiMediaViewerOptions::GuiMediaViewerOptions(const std::string& title) auto screenshotScanlines = std::make_shared<SwitchComponent>(); screenshotScanlines->setState( Settings::getInstance()->getBool("MediaViewerScreenshotScanlines")); - addWithLabel("RENDER SCANLINES FOR SCREENSHOTS AND TITLES", screenshotScanlines); + addWithLabel(_("RENDER SCANLINES FOR SCREENSHOTS AND TITLES"), screenshotScanlines); addSaveFunc([screenshotScanlines, this] { if (screenshotScanlines->getState() != Settings::getInstance()->getBool("MediaViewerScreenshotScanlines")) { diff --git a/es-app/src/guis/GuiScreensaverOptions.cpp b/es-app/src/guis/GuiScreensaverOptions.cpp index fd883ff28..ac3863796 100644 --- a/es-app/src/guis/GuiScreensaverOptions.cpp +++ b/es-app/src/guis/GuiScreensaverOptions.cpp @@ -17,6 +17,7 @@ #include "guis/GuiMsgBox.h" #include "guis/GuiTextEditKeyboardPopup.h" #include "guis/GuiTextEditPopup.h" +#include "utils/LocalizationUtil.h" GuiScreensaverOptions::GuiScreensaverOptions(const std::string& title) : GuiSettings {title} @@ -25,7 +26,7 @@ GuiScreensaverOptions::GuiScreensaverOptions(const std::string& title) auto screensaverTimer = std::make_shared<SliderComponent>(0.0f, 30.0f, 1.0f, "m"); screensaverTimer->setValue( static_cast<float>(Settings::getInstance()->getInt("ScreensaverTimer") / (1000 * 60))); - addWithLabel("START SCREENSAVER AFTER (MINUTES)", screensaverTimer); + addWithLabel(_("START SCREENSAVER AFTER (MINUTES)"), screensaverTimer); addSaveFunc([screensaverTimer, this] { if (static_cast<int>(std::round(screensaverTimer->getValue()) * (1000 * 60)) != Settings::getInstance()->getInt("ScreensaverTimer")) { @@ -38,17 +39,17 @@ GuiScreensaverOptions::GuiScreensaverOptions(const std::string& title) // Screensaver type. auto screensaverType = std::make_shared<OptionListComponent<std::string>>( - getHelpStyle(), "SCREENSAVER TYPE", false); + getHelpStyle(), _("SCREENSAVER TYPE"), false); std::string selectedScreensaver {Settings::getInstance()->getString("ScreensaverType")}; - screensaverType->add("DIM", "dim", selectedScreensaver == "dim"); - screensaverType->add("BLACK", "black", selectedScreensaver == "black"); - screensaverType->add("SLIDESHOW", "slideshow", selectedScreensaver == "slideshow"); - screensaverType->add("VIDEO", "video", selectedScreensaver == "video"); + screensaverType->add(_("DIM"), "dim", selectedScreensaver == "dim"); + screensaverType->add(_("BLACK"), "black", selectedScreensaver == "black"); + screensaverType->add(_("SLIDESHOW"), "slideshow", selectedScreensaver == "slideshow"); + screensaverType->add(_("VIDEO"), "video", selectedScreensaver == "video"); // If there are no objects returned, then there must be a manually modified entry in the // configuration file. Simply set the screensaver type to "dim" in this case. if (screensaverType->getSelectedObjects().size() == 0) screensaverType->selectEntry(0); - addWithLabel("SCREENSAVER TYPE", screensaverType); + addWithLabel(_("SCREENSAVER TYPE"), screensaverType); addSaveFunc([screensaverType, this] { if (screensaverType->getSelected() != Settings::getInstance()->getString("ScreensaverType")) { @@ -60,7 +61,7 @@ GuiScreensaverOptions::GuiScreensaverOptions(const std::string& title) // Whether to enable screensaver controls. auto screensaverControls = std::make_shared<SwitchComponent>(); screensaverControls->setState(Settings::getInstance()->getBool("ScreensaverControls")); - addWithLabel("ENABLE SCREENSAVER CONTROLS", screensaverControls); + addWithLabel(_("ENABLE SCREENSAVER CONTROLS"), screensaverControls); addSaveFunc([screensaverControls, this] { if (screensaverControls->getState() != Settings::getInstance()->getBool("ScreensaverControls")) { @@ -73,7 +74,7 @@ GuiScreensaverOptions::GuiScreensaverOptions(const std::string& title) // Show filtered menu. ComponentListRow row; row.elements.clear(); - row.addElement(std::make_shared<TextComponent>("SLIDESHOW SCREENSAVER SETTINGS", + row.addElement(std::make_shared<TextComponent>(_("SLIDESHOW SCREENSAVER SETTINGS"), Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary), true); row.addElement(getMenu().makeArrow(), false); @@ -82,7 +83,7 @@ GuiScreensaverOptions::GuiScreensaverOptions(const std::string& title) addRow(row); row.elements.clear(); - row.addElement(std::make_shared<TextComponent>("VIDEO SCREENSAVER SETTINGS", + row.addElement(std::make_shared<TextComponent>(_("VIDEO SCREENSAVER SETTINGS"), Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary), true); row.addElement(getMenu().makeArrow(), false); @@ -95,13 +96,13 @@ GuiScreensaverOptions::GuiScreensaverOptions(const std::string& title) void GuiScreensaverOptions::openSlideshowScreensaverOptions() { - auto s = new GuiSettings("SLIDESHOW SCREENSAVER"); + auto s = new GuiSettings(_("SLIDESHOW SCREENSAVER")); // Timer for swapping images (in seconds). auto screensaverSwapImageTimeout = std::make_shared<SliderComponent>(2.0f, 120.0f, 2.0f, "s"); screensaverSwapImageTimeout->setValue(static_cast<float>( Settings::getInstance()->getInt("ScreensaverSwapImageTimeout") / (1000))); - s->addWithLabel("SWAP IMAGES AFTER (SECONDS)", screensaverSwapImageTimeout); + s->addWithLabel(_("SWAP IMAGES AFTER (SECONDS)"), screensaverSwapImageTimeout); s->addSaveFunc([screensaverSwapImageTimeout, s] { if (screensaverSwapImageTimeout->getValue() != static_cast<float>(Settings::getInstance()->getInt("ScreensaverSwapImageTimeout") / @@ -117,7 +118,7 @@ void GuiScreensaverOptions::openSlideshowScreensaverOptions() auto screensaverSlideshowOnlyFavorites = std::make_shared<SwitchComponent>(); screensaverSlideshowOnlyFavorites->setState( Settings::getInstance()->getBool("ScreensaverSlideshowOnlyFavorites")); - s->addWithLabel("ONLY INCLUDE FAVORITE GAMES", screensaverSlideshowOnlyFavorites); + s->addWithLabel(_("ONLY INCLUDE FAVORITE GAMES"), screensaverSlideshowOnlyFavorites); s->addSaveFunc([screensaverSlideshowOnlyFavorites, s] { if (screensaverSlideshowOnlyFavorites->getState() != Settings::getInstance()->getBool("ScreensaverSlideshowOnlyFavorites")) { @@ -131,7 +132,7 @@ void GuiScreensaverOptions::openSlideshowScreensaverOptions() auto screensaverStretchImages = std::make_shared<SwitchComponent>(); screensaverStretchImages->setState( Settings::getInstance()->getBool("ScreensaverStretchImages")); - s->addWithLabel("STRETCH IMAGES TO SCREEN RESOLUTION", screensaverStretchImages); + s->addWithLabel(_("STRETCH IMAGES TO SCREEN RESOLUTION"), screensaverStretchImages); s->addSaveFunc([screensaverStretchImages, s] { if (screensaverStretchImages->getState() != Settings::getInstance()->getBool("ScreensaverStretchImages")) { @@ -145,7 +146,7 @@ void GuiScreensaverOptions::openSlideshowScreensaverOptions() auto screensaverSlideshowGameInfo = std::make_shared<SwitchComponent>(); screensaverSlideshowGameInfo->setState( Settings::getInstance()->getBool("ScreensaverSlideshowGameInfo")); - s->addWithLabel("DISPLAY GAME INFO OVERLAY", screensaverSlideshowGameInfo); + s->addWithLabel(_("DISPLAY GAME INFO OVERLAY"), screensaverSlideshowGameInfo); s->addSaveFunc([screensaverSlideshowGameInfo, s] { if (screensaverSlideshowGameInfo->getState() != Settings::getInstance()->getBool("ScreensaverSlideshowGameInfo")) { @@ -159,7 +160,7 @@ void GuiScreensaverOptions::openSlideshowScreensaverOptions() auto screensaverSlideshowScanlines = std::make_shared<SwitchComponent>(); screensaverSlideshowScanlines->setState( Settings::getInstance()->getBool("ScreensaverSlideshowScanlines")); - s->addWithLabel("RENDER SCANLINES", screensaverSlideshowScanlines); + s->addWithLabel(_("RENDER SCANLINES"), screensaverSlideshowScanlines); s->addSaveFunc([screensaverSlideshowScanlines, s] { if (screensaverSlideshowScanlines->getState() != Settings::getInstance()->getBool("ScreensaverSlideshowScanlines")) { @@ -173,7 +174,7 @@ void GuiScreensaverOptions::openSlideshowScreensaverOptions() auto screensaverSlideshowCustomImages = std::make_shared<SwitchComponent>(); screensaverSlideshowCustomImages->setState( Settings::getInstance()->getBool("ScreensaverSlideshowCustomImages")); - s->addWithLabel("USE CUSTOM IMAGES", screensaverSlideshowCustomImages); + s->addWithLabel(_("USE CUSTOM IMAGES"), screensaverSlideshowCustomImages); s->addSaveFunc([screensaverSlideshowCustomImages, s] { if (screensaverSlideshowCustomImages->getState() != Settings::getInstance()->getBool("ScreensaverSlideshowCustomImages")) { @@ -187,7 +188,7 @@ void GuiScreensaverOptions::openSlideshowScreensaverOptions() auto screensaverSlideshowRecurse = std::make_shared<SwitchComponent>(); screensaverSlideshowRecurse->setState( Settings::getInstance()->getBool("ScreensaverSlideshowRecurse")); - s->addWithLabel("CUSTOM IMAGE DIRECTORY RECURSIVE SEARCH", screensaverSlideshowRecurse); + s->addWithLabel(_("CUSTOM IMAGE DIRECTORY RECURSIVE SEARCH"), screensaverSlideshowRecurse); s->addSaveFunc([screensaverSlideshowRecurse, s] { if (screensaverSlideshowRecurse->getState() != Settings::getInstance()->getBool("ScreensaverSlideshowRecurse")) { @@ -200,7 +201,7 @@ void GuiScreensaverOptions::openSlideshowScreensaverOptions() // Custom image directory. ComponentListRow rowCustomImageDir; auto ScreensaverSlideshowCustomDir = std::make_shared<TextComponent>( - "CUSTOM IMAGE DIRECTORY", Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); + _("CUSTOM IMAGE DIRECTORY"), Font::get(FONT_SIZE_MEDIUM), mMenuColorPrimary); auto bracketCustomImageDir = std::make_shared<ImageComponent>(); bracketCustomImageDir->setResize( glm::vec2 {0.0f, Font::get(FONT_SIZE_MEDIUM)->getLetterHeight()}); @@ -208,8 +209,8 @@ void GuiScreensaverOptions::openSlideshowScreensaverOptions() bracketCustomImageDir->setColorShift(mMenuColorPrimary); rowCustomImageDir.addElement(ScreensaverSlideshowCustomDir, true); rowCustomImageDir.addElement(bracketCustomImageDir, false); - const std::string titleCustomImageDir {"CUSTOM IMAGE DIRECTORY"}; - const std::string defaultImageDirStaticText {"Default directory:"}; + const std::string titleCustomImageDir {_("CUSTOM IMAGE DIRECTORY")}; + const std::string defaultImageDirStaticText {_("Default directory:")}; const std::string defaultImageDirText {Utils::FileSystem::getAppDataDirectory() + "/screensavers/custom_slideshow"}; const std::string initValueMediaDir { @@ -225,15 +226,15 @@ void GuiScreensaverOptions::openSlideshowScreensaverOptions() mWindow->pushGui(new GuiTextEditKeyboardPopup( getHelpStyle(), s->getMenu().getPosition().y, titleCustomImageDir, Settings::getInstance()->getString("ScreensaverSlideshowCustomDir"), - updateValMediaDir, false, "SAVE", "SAVE CHANGES?", defaultImageDirStaticText, - defaultImageDirText, "load default directory")); + updateValMediaDir, false, _("SAVE"), _("SAVE CHANGES?"), defaultImageDirStaticText, + defaultImageDirText, _("load default directory"))); } else { mWindow->pushGui(new GuiTextEditPopup( getHelpStyle(), titleCustomImageDir, Settings::getInstance()->getString("ScreensaverSlideshowCustomDir"), - updateValMediaDir, false, "SAVE", "SAVE CHANGES?", defaultImageDirStaticText, - defaultImageDirText, "load default directory")); + updateValMediaDir, false, _("SAVE"), _("SAVE CHANGES?"), defaultImageDirStaticText, + defaultImageDirText, _("load default directory"))); } }); s->addRow(rowCustomImageDir); @@ -244,13 +245,13 @@ void GuiScreensaverOptions::openSlideshowScreensaverOptions() void GuiScreensaverOptions::openVideoScreensaverOptions() { - auto s = new GuiSettings("VIDEO SCREENSAVER"); + auto s = new GuiSettings(_("VIDEO SCREENSAVER")); // Timer for swapping videos (in seconds). auto screensaverSwapVideoTimeout = std::make_shared<SliderComponent>(0.0f, 120.0f, 2.0f, "s"); screensaverSwapVideoTimeout->setValue(static_cast<float>( Settings::getInstance()->getInt("ScreensaverSwapVideoTimeout") / (1000))); - s->addWithLabel("SWAP VIDEOS AFTER (SECONDS)", screensaverSwapVideoTimeout); + s->addWithLabel(_("SWAP VIDEOS AFTER (SECONDS)"), screensaverSwapVideoTimeout); s->addSaveFunc([screensaverSwapVideoTimeout, s] { if (screensaverSwapVideoTimeout->getValue() != static_cast<float>(Settings::getInstance()->getInt("ScreensaverSwapVideoTimeout") / @@ -266,7 +267,7 @@ void GuiScreensaverOptions::openVideoScreensaverOptions() auto screensaverVideoOnlyFavorites = std::make_shared<SwitchComponent>(); screensaverVideoOnlyFavorites->setState( Settings::getInstance()->getBool("ScreensaverVideoOnlyFavorites")); - s->addWithLabel("ONLY INCLUDE FAVORITE GAMES", screensaverVideoOnlyFavorites); + s->addWithLabel(_("ONLY INCLUDE FAVORITE GAMES"), screensaverVideoOnlyFavorites); s->addSaveFunc([screensaverVideoOnlyFavorites, s] { if (screensaverVideoOnlyFavorites->getState() != Settings::getInstance()->getBool("ScreensaverVideoOnlyFavorites")) { @@ -280,7 +281,7 @@ void GuiScreensaverOptions::openVideoScreensaverOptions() auto screensaverStretchVideos = std::make_shared<SwitchComponent>(); screensaverStretchVideos->setState( Settings::getInstance()->getBool("ScreensaverStretchVideos")); - s->addWithLabel("STRETCH VIDEOS TO SCREEN RESOLUTION", screensaverStretchVideos); + s->addWithLabel(_("STRETCH VIDEOS TO SCREEN RESOLUTION"), screensaverStretchVideos); s->addSaveFunc([screensaverStretchVideos, s] { if (screensaverStretchVideos->getState() != Settings::getInstance()->getBool("ScreensaverStretchVideos")) { @@ -294,7 +295,7 @@ void GuiScreensaverOptions::openVideoScreensaverOptions() auto screensaverVideoGameInfo = std::make_shared<SwitchComponent>(); screensaverVideoGameInfo->setState( Settings::getInstance()->getBool("ScreensaverVideoGameInfo")); - s->addWithLabel("DISPLAY GAME INFO OVERLAY", screensaverVideoGameInfo); + s->addWithLabel(_("DISPLAY GAME INFO OVERLAY"), screensaverVideoGameInfo); s->addSaveFunc([screensaverVideoGameInfo, s] { if (screensaverVideoGameInfo->getState() != Settings::getInstance()->getBool("ScreensaverVideoGameInfo")) { @@ -308,7 +309,7 @@ void GuiScreensaverOptions::openVideoScreensaverOptions() auto screensaverVideoScanlines = std::make_shared<SwitchComponent>(); screensaverVideoScanlines->setState( Settings::getInstance()->getBool("ScreensaverVideoScanlines")); - s->addWithLabel("RENDER SCANLINES", screensaverVideoScanlines); + s->addWithLabel(_("RENDER SCANLINES"), screensaverVideoScanlines); s->addSaveFunc([screensaverVideoScanlines, s] { if (screensaverVideoScanlines->getState() != Settings::getInstance()->getBool("ScreensaverVideoScanlines")) { @@ -321,7 +322,7 @@ void GuiScreensaverOptions::openVideoScreensaverOptions() // Render blur using a shader. auto screensaverVideoBlur = std::make_shared<SwitchComponent>(); screensaverVideoBlur->setState(Settings::getInstance()->getBool("ScreensaverVideoBlur")); - s->addWithLabel("RENDER BLUR", screensaverVideoBlur); + s->addWithLabel(_("RENDER BLUR"), screensaverVideoBlur); s->addSaveFunc([screensaverVideoBlur, s] { if (screensaverVideoBlur->getState() != Settings::getInstance()->getBool("ScreensaverVideoBlur")) { diff --git a/es-app/src/views/SystemView.cpp b/es-app/src/views/SystemView.cpp index 33b184fad..7fcec329b 100644 --- a/es-app/src/views/SystemView.cpp +++ b/es-app/src/views/SystemView.cpp @@ -215,10 +215,10 @@ std::vector<HelpPrompt> SystemView::getHelpPrompts() prompts.push_back(HelpPrompt("a", _("select"))); if (Settings::getInstance()->getString("RandomEntryButton") == "gamessystems") - prompts.push_back(HelpPrompt("thumbstickclick", "random")); + prompts.push_back(HelpPrompt("thumbstickclick", _("random"))); if (Settings::getInstance()->getBool("ScreensaverControls")) - prompts.push_back(HelpPrompt("x", "screensaver")); + prompts.push_back(HelpPrompt("x", _("screensaver"))); return prompts; } diff --git a/es-app/src/views/ViewController.cpp b/es-app/src/views/ViewController.cpp index acff92c09..fa739284b 100644 --- a/es-app/src/views/ViewController.cpp +++ b/es-app/src/views/ViewController.cpp @@ -366,13 +366,16 @@ void ViewController::invalidAlternativeEmulatorDialog() { cancelViewTransitions(); mWindow->pushGui(new GuiMsgBox(getHelpStyle(), - "AT LEAST ONE OF YOUR SYSTEMS HAS AN\n" - "INVALID ALTERNATIVE EMULATOR CONFIGURED\n" - "WITH NO MATCHING ENTRY IN THE SYSTEMS\n" - "CONFIGURATION FILE, PLEASE REVIEW YOUR\n" - "SETUP USING THE 'ALTERNATIVE EMULATORS'\n" - "INTERFACE IN THE 'OTHER SETTINGS' MENU", - "OK", nullptr, "", nullptr, "", nullptr, nullptr, true, true)); + _("AT LEAST ONE OF YOUR SYSTEMS HAS AN " + "INVALID ALTERNATIVE EMULATOR CONFIGURED " + "WITH NO MATCHING ENTRY IN THE SYSTEMS " + "CONFIGURATION FILE, PLEASE REVIEW YOUR " + "SETUP USING THE 'ALTERNATIVE EMULATORS' " + "INTERFACE IN THE 'OTHER SETTINGS' MENU"), + _("OK"), nullptr, "", nullptr, "", nullptr, nullptr, true, true, + (mRenderer->getIsVerticalOrientation() ? + 0.70f : + 0.45f * (1.778f / mRenderer->getScreenAspectRatio())))); } void ViewController::updateAvailableDialog() @@ -1533,7 +1536,7 @@ std::vector<HelpPrompt> ViewController::getHelpPrompts() prompts = mCurrentView->getHelpPrompts(); if (!(UIModeController::getInstance()->isUIModeKid() && !Settings::getInstance()->getBool("EnableMenuKidMode"))) - prompts.push_back(HelpPrompt("start", "menu")); + prompts.push_back(HelpPrompt("start", _("menu"))); return prompts; } diff --git a/es-core/src/guis/GuiTextEditKeyboardPopup.cpp b/es-core/src/guis/GuiTextEditKeyboardPopup.cpp index 358327885..33a3bc92c 100644 --- a/es-core/src/guis/GuiTextEditKeyboardPopup.cpp +++ b/es-core/src/guis/GuiTextEditKeyboardPopup.cpp @@ -114,8 +114,8 @@ GuiTextEditKeyboardPopup::GuiTextEditKeyboardPopup( addChild(&mBackground); addChild(&mGrid); - mTitle = std::make_shared<TextComponent>( - Utils::String::toUpper(title), Font::get(FONT_SIZE_LARGE), mMenuColorTitle, ALIGN_CENTER); + mTitle = std::make_shared<TextComponent>(title, Font::get(FONT_SIZE_LARGE), mMenuColorTitle, + ALIGN_CENTER); std::vector<std::vector<std::string>> kbLayout; diff --git a/es-core/src/guis/GuiTextEditPopup.cpp b/es-core/src/guis/GuiTextEditPopup.cpp index ba9e94ce7..8f72503a3 100644 --- a/es-core/src/guis/GuiTextEditPopup.cpp +++ b/es-core/src/guis/GuiTextEditPopup.cpp @@ -45,8 +45,8 @@ GuiTextEditPopup::GuiTextEditPopup(const HelpStyle& helpstyle, addChild(&mBackground); addChild(&mGrid); - mTitle = std::make_shared<TextComponent>( - Utils::String::toUpper(title), Font::get(FONT_SIZE_MEDIUM), mMenuColorTitle, ALIGN_CENTER); + mTitle = std::make_shared<TextComponent>(title, Font::get(FONT_SIZE_MEDIUM), mMenuColorTitle, + ALIGN_CENTER); if (mComplexMode) { mInfoString = std::make_shared<TextComponent>(infoString, Font::get(FONT_SIZE_SMALL), @@ -66,7 +66,7 @@ GuiTextEditPopup::GuiTextEditPopup(const HelpStyle& helpstyle, })); if (mComplexMode) { buttons.push_back( - std::make_shared<ButtonComponent>("load", loadBtnHelpText, [this, defaultValue] { + std::make_shared<ButtonComponent>(_("LOAD"), loadBtnHelpText, [this, defaultValue] { mText->setValue(defaultValue); mText->setCursor(0); mText->setCursor(defaultValue.size());