Key sequence naming moved to ZRCola to allow localization

This commit is contained in:
Simon Rozman 2016-05-06 13:40:55 +02:00
parent eb67174bed
commit 7545e9dadf
6 changed files with 290 additions and 43 deletions

View File

@ -1,8 +1,8 @@
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: ZRCola\n" "Project-Id-Version: ZRCola\n"
"POT-Creation-Date: 2016-05-06 11:29+0200\n" "POT-Creation-Date: 2016-05-06 13:38+0200\n"
"PO-Revision-Date: 2016-05-06 11:30+0200\n" "PO-Revision-Date: 2016-05-06 13:39+0200\n"
"Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n" "Last-Translator: Simon Rozman <simon.rozman@amebis.si>\n"
"Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n" "Language-Team: Amebis, d. o. o., Kamnik <info@amebis.si>\n"
"Language: sl_SI\n" "Language: sl_SI\n"
@ -17,6 +17,194 @@ msgstr ""
"X-Poedit-KeywordsList: _\n" "X-Poedit-KeywordsList: _\n"
"X-Poedit-SearchPath-0: .\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 #: zrcolafrm.cpp:91
#, c-format #, c-format
msgid "Select %s language for decomposition" msgid "Select %s language for decomposition"
@ -223,7 +411,7 @@ msgstr "Sestavljeno besedilo"
msgid "Composed Unicode Dump" msgid "Composed Unicode Dump"
msgstr "Unicode sestavljenega" msgstr "Unicode sestavljenega"
#: zrcolakeyhndlr.cpp:65 #: zrcolakeyhndlr.cpp:44
msgid "" msgid ""
"INS key is pressed. Type the Unicode code of desired character now (up to " "INS key is pressed. Type the Unicode code of desired character now (up to "
"four hexadecimal digits: 0-9, A-F), then release INS." "four hexadecimal digits: 0-9, A-F), then release INS."

View File

@ -128,3 +128,77 @@ bool ZRColaApp::OnInit()
return true; 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;
}
}
}

View File

@ -58,6 +58,30 @@ public:
inline wxString GetDatabasePath() const; 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: public:
ZRCola::translation_db m_t_db; ///< Translation database ZRCola::translation_db m_t_db; ///< Translation database
ZRCola::langchar_db m_lc_db; ///< Language character database ZRCola::langchar_db m_lc_db; ///< Language character database

View File

@ -109,7 +109,7 @@ bool wxZRColaKeyHandler::ProcessEvent(wxEvent& event)
{ {
// The sequence is a partial match. Continue watching. // The sequence is a partial match. Continue watching.
if (pFrame && pFrame->GetStatusBar()) 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(); event.StopPropagation();
return true; return true;

View File

@ -204,30 +204,6 @@ namespace ZRCola {
/// Constructs the database /// Constructs the database
/// ///
inline keyseq_db() : idxChr(data), idxKey(data) {} 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;
}
}; };

View File

@ -18,18 +18,3 @@
*/ */
#include "stdafx.h" #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;
}
}