From d4f12f2630d41b0dc534c0d3d0d8ae7b3881c680 Mon Sep 17 00:00:00 2001 From: Andrew Dyukov <adyukov@productengine.com> Date: Wed, 11 Aug 2010 20:39:34 +0300 Subject: [PATCH] EXT-8425 FIXED Translated names of "Home" and "Esc" keys shown in shortcuts. Each key has KEY (typedef of U8) represantation which is paired with text version of key. To get strings corresponding to keys LLKeyboard::stringFromKey() is used. - Added translation of keys into LLKeyboard::stringFromKey(). - Added corresponding strings into strings.xml. - Changed LLTrans::getKeyboardString() so that it correctly process key names that are not found in strings.xml(returns English name instead of "MissingString"). Reviewed by Vadim Savchuk at https://codereview.productengine.com/secondlife/r/845/ --HG-- branch : product-engine --- indra/llwindow/llkeyboard.cpp | 7 +++++++ indra/llxuixml/lltrans.h | 11 ++++++----- indra/newview/skins/default/xui/en/strings.xml | 3 +++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/indra/llwindow/llkeyboard.cpp b/indra/llwindow/llkeyboard.cpp index 16cbf815e0b..8f26f980d15 100644 --- a/indra/llwindow/llkeyboard.cpp +++ b/indra/llwindow/llkeyboard.cpp @@ -343,6 +343,13 @@ std::string LLKeyboard::stringFromKey(KEY key) buffer[1] = '\0'; res = std::string(buffer); } + + LLKeyStringTranslatorFunc *trans = gKeyboard->mStringTranslator; + if (trans != NULL) + { + res = trans(res.c_str()); + } + return res; } diff --git a/indra/llxuixml/lltrans.h b/indra/llxuixml/lltrans.h index 856b9e04fc7..6c8d28b346a 100644 --- a/indra/llxuixml/lltrans.h +++ b/indra/llxuixml/lltrans.h @@ -103,11 +103,12 @@ class LLTrans return findString(result, xml_desc, empty); } - static std::string getKeyboardString(const char* keystring) - { - // These map directly - no need to specialize - return getString( ll_safe_string(keystring) ); - } + static std::string getKeyboardString(const char* keystring) + { + std::string key_str(keystring); + std::string trans_str; + return findString(trans_str, "Key_" + key_str) ? trans_str : key_str; + } // get the default args static const LLStringUtil::format_map_t& getDefaultArgs() diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml index 2aa34b746bd..7a292ab943f 100644 --- a/indra/newview/skins/default/xui/en/strings.xml +++ b/indra/newview/skins/default/xui/en/strings.xml @@ -2282,6 +2282,9 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh <string name="accel-win-alt">Alt+</string> <string name="accel-win-shift">Shift+</string> + <string name="Key_Esc">Esc</string> + <string name="Key_Home">Home</string> + <!-- Previews --> <string name="FileSaved">File Saved</string> <string name="Receiving">Receiving</string> -- GitLab