From 7545e9dadf8dc928f81b3bae05c5930f20233953 Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Fri, 6 May 2016 13:40:55 +0200 Subject: [PATCH] Key sequence naming moved to ZRCola to allow localization --- ZRCola/locale/sl_SI.po | 194 +++++++++++++++++++- ZRCola/zrcolaapp.cpp | 74 ++++++++ ZRCola/zrcolaapp.h | 24 +++ ZRCola/zrcolakeyhndlr.cpp | 2 +- lib/libZRColaUI/include/zrcolaui/keyboard.h | 24 --- lib/libZRColaUI/src/keyboard.cpp | 15 -- 6 files changed, 290 insertions(+), 43 deletions(-) diff --git a/ZRCola/locale/sl_SI.po b/ZRCola/locale/sl_SI.po index faa2c47..aa3ded1 100644 --- a/ZRCola/locale/sl_SI.po +++ b/ZRCola/locale/sl_SI.po @@ -1,8 +1,8 @@ msgid "" msgstr "" "Project-Id-Version: ZRCola\n" -"POT-Creation-Date: 2016-05-06 11:29+0200\n" -"PO-Revision-Date: 2016-05-06 11:30+0200\n" +"POT-Creation-Date: 2016-05-06 13:38+0200\n" +"PO-Revision-Date: 2016-05-06 13:39+0200\n" "Last-Translator: Simon Rozman \n" "Language-Team: Amebis, d. o. o., Kamnik \n" "Language: sl_SI\n" @@ -17,6 +17,194 @@ msgstr "" "X-Poedit-KeywordsList: _\n" "X-Poedit-SearchPath-0: .\n" +#: zrcolaapp.cpp:146 +msgid "Esc" +msgstr "Esc" + +#: zrcolaapp.cpp:148 +msgid "F1" +msgstr "F1" + +#: zrcolaapp.cpp:149 +msgid "F2" +msgstr "F2" + +#: zrcolaapp.cpp:150 +msgid "F3" +msgstr "F3" + +#: zrcolaapp.cpp:151 +msgid "F4" +msgstr "F4" + +#: zrcolaapp.cpp:152 +msgid "F5" +msgstr "F5" + +#: zrcolaapp.cpp:153 +msgid "F6" +msgstr "F6" + +#: zrcolaapp.cpp:154 +msgid "F7" +msgstr "F7" + +#: zrcolaapp.cpp:155 +msgid "F8" +msgstr "F8" + +#: zrcolaapp.cpp:156 +msgid "F9" +msgstr "F9" + +#: zrcolaapp.cpp:157 +msgid "F10" +msgstr "F10" + +#: zrcolaapp.cpp:158 +msgid "F11" +msgstr "F11" + +#: zrcolaapp.cpp:159 +msgid "F12" +msgstr "F12" + +#: zrcolaapp.cpp:161 +msgid "Print Screen" +msgstr "Print Screen" + +#: zrcolaapp.cpp:162 +msgid "Scroll Lock" +msgstr "Scroll Lock" + +#: zrcolaapp.cpp:163 +msgid "Pause" +msgstr "Pause" + +#: zrcolaapp.cpp:165 +msgid "`" +msgstr "`" + +#: zrcolaapp.cpp:166 +msgid "-" +msgstr "-" + +#: zrcolaapp.cpp:167 +msgid "+" +msgstr "+" + +#: zrcolaapp.cpp:168 +msgid "Backspace" +msgstr "Backspace" + +#: zrcolaapp.cpp:169 +msgid "Tab" +msgstr "Tab" + +#: zrcolaapp.cpp:170 +msgid "Caps Lock" +msgstr "Caps Lock" + +#: zrcolaapp.cpp:171 +msgid "[" +msgstr "[" + +#: zrcolaapp.cpp:172 +msgid "]" +msgstr "]" + +#: zrcolaapp.cpp:173 +msgid "Return" +msgstr "Return" + +#: zrcolaapp.cpp:174 +msgid ":" +msgstr ":" + +#: zrcolaapp.cpp:175 +msgid "'" +msgstr "'" + +#: zrcolaapp.cpp:176 +msgid "\\" +msgstr "\\" + +#: zrcolaapp.cpp:177 +msgid "," +msgstr "," + +#: zrcolaapp.cpp:178 +msgid "." +msgstr "." + +#: zrcolaapp.cpp:179 +msgid "/" +msgstr "/" + +#: zrcolaapp.cpp:180 +msgid "Space" +msgstr "preslednica" + +#: zrcolaapp.cpp:182 +msgid "Shift" +msgstr "Shift" + +#: zrcolaapp.cpp:183 +msgid "Alt" +msgstr "Alt" + +#: zrcolaapp.cpp:184 +msgid "Ctrl" +msgstr "Ctrl" + +#: zrcolaapp.cpp:185 +msgid "Menu" +msgstr "Menu" + +#: zrcolaapp.cpp:187 +msgid "Insert" +msgstr "Insert" + +#: zrcolaapp.cpp:188 +msgid "Delete" +msgstr "Delete" + +#: zrcolaapp.cpp:189 +msgid "Page Up" +msgstr "Page Up" + +#: zrcolaapp.cpp:190 +msgid "Page Down" +msgstr "Page Down" + +#: zrcolaapp.cpp:191 +msgid "Home" +msgstr "Home" + +#: zrcolaapp.cpp:192 +msgid "End" +msgstr "End" + +#: zrcolaapp.cpp:194 +msgid "Left" +msgstr "Left" + +#: zrcolaapp.cpp:195 +msgid "Up" +msgstr "Up" + +#: zrcolaapp.cpp:196 +msgid "Right" +msgstr "Right" + +#: zrcolaapp.cpp:197 +msgid "Down" +msgstr "Down" + +#: zrcolaapp.cpp:199 +msgid "Num Lock" +msgstr "Num Lock" + #: zrcolafrm.cpp:91 #, c-format msgid "Select %s language for decomposition" @@ -223,7 +411,7 @@ msgstr "Sestavljeno besedilo" msgid "Composed Unicode Dump" msgstr "Unicode sestavljenega" -#: zrcolakeyhndlr.cpp:65 +#: zrcolakeyhndlr.cpp:44 msgid "" "INS key is pressed. Type the Unicode code of desired character now (up to " "four hexadecimal digits: 0-9, A-F), then release INS." diff --git a/ZRCola/zrcolaapp.cpp b/ZRCola/zrcolaapp.cpp index 04f5ae4..460996e 100644 --- a/ZRCola/zrcolaapp.cpp +++ b/ZRCola/zrcolaapp.cpp @@ -128,3 +128,77 @@ bool ZRColaApp::OnInit() return true; } + + +void ZRColaApp::GetKeySequenceAsText(_In_count_(seq_len) const ZRCola::keyseq_db::keyseq::key_t *seq, _In_ size_t seq_len, _Out_ std::wstring& str) +{ + assert(seq || !seq_len); + + str.clear(); + for (size_t i = 0; i < seq_len; i++) { + if (i) str += L", "; + if (seq[i].modifiers & ZRCola::keyseq_db::keyseq::CTRL ) str += L"Ctrl+"; + if (seq[i].modifiers & ZRCola::keyseq_db::keyseq::ALT ) str += L"Alt+"; + if (seq[i].modifiers & ZRCola::keyseq_db::keyseq::SHIFT) str += L"Shift+"; + wchar_t k = seq[i].key; + switch (k) { + // TODO: Localize keys according to active keyboard. + case WXK_ESCAPE : str += _("Esc" ); break; + + case WXK_F1 : str += _("F1" ); break; + case WXK_F2 : str += _("F2" ); break; + case WXK_F3 : str += _("F3" ); break; + case WXK_F4 : str += _("F4" ); break; + case WXK_F5 : str += _("F5" ); break; + case WXK_F6 : str += _("F6" ); break; + case WXK_F7 : str += _("F7" ); break; + case WXK_F8 : str += _("F8" ); break; + case WXK_F9 : str += _("F9" ); break; + case WXK_F10 : str += _("F10" ); break; + case WXK_F11 : str += _("F11" ); break; + case WXK_F12 : str += _("F12" ); break; + + case WXK_PRINT : str += _("Print Screen"); break; + case WXK_SCROLL : str += _("Scroll Lock" ); break; + case WXK_PAUSE : str += _("Pause" ); break; + + case VK_OEM_3 : str += _("`" ); break; + case VK_OEM_MINUS : str += _("-" ); break; + case VK_OEM_PLUS : str += _("+" ); break; + case WXK_BACK : str += _("Backspace" ); break; + case WXK_TAB : str += _("Tab" ); break; + case WXK_CAPITAL : str += _("Caps Lock" ); break; + case VK_OEM_4 : str += _("[" ); break; + case VK_OEM_6 : str += _("]" ); break; + case WXK_RETURN : str += _("Return" ); break; + case VK_OEM_1 : str += _(":" ); break; + case VK_OEM_7 : str += _("'" ); break; + case VK_OEM_5 : str += _("\\" ); break; + case VK_OEM_COMMA : str += _("," ); break; + case VK_OEM_PERIOD: str += _("." ); break; + case VK_OEM_2 : str += _("/" ); break; + case WXK_SPACE : str += _("Space" ); break; + + case WXK_SHIFT : str += _("Shift" ); break; + case WXK_ALT : str += _("Alt" ); break; + case WXK_CONTROL : str += _("Ctrl" ); break; + case WXK_MENU : str += _("Menu" ); break; + + case WXK_INSERT : str += _("Insert" ); break; + case WXK_DELETE : str += _("Delete" ); break; + case WXK_PAGEUP : str += _("Page Up" ); break; + case WXK_PAGEDOWN : str += _("Page Down" ); break; + case WXK_HOME : str += _("Home" ); break; + case WXK_END : str += _("End" ); break; + + case WXK_LEFT : str += _("Left" ); break; + case WXK_UP : str += _("Up" ); break; + case WXK_RIGHT : str += _("Right" ); break; + case WXK_DOWN : str += _("Down" ); break; + + case WXK_NUMLOCK : str += _("Num Lock" ); break; + + default : str += k; + } + } +} diff --git a/ZRCola/zrcolaapp.h b/ZRCola/zrcolaapp.h index bbfccc2..9cb546f 100644 --- a/ZRCola/zrcolaapp.h +++ b/ZRCola/zrcolaapp.h @@ -58,6 +58,30 @@ public: inline wxString GetDatabasePath() const; + /// + /// Get text representation of a given key sequence + /// + /// \param[in] seq Key sequence + /// \param[in] seq_len Number of elements in \p seq + /// \param[out] str Text representation of a \p seq key sequence + /// + static void GetKeySequenceAsText(_In_count_(seq_len) const ZRCola::keyseq_db::keyseq::key_t *seq, _In_ size_t seq_len, _Out_ std::wstring& str); + + /// + /// Get text representation of a given key sequence + /// + /// \param[in] seq Key sequence + /// \param[in] seq_len Number of elements in \p seq + /// + /// \returns Text representation of a \p seq key sequence + /// + static inline std::wstring GetKeySequenceAsText(_In_count_(seq_len) const ZRCola::keyseq_db::keyseq::key_t *seq, _In_ size_t seq_len) + { + std::wstring str; + GetKeySequenceAsText(seq, seq_len, str); + return str; + } + public: ZRCola::translation_db m_t_db; ///< Translation database ZRCola::langchar_db m_lc_db; ///< Language character database diff --git a/ZRCola/zrcolakeyhndlr.cpp b/ZRCola/zrcolakeyhndlr.cpp index 76b6b9b..5e851d4 100644 --- a/ZRCola/zrcolakeyhndlr.cpp +++ b/ZRCola/zrcolakeyhndlr.cpp @@ -109,7 +109,7 @@ bool wxZRColaKeyHandler::ProcessEvent(wxEvent& event) { // The sequence is a partial match. Continue watching. if (pFrame && pFrame->GetStatusBar()) - pFrame->SetStatusText(ZRCola::keyseq_db::GetSequenceAsText(m_seq.data(), m_seq.size())); + pFrame->SetStatusText(ZRColaApp::GetKeySequenceAsText(m_seq.data(), m_seq.size())); event.StopPropagation(); return true; diff --git a/lib/libZRColaUI/include/zrcolaui/keyboard.h b/lib/libZRColaUI/include/zrcolaui/keyboard.h index 72e28d7..e13c2ba 100644 --- a/lib/libZRColaUI/include/zrcolaui/keyboard.h +++ b/lib/libZRColaUI/include/zrcolaui/keyboard.h @@ -204,30 +204,6 @@ namespace ZRCola { /// Constructs the database /// inline keyseq_db() : idxChr(data), idxKey(data) {} - - /// - /// Get text representation of a given key sequence - /// - /// \param[in] seq Key sequence - /// \param[in] seq_len Number of elements in \p seq - /// \param[out] str Text representation of a \p seq key sequence - /// - static void GetSequenceAsText(_In_count_(seq_len) const keyseq::key_t *seq, _In_ size_t seq_len, _Out_ std::wstring& str); - - /// - /// Get text representation of a given key sequence - /// - /// \param[in] seq Key sequence - /// \param[in] seq_len Number of elements in \p seq - /// - /// \returns Text representation of a \p seq key sequence - /// - static inline std::wstring GetSequenceAsText(_In_count_(seq_len) const keyseq::key_t *seq, _In_ size_t seq_len) - { - std::wstring str; - GetSequenceAsText(seq, seq_len, str); - return str; - } }; diff --git a/lib/libZRColaUI/src/keyboard.cpp b/lib/libZRColaUI/src/keyboard.cpp index b5b41cf..ac111f1 100644 --- a/lib/libZRColaUI/src/keyboard.cpp +++ b/lib/libZRColaUI/src/keyboard.cpp @@ -18,18 +18,3 @@ */ #include "stdafx.h" - - -void ZRCola::keyseq_db::GetSequenceAsText(_In_count_(seq_len) const ZRCola::keyseq_db::keyseq::key_t *seq, _In_ size_t seq_len, _Out_ std::wstring& str) -{ - assert(seq || !seq_len); - - str.clear(); - for (size_t i = 0; i < seq_len; i++) { - if (i) str += L", "; - if (seq[i].modifiers & keyseq::CTRL ) str += L"Ctrl+"; - if (seq[i].modifiers & keyseq::ALT ) str += L"Alt+"; - if (seq[i].modifiers & keyseq::SHIFT) str += L"Shift+"; - str += seq[i].key; - } -}