From 7c3f7a2324ec972104e2d219afd3ac89d65ccd05 Mon Sep 17 00:00:00 2001 From: kaienfr Date: Fri, 30 Aug 2013 20:15:13 +0200 Subject: [PATCH] Fix mune translation from ini (run/pause) buttion --- Windows/WndMainWindow.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Windows/WndMainWindow.cpp b/Windows/WndMainWindow.cpp index 805d4461b1..864fb2698c 100644 --- a/Windows/WndMainWindow.cpp +++ b/Windows/WndMainWindow.cpp @@ -1575,7 +1575,19 @@ namespace MainWindow UpdateCommands(); } + + void TranslateMenuItembyText(const int menuID, const char *menuText, const char *category="", const bool enabled = true, const bool checked = false, const std::wstring& accelerator = L"") { + I18NCategory *c = GetI18NCategory(category); + std::string key = c->T(menuText); + std::wstring translated = ConvertUTF8ToWString(key); + translated.append(accelerator); + ModifyMenu(menu, menuID, MF_STRING + | enabled? MF_ENABLED : MF_GRAYED + | checked? MF_UNCHECKED : MF_CHECKED, // Have to use reverse logic here for some reason + menuID, translated.c_str()); + } + void UpdateCommands() { static GlobalUIState lastGlobalUIState = UISTATE_PAUSEMENU; static CoreState lastCoreState = CORE_ERROR; @@ -1588,8 +1600,8 @@ namespace MainWindow HMENU menu = GetMenu(GetHWND()); - const wchar_t * pauseMenuText = (Core_IsStepping() || globalUIState != UISTATE_INGAME) ? L"Run\tF8" : L"Pause\tF8"; - ModifyMenu(menu, ID_TOGGLE_PAUSE, MF_BYCOMMAND | MF_STRING, ID_TOGGLE_PAUSE, pauseMenuText); + (Core_IsStepping() || globalUIState != UISTATE_INGAME) ? + TranslateMenuItembyText(ID_TOGGLE_PAUSE, "Run", "DesktopUI", false, false, L"\tF8") : TranslateMenuItembyText(ID_TOGGLE_PAUSE, "Pause", "DesktopUI", false, false, L"\tF8"); UINT ingameEnable = globalUIState == UISTATE_INGAME ? MF_ENABLED : MF_GRAYED; EnableMenuItem(menu, ID_TOGGLE_PAUSE, ingameEnable);