diff --git a/ZRCola/ZRCola.fbp b/ZRCola/ZRCola.fbp index c7753ea..ad1b6f4 100644 --- a/ZRCola/ZRCola.fbp +++ b/ZRCola/ZRCola.fbp @@ -363,7 +363,7 @@ 0 1 Toggle compose toolbar - wxID_TOOLBAR_TRANSFORM + wxID_TOOLBAR_TRANSLATE wxITEM_CHECK &Compose Toolbar m_menuItemToolbarCompose @@ -666,7 +666,7 @@ 0 1 - m_toolbarTransform + m_toolbarTranslate 1 1 -1,-1 @@ -773,6 +773,89 @@ + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + -1,-1 + 1 + m_toolTranslationSeq + 1 + + + protected + 1 + + Resizable + 0 + 1 + 170,-1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + + OnTranslationSeqChoice + + + + + + + + + + + + + + + + + + + + + + + 1 @@ -5067,931 +5150,6 @@ - - - Transformation - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - - 1 - m_panelTransformation - 1 - - - protected - 1 - - Resizable - 1 - 500,-1 - - 0 - - - - wxTAB_TRAVERSAL - - - - - - - - - - - - - - - - - - - - - - - OnTransformationUpdate - - - bSizerTransformation - wxVERTICAL - none - - 5 - wxALL|wxEXPAND - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - ZRCola offers multiple text transformations that can be arranged in a sequence. Please select desired transformations and the order they are applied. - - 0 - - - 0 - - 1 - m_transLabel - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - 490 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - 3 - wxBOTH - 0,2 - 0 - 0 - - fgSizerTransformation - wxFLEX_GROWMODE_SPECIFIED - none - 2 - 0 - - 5 - wxEXPAND - 1 - - - bSizerTransAvailable - wxVERTICAL - none - - 5 - wxEXPAND|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - A&vailable: - - 0 - - - 0 - - 1 - m_transAvailableLabel - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - -1,-1 - 1 - m_transAvailable - 1 - - - protected - 1 - - Resizable - 1 - - wxLB_SINGLE|wxLB_SORT - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_CENTER_VERTICAL - 0 - - - bSizerTransActivate - wxVERTICAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - > - - 0 - -1,-1 - - 0 - - 1 - m_transActivate - 1 - - - protected - 1 - - Resizable - 1 - 32,32 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTransActivate - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - < - - 0 - -1,-1 - - 0 - - 1 - m_transDeactivate - 1 - - - protected - 1 - - Resizable - 1 - 32,32 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTransDeactivate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxEXPAND - 1 - - - bSizerTransActive - wxVERTICAL - none - - 5 - wxEXPAND|wxTOP|wxRIGHT|wxLEFT - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - &Active: - - 0 - - - 0 - - 1 - m_transActiveLabel - 1 - - - protected - 1 - - Resizable - 1 - - - - 0 - - - - - -1 - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL|wxEXPAND - 1 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - - 1 - - 1 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - - 0 - - - 0 - -1,-1 - 1 - m_transActive - 1 - - - protected - 1 - - Resizable - 1 - - wxLB_SINGLE - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALIGN_RIGHT - 0 - - - bSizerTransActiveReorder - wxHORIZONTAL - none - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Up - - 0 - -1,-1 - - 0 - - 1 - m_transActiveUp - 1 - - - protected - 1 - - Resizable - 1 - 70,-1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTransActiveUp - - - - - - - - - - - - - - - - - - - - - - - - - - - 5 - wxALL - 0 - - 1 - 1 - 1 - 1 - - - - - - - - 1 - 0 - 1 - - 1 - 0 - 0 - Dock - 0 - Left - 1 - - 1 - - 0 - 0 - wxID_ANY - Down - - 0 - -1,-1 - - 0 - - 1 - m_transActiveDown - 1 - - - protected - 1 - - Resizable - 1 - 70,-1 - - - 0 - - - wxFILTER_NONE - wxDefaultValidator - - - - - OnTransActiveDown - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Startup @@ -8118,5 +7276,956 @@ + + 0 + wxAUI_MGR_DEFAULT + + wxBOTH + + 1 + 1 + impl_virtual + + + + 0 + wxID_ANY + + + wxZRColaTranslationSeqBase + + + wxDEFAULT_DIALOG_STYLE + + Custom Translation Sequence + + + + + + + + + + + + + + + + + + + + OnInitDialog + + + + + + + + + + + + + + + + + + + + OnUpdate + + + bSizerContent + wxVERTICAL + none + + 5 + wxEXPAND|wxALL + 1 + + wxID_ANY + Translation + + sbSizerTranslationSet + wxVERTICAL + none + + + 5 + wxALL|wxEXPAND + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + ZRCola offers multiple text translations that can be arranged in a sequence. Please select desired translations and the order they are applied. + + 0 + + + 0 + + 1 + m_transLbl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + 452 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizerTranslation + wxHORIZONTAL + none + + 5 + wxEXPAND + 1 + + + bSizerTransAvailable + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + A&vailable: + + 0 + + + 0 + + 1 + m_availableLbl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + 200,150 + 1 + m_available + 1 + + + protected + 1 + + Resizable + 1 + 200,-1 + wxLB_SINGLE|wxLB_SORT + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnAvailableChar + + + + + + + + + + + OnAvailableDClick + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_CENTER_VERTICAL + 0 + + + bSizerTransSelect + wxVERTICAL + none + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + > + + 0 + -1,-1 + + 0 + + 1 + m_add + 1 + + + protected + 1 + + Resizable + 1 + 32,32 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnAdd + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + < + + 0 + -1,-1 + + 0 + + 1 + m_remove + 1 + + + protected + 1 + + Resizable + 1 + 32,32 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnRemove + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND + 1 + + + bSizerTransSelected + wxVERTICAL + none + + 5 + wxEXPAND|wxTOP|wxRIGHT|wxLEFT + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + &Selected: + + 0 + + + 0 + + 1 + m_selectedLbl + 1 + + + protected + 1 + + Resizable + 1 + + + + 0 + + + + + -1 + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL|wxEXPAND + 1 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + + 1 + + 1 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + + 0 + + + 0 + 200,150 + 1 + m_selected + 1 + + + protected + 1 + + Resizable + 1 + 200,-1 + wxLB_SINGLE + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSelectedChar + + + + + + + + + + + OnSelectedDClick + + + + + + + + + + + + + + + + + + + + + 5 + wxALIGN_RIGHT + 0 + + + bSizerTransActiveReorder + wxHORIZONTAL + none + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Up + + 0 + -1,-1 + + 0 + + 1 + m_selectedUp + 1 + + + protected + 1 + + Resizable + 1 + 70,-1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSelectedUp + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxALL + 0 + + 1 + 1 + 1 + 1 + + + + + + + + 1 + 0 + 1 + + 1 + 0 + 0 + Dock + 0 + Left + 1 + + 1 + + 0 + 0 + wxID_ANY + Down + + 0 + -1,-1 + + 0 + + 1 + m_selectedDown + 1 + + + protected + 1 + + Resizable + 1 + 70,-1 + + + 0 + + + wxFILTER_NONE + wxDefaultValidator + + + + + OnSelectedDown + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 5 + wxEXPAND|wxALL + 0 + + 0 + protected + 0 + + + + 5 + wxEXPAND|wxALL + 0 + + 0 + 1 + 0 + 0 + 0 + 1 + 0 + 0 + + m_sdbSizerButtons + protected + + + + + + OnOKButtonClick + + + + + + diff --git a/ZRCola/ZRCola.vcxproj b/ZRCola/ZRCola.vcxproj index fa548dd..b6c5d16 100644 --- a/ZRCola/ZRCola.vcxproj +++ b/ZRCola/ZRCola.vcxproj @@ -91,6 +91,7 @@ + @@ -106,6 +107,7 @@ + @@ -139,7 +141,9 @@ - + + Designer + diff --git a/ZRCola/ZRCola.vcxproj.filters b/ZRCola/ZRCola.vcxproj.filters index 5ac4278..08882f2 100644 --- a/ZRCola/ZRCola.vcxproj.filters +++ b/ZRCola/ZRCola.vcxproj.filters @@ -58,6 +58,9 @@ Source Files + + Source Files + @@ -99,6 +102,9 @@ Header Files + + Header Files + diff --git a/ZRCola/locale/ZRCola.pot b/ZRCola/locale/ZRCola.pot index 53c7de0..8bed9dd 100644 --- a/ZRCola/locale/ZRCola.pot +++ b/ZRCola/locale/ZRCola.pot @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: ZRCola\n" -"POT-Creation-Date: 2017-04-03 12:01+0200\n" +"POT-Creation-Date: 2017-06-01 18:04+0200\n" "PO-Revision-Date: 2016-05-13 15:52+0200\n" "Last-Translator: Simon Rozman \n" "Language-Team: Amebis, d. o. o., Kamnik \n" @@ -10,7 +10,7 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.0.2\n" "X-Poedit-Basepath: ..\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -18,37 +18,42 @@ msgstr "" "X-Poedit-SearchPath-0: .\n" #: zrcolaabout.cpp:31 -#, c-format +#, fuzzy, c-format msgid "© 2004-%s ZRC SAZU" -msgstr "" +msgstr "© 2004-%s ZRC SAZU" -#: zrcolaapp.cpp:72 zrcolafrm.cpp:92 zrcolagui.cpp:980 zrcolagui.h:106 +#: zrcolaapp.cpp:72 zrcolafrm.cpp:106 zrcolagui.cpp:894 zrcolagui.h:108 #: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4 #: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.x64.Release.Feature-2.idtx:4 #: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4 +#, fuzzy msgid "ZRCola" -msgstr "" +msgstr "ZRCola" -#: zrcolachrreq.cpp:49 zrcolagui.cpp:1110 +#: zrcolachrreq.cpp:49 zrcolagui.cpp:1024 +#, fuzzy msgid "Character" -msgstr "" +msgstr "Znak" -#: zrcolachrreq.cpp:58 zrcolagui.cpp:1131 +#: zrcolachrreq.cpp:58 zrcolagui.cpp:1045 +#, fuzzy msgid "Context" -msgstr "" +msgstr "Kontekst" -#: zrcolachrreq.cpp:64 zrcolagui.h:379 +#: zrcolachrreq.cpp:64 zrcolagui.h:366 +#, fuzzy msgid "Request a New Character" -msgstr "" +msgstr "Zahtevaj nov znak" #: zrcolachrslct.cpp:89 msgid "Too many digits in Unicode." msgstr "" #: zrcolachrslct.cpp:89 zrcolachrslct.cpp:107 +#, fuzzy msgid "Validation conflict" -msgstr "" +msgstr "Konflikt pri preverjanju" #: zrcolachrslct.cpp:107 #, c-format @@ -56,72 +61,92 @@ msgid "Invalid character in Unicode found: %c" msgstr "" #: zrcolachrslct.cpp:214 zrcolachrslct.cpp:390 zrcolachrslct.cpp:869 +#, fuzzy msgid "▸ Search Options" -msgstr "" +msgstr "▸ Možnosti iskanja" #: zrcolachrslct.cpp:328 msgid ", " msgstr "" #: zrcolachrslct.cpp:393 zrcolachrslct.cpp:866 +#, fuzzy msgid "▾ Search Options" +msgstr "▾ Možnosti iskanja" + +#: zrcolafrm.cpp:90 +msgid "Custom Translation..." msgstr "" -#: zrcolafrm.cpp:143 +#: zrcolafrm.cpp:175 +#, fuzzy msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available." -msgstr "" +msgstr "ZRColine bližnjice na tipkovnici Win+F5 ni mogoče registrirati. Nekaj funkcionalnosti ne bo na voljo." -#: zrcolafrm.cpp:143 zrcolafrm.cpp:145 +#: zrcolafrm.cpp:175 zrcolafrm.cpp:177 +#, fuzzy msgid "Warning" -msgstr "" +msgstr "Opozorilo" -#: zrcolafrm.cpp:145 +#: zrcolafrm.cpp:177 +#, fuzzy msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available." -msgstr "" +msgstr "ZRColine bližnjice na tipkovnici Win+F6 ni mogoče registrirati. Nekaj funkcionalnosti ne bo na voljo." -#: zrcolafrm.cpp:362 +#: zrcolafrm.cpp:410 +#, fuzzy msgid "http://zrcola.zrc-sazu.si/en/info/instructions/" -msgstr "" +msgstr "http://zrcola.zrc-sazu.si/info/instructions/" -#: zrcolafrm.cpp:386 +#: zrcolafrm.cpp:434 +#, fuzzy msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" -msgstr "" +msgstr "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" #: zrcolagui.cpp:36 +#, fuzzy msgid "E&xit" -msgstr "" +msgstr "I&zhod" #: zrcolagui.cpp:36 +#, fuzzy msgid "Quit this program" -msgstr "" +msgstr "Zapri ta program" #: zrcolagui.cpp:39 +#, fuzzy msgid "&Program" -msgstr "" +msgstr "&Program" #: zrcolagui.cpp:72 +#, fuzzy msgid "Select &All" -msgstr "" +msgstr "Izberi &vse" #: zrcolagui.cpp:72 +#, fuzzy msgid "Select all text" -msgstr "" +msgstr "Izberi celotno besedilo" #: zrcolagui.cpp:78 +#, fuzzy msgid "Find C&haracter..." -msgstr "" +msgstr "Poišči &znak ..." #: zrcolagui.cpp:78 zrcolagui.cpp:198 +#, fuzzy msgid "Display character search to select character to insert into text" -msgstr "" +msgstr "Prikaži iskalnik znakov za izbor znaka za vstavljanje v besedilo" #: zrcolagui.cpp:89 +#, fuzzy msgid "&Send Composed" -msgstr "" +msgstr "Pošlji &sestavljeno" #: zrcolagui.cpp:89 zrcolagui.cpp:200 +#, fuzzy msgid "Send composed text to source window" -msgstr "" +msgstr "Pošlji sestavljeno besedilo izvornemu oknu" #: zrcolagui.cpp:98 msgid "Copy Composed and &Return" @@ -132,12 +157,14 @@ msgid "Copy composed text to clipboard and return focus to source window" msgstr "" #: zrcolagui.cpp:107 +#, fuzzy msgid "Send &Decomposed" -msgstr "" +msgstr "Pošlji &razstavljeno" #: zrcolagui.cpp:107 zrcolagui.cpp:202 +#, fuzzy msgid "Send decomposed text to source window" -msgstr "" +msgstr "Pošlji razstavljeno besedilo izvornemu oknu" #: zrcolagui.cpp:116 msgid "Copy Decomposed and Re&turn" @@ -148,352 +175,398 @@ msgid "Copy decomposed text to clipboard and return focus to source window" msgstr "" #: zrcolagui.cpp:125 +#, fuzzy msgid "Abort (De)composition" -msgstr "" +msgstr "Prekini raz/sestavljanje" #: zrcolagui.cpp:125 +#, fuzzy msgid "Abort composition and return focus to source window" -msgstr "" +msgstr "Prekini sestavljanje in vrni fokus nazaj izvornemu oknu" #: zrcolagui.cpp:136 +#, fuzzy msgid "&Settings..." -msgstr "" +msgstr "Na&stavitve ..." #: zrcolagui.cpp:136 +#, fuzzy msgid "Open program configuration dialog" -msgstr "" +msgstr "Odpri nastavitveni dialog programa" #: zrcolagui.cpp:139 +#, fuzzy msgid "&Edit" -msgstr "" +msgstr "Ur&edi" #: zrcolagui.cpp:143 +#, fuzzy msgid "&Edit Toolbar" -msgstr "" +msgstr "Orodna vrstica za ur&ejanje" #: zrcolagui.cpp:143 +#, fuzzy msgid "Toggle edit toolbar" -msgstr "" +msgstr "Prikaži/skrij orodno vrstico za urejanje" #: zrcolagui.cpp:147 +#, fuzzy msgid "&Compose Toolbar" -msgstr "" +msgstr "Orodna vrsti&ca za sestavljanje" #: zrcolagui.cpp:147 +#, fuzzy msgid "Toggle compose toolbar" -msgstr "" +msgstr "Prikaži/skrij orodno vrstico za sestavljanje" #: zrcolagui.cpp:153 +#, fuzzy msgid "Character Catalo&g" -msgstr "" +msgstr "Katalo&g znakov" #: zrcolagui.cpp:153 +#, fuzzy msgid "Toggle character catalog panel" -msgstr "" +msgstr "Prikaži/skrij katalog znakov" #: zrcolagui.cpp:156 +#, fuzzy msgid "&View" -msgstr "" +msgstr "Po&gled" #: zrcolagui.cpp:160 +#, fuzzy msgid "&Instructions..." -msgstr "" +msgstr "Navod&ila ..." #: zrcolagui.cpp:160 +#, fuzzy msgid "Open a web site with product instructions" -msgstr "" +msgstr "Odpri spletno stran z navodili izdelka" #: zrcolagui.cpp:164 +#, fuzzy msgid "Keyboard &Shortcuts..." -msgstr "" +msgstr "&Bližnjice na tipkovnici ..." #: zrcolagui.cpp:164 +#, fuzzy msgid "Open a list of keyboard shortcuts" -msgstr "" +msgstr "Odpri seznam bližnjic na tipkovnici" #: zrcolagui.cpp:170 +#, fuzzy msgid "&Request a new character..." -msgstr "" +msgstr "&Zahtevaj nov znak ..." #: zrcolagui.cpp:170 +#, fuzzy msgid "Submit a request to ZRC to add a new character" -msgstr "" +msgstr "Oddaj prošnjo ZRC-u za dodajanje novega znaka" #: zrcolagui.cpp:174 +#, fuzzy msgid "Check for &Updates..." -msgstr "" +msgstr "Preveri za &posodobitev ..." #: zrcolagui.cpp:174 +#, fuzzy msgid "Check online for product update" -msgstr "" +msgstr "Preveri na spletu za posodobitev izdelka" #: zrcolagui.cpp:180 +#, fuzzy msgid "&About..." -msgstr "" +msgstr "O programu ..." #: zrcolagui.cpp:183 +#, fuzzy msgid "&Help" -msgstr "" +msgstr "Po&moč" #: zrcolagui.cpp:188 +#, fuzzy msgid "Cut" -msgstr "" +msgstr "Izreži" #: zrcolagui.cpp:188 +#, fuzzy msgid "Cut selection" -msgstr "" +msgstr "Izreži izbor" #: zrcolagui.cpp:190 +#, fuzzy msgid "Copy" -msgstr "" +msgstr "&Kopiraj" #: zrcolagui.cpp:190 +#, fuzzy msgid "Copy selection" -msgstr "" +msgstr "Kopiraj izbor" #: zrcolagui.cpp:192 +#, fuzzy msgid "Paste" -msgstr "" +msgstr "Prilepi" #: zrcolagui.cpp:192 +#, fuzzy msgid "Paste selection" -msgstr "" +msgstr "Prilepi izbor" #: zrcolagui.cpp:195 +#, fuzzy msgid "Edit" -msgstr "" +msgstr "Urejanje" #: zrcolagui.cpp:198 +#, fuzzy msgid "Find Character" -msgstr "" +msgstr "Poišči znak" #: zrcolagui.cpp:200 +#, fuzzy msgid "Send Composed" -msgstr "" +msgstr "Pošlji sestavljeno" #: zrcolagui.cpp:202 +#, fuzzy msgid "Send Decomposed" -msgstr "" - -#: zrcolagui.cpp:205 -msgid "Compose" -msgstr "" +msgstr "Pošlji razstavljeno" #: zrcolagui.cpp:209 -msgid "Character Catalog" -msgstr "" +#, fuzzy +msgid "Compose" +msgstr "Sestavljanje" #: zrcolagui.cpp:213 +#, fuzzy +msgid "Character Catalog" +msgstr "Katalog znakov" + +#: zrcolagui.cpp:217 +#, fuzzy msgid "(De)Composer" -msgstr "" +msgstr "Raz/Sestavljalnik" -#: zrcolagui.cpp:252 +#: zrcolagui.cpp:258 +#, fuzzy msgid "Decomposed Text" -msgstr "" +msgstr "Razstavljeno besedilo" -#: zrcolagui.cpp:272 +#: zrcolagui.cpp:278 +#, fuzzy msgid "Decomposed Unicode Dump" -msgstr "" +msgstr "Unicode razstavljenega" -#: zrcolagui.cpp:299 +#: zrcolagui.cpp:305 +#, fuzzy msgid "Composed Text" -msgstr "" +msgstr "Sestavljeno besedilo" -#: zrcolagui.cpp:319 +#: zrcolagui.cpp:325 +#, fuzzy msgid "Composed Unicode Dump" -msgstr "" +msgstr "Unicode sestavljenega" -#: zrcolagui.cpp:373 +#: zrcolagui.cpp:379 +#, fuzzy msgid "Select category to display" -msgstr "" +msgstr "Izberi kategorijo za prikaz" -#: zrcolagui.cpp:407 +#: zrcolagui.cpp:413 +#, fuzzy msgid "Show &All" -msgstr "" +msgstr "Prik&aži vse" -#: zrcolagui.cpp:408 +#: zrcolagui.cpp:414 +#, fuzzy msgid "Toggle display of less frequent characters" -msgstr "" +msgstr "Prikaži/skrij manj pogoste znake" -#: zrcolagui.cpp:448 +#: zrcolagui.cpp:454 +#, fuzzy msgid "&Browse" -msgstr "" +msgstr "Pre&brskaj" -#: zrcolagui.cpp:455 +#: zrcolagui.cpp:461 +#, fuzzy msgid "Full or partial terms from Unicode character description (in English) to search for" -msgstr "" +msgstr "Polne ali delne besede iz opisa znaka Unicode (v angleščini) za iskanje" -#: zrcolagui.cpp:459 +#: zrcolagui.cpp:465 +#, fuzzy msgid "Search Options" -msgstr "" +msgstr "Možnosti iskanja" -#: zrcolagui.cpp:460 +#: zrcolagui.cpp:466 +#, fuzzy msgid "Shows/hides additional search options" -msgstr "" +msgstr "Prikaže/skrije dodatne možnosti iskanja" -#: zrcolagui.cpp:472 +#: zrcolagui.cpp:478 +#, fuzzy msgid "List of Unicode character categories to search in" -msgstr "" - -#: zrcolagui.cpp:479 -msgid "All" -msgstr "" - -#: zrcolagui.cpp:480 -msgid "Select all categories" -msgstr "" - -#: zrcolagui.cpp:484 -msgid "None" -msgstr "" +msgstr "Seznam kategorij znaka Unicode za iskanje" #: zrcolagui.cpp:485 -msgid "Clear category selection" -msgstr "" +#, fuzzy +msgid "All" +msgstr "Vse" -#: zrcolagui.cpp:489 -msgid "Invert" -msgstr "" +#: zrcolagui.cpp:486 +#, fuzzy +msgid "Select all categories" +msgstr "Izberi vse kategorije" #: zrcolagui.cpp:490 +#, fuzzy +msgid "None" +msgstr "Nič" + +#: zrcolagui.cpp:491 +#, fuzzy +msgid "Clear category selection" +msgstr "Počisti izbor kategorij" + +#: zrcolagui.cpp:495 +#, fuzzy +msgid "Invert" +msgstr "Obrni" + +#: zrcolagui.cpp:496 +#, fuzzy msgid "Invert category selection" -msgstr "" +msgstr "Obrni izbor kategorij" -#: zrcolagui.cpp:529 +#: zrcolagui.cpp:535 +#, fuzzy msgid "Character search results" -msgstr "" +msgstr "Rezultati iskanja znakov" -#: zrcolagui.cpp:539 +#: zrcolagui.cpp:545 +#, fuzzy msgid "Re¢ly Used" -msgstr "" +msgstr "Nedavno &uporabljeni" -#: zrcolagui.cpp:567 +#: zrcolagui.cpp:573 +#, fuzzy msgid "List of recently inserted characters" -msgstr "" +msgstr "Seznam nedavno vstavljenih znakov" -#: zrcolagui.cpp:581 +#: zrcolagui.cpp:587 +#, fuzzy msgid "Preview" -msgstr "" +msgstr "Predogled:" -#: zrcolagui.cpp:586 +#: zrcolagui.cpp:592 +#, fuzzy msgid "U+" -msgstr "" +msgstr "U+" -#: zrcolagui.cpp:591 +#: zrcolagui.cpp:597 +#, fuzzy msgid "Unicode hexadecimal code" -msgstr "" +msgstr "Šestnajstiška koda Unicode" -#: zrcolagui.cpp:596 +#: zrcolagui.cpp:602 +#, fuzzy msgid "Keyboard shortcut in Composer window" -msgstr "" +msgstr "Bližnjica na tipkovnici v oknu sestavljalnika" -#: zrcolagui.cpp:631 +#: zrcolagui.cpp:637 +#, fuzzy msgid "Character preview" -msgstr "" +msgstr "Predogled znaka" -#: zrcolagui.cpp:636 +#: zrcolagui.cpp:642 +#, fuzzy msgid "Unicode character description" -msgstr "" +msgstr "Opis znaka Unicode" -#: zrcolagui.cpp:641 +#: zrcolagui.cpp:647 msgid "Character tags" msgstr "" -#: zrcolagui.cpp:646 +#: zrcolagui.cpp:652 +#, fuzzy msgid "Unicode character category" -msgstr "" - -#: zrcolagui.cpp:653 -msgid "« Back" -msgstr "" - -#: zrcolagui.cpp:655 -msgid "To previously viewed character" -msgstr "" +msgstr "Kategorija znaka Unicode" #: zrcolagui.cpp:659 -msgid "Forward »" -msgstr "" +#, fuzzy +msgid "« Back" +msgstr "< &Nazaj" #: zrcolagui.cpp:661 +#, fuzzy +msgid "To previously viewed character" +msgstr "Na prejšnji prikazan znak" + +#: zrcolagui.cpp:665 +#, fuzzy +msgid "Forward »" +msgstr "Naprej »" + +#: zrcolagui.cpp:667 +#, fuzzy msgid "To following viewed character" -msgstr "" +msgstr "Na naslednji prikazan znak" -#: zrcolagui.cpp:672 +#: zrcolagui.cpp:678 +#, fuzzy msgid "Re&lated" -msgstr "" +msgstr "&Sorodni" -#: zrcolagui.cpp:699 +#: zrcolagui.cpp:705 +#, fuzzy msgid "List of related characters" -msgstr "" +msgstr "Seznam sorodnih znakov" -#: zrcolagui.cpp:790 +#: zrcolagui.cpp:794 +#, fuzzy msgid "" "Some character native to specific language you are working with should not decompose to primitives.\n" "For optimal decomposition you should set the language correctly." msgstr "" +"Nekateri znaki iz posameznih jezikov, s katerimi delate, se ne smejo razstaviti v dele.\n" +"Za optimalno razstavljanje izberite pravilni jezik." -#: zrcolagui.cpp:794 +#: zrcolagui.cpp:798 +#, fuzzy msgid "Select language &automatically according to selected keyboard" -msgstr "" +msgstr "S&amodejno izberi jezik glede na izbrano tipkovnico" -#: zrcolagui.cpp:797 +#: zrcolagui.cpp:801 +#, fuzzy msgid "&Manually select the language from the list below:" -msgstr "" +msgstr "Ročno izberi jezik na spodnje&m spisku:" -#: zrcolagui.cpp:809 +#: zrcolagui.cpp:812 +#, fuzzy msgid "Text Language" -msgstr "" +msgstr "Jezik besedila" -#: zrcolagui.cpp:816 -msgid "" -"ZRCola offers multiple text transformations that can be arranged in a sequence.\n" -"Please select desired transformations and the order they are applied." -msgstr "" - -#: zrcolagui.cpp:831 -msgid "A&vailable:" -msgstr "" - -#: zrcolagui.cpp:844 -msgid ">" -msgstr "" - -#: zrcolagui.cpp:847 -msgid "<" -msgstr "" - -#: zrcolagui.cpp:856 -msgid "&Active:" -msgstr "" - -#: zrcolagui.cpp:872 -msgid "Up" -msgstr "" - -#: zrcolagui.cpp:875 -msgid "Down" -msgstr "" - -#: zrcolagui.cpp:885 -msgid "Transformation" -msgstr "" - -#: zrcolagui.cpp:892 +#: zrcolagui.cpp:817 +#, fuzzy msgid "" "ZRCola can be launched every time you log in to your computer.\n" "It will be available on the system tray and via registered shortcuts Win+F5 and Win+F6." msgstr "" +"ZRCola se lahko zažene ob vsaki prijavi v vaš računalnik.\n" +"Na voljo bo na vrstici za sistemska obvestila ter preko registriranih bližnjic Win+F5 in Win+F6." -#: zrcolagui.cpp:896 +#: zrcolagui.cpp:821 +#, fuzzy msgid "Start ZRCola &automatically on logon" -msgstr "" +msgstr "S&amodejno zaženi ZRColo ob prijavi" -#: zrcolagui.cpp:903 +#: zrcolagui.cpp:827 +#, fuzzy msgid "Startup" -msgstr "" +msgstr "Zagon" -#: zrcolagui.cpp:991 +#: zrcolagui.cpp:905 msgid "" "Program and Website Editor: Janoš Ježovnik\n" "Development: Amebis, d. o. o., Kamnik\n" @@ -502,100 +575,163 @@ msgid "" "Development and maintenance of the original program (2004–2015): Peter Weiss" msgstr "" -#: zrcolagui.cpp:999 +#: zrcolagui.cpp:913 +#, fuzzy msgid "zrcola.zrc-sazu.si" -msgstr "" +msgstr "zrcola.zrc-sazu.si" -#: zrcolagui.cpp:1005 +#: zrcolagui.cpp:919 msgid "Texts made using ZRCola have to include in a footnote or some other appropriate part of the publication the note below:" msgstr "" -#: zrcolagui.cpp:1009 +#: zrcolagui.cpp:923 +#, fuzzy msgid "This text was written using the ZRCola input system (http://zrcola.zrc-sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana (http://www.zrc-sazu.si) by Peter Weiss." -msgstr "" +msgstr "Besedilo je bilo pripravljeno z vnašalnim sistemom ZRCola (http://zrcola.zrc-sazu.si), ki ga je na Znanstvenoraziskovalnem centru SAZU v Ljubljani (http://www.zrc-sazu.si) razvil dr. Peter Weiss." -#: zrcolagui.cpp:1050 +#: zrcolagui.cpp:964 +#, fuzzy msgid "Log" -msgstr "" +msgstr "Dnevnik" -#: zrcolagui.cpp:1066 +#: zrcolagui.cpp:980 +#, fuzzy msgid "Quit and &Update..." -msgstr "" +msgstr "Za&ustavi in posodobi ..." -#: zrcolagui.cpp:1068 +#: zrcolagui.cpp:982 +#, fuzzy msgid "Exit this program and launch product update" -msgstr "" +msgstr "Zaustavi ta program in zaženi posodobitev izdelka" -#: zrcolagui.cpp:1072 +#: zrcolagui.cpp:986 +#, fuzzy msgid "&Close" -msgstr "" +msgstr "&Zapri" -#: zrcolagui.cpp:1073 +#: zrcolagui.cpp:987 +#, fuzzy msgid "Close this window" -msgstr "" +msgstr "Zapri to okno" -#: zrcolagui.cpp:1112 +#: zrcolagui.cpp:1026 +#, fuzzy msgid "Enter the &character you would like to request:" -msgstr "" +msgstr "Vpišite &znak, ki ga želite zahtevati:" -#: zrcolagui.cpp:1119 +#: zrcolagui.cpp:1033 +#, fuzzy msgid "Decomposed character to request" -msgstr "" +msgstr "Razstavljen znak, ki ga zahtevate" -#: zrcolagui.cpp:1123 +#: zrcolagui.cpp:1037 +#, fuzzy msgid "" "Please, use the decomposed form.\n" "You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste it from the Decomposed window." msgstr "" +"Uporabite razstavljeno obliko.\n" +"Za vnos znaka lahko uporavite ZRColine bližnjice na tipkovnici ali kopirate in prilepite iz okna z razstavljenim besedilom." -#: zrcolagui.cpp:1133 +#: zrcolagui.cpp:1047 +#, fuzzy msgid "The &context, examples or description why and where the character is required:" -msgstr "" +msgstr "&Kontekst, primeri oz. kratek opis zakaj in kje potrebujete novi znak:" -#: zrcolagui.cpp:1139 +#: zrcolagui.cpp:1053 +#, fuzzy msgid "Additional notes for character request" -msgstr "" +msgstr "Dodatne opombe za zahtevo znaka" -#: zrcolagui.cpp:1146 +#: zrcolagui.cpp:1060 msgid "" "After clicking OK button, your e-mail application should open allowing you to submit the new character request to ZRCola Editor.\n" "Your e-mail application might not display all the characters correctly, but the Editor will be able to read them correctly anyway." msgstr "" +#: zrcolagui.cpp:1102 +msgid "Translation" +msgstr "" + +#: zrcolagui.cpp:1104 +msgid "" +"ZRCola offers multiple text translations that can be arranged in a sequence.\n" +"Please select desired translations and the order they are applied." +msgstr "" + +#: zrcolagui.cpp:1114 +msgid "A&vailable:" +msgstr "" + +#: zrcolagui.cpp:1129 +msgid ">" +msgstr "" + +#: zrcolagui.cpp:1132 +msgid "<" +msgstr "" + +#: zrcolagui.cpp:1141 +msgid "&Selected:" +msgstr "" + +#: zrcolagui.cpp:1159 +#, fuzzy +msgid "Up" +msgstr "Up" + +#: zrcolagui.cpp:1162 +#, fuzzy +msgid "Down" +msgstr "Down" + +#: zrcolagui.h:250 +#, fuzzy +msgid "Character Search" +msgstr "Poišči znak" + +#: zrcolagui.h:286 +#, fuzzy +msgid "Settings" +msgstr "Nastavitve" + +#: zrcolagui.h:312 +#, fuzzy +msgid "About ZRCola" +msgstr "O ZRColi" + +#: zrcolagui.h:337 zrcolaupdater.cpp:94 +#, fuzzy +msgid "Product Update" +msgstr "Posodabljanje izdelka" + +#: zrcolagui.h:408 +msgid "Custom Translation Sequence" +msgstr "" + #: zrcolakeyhndlr.cpp:44 +#, fuzzy 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." -msgstr "" +msgstr "Pritisnjena tipka INS. Zdaj vtpikajte kodo Unicode želenega znaka (do štiri šestnajstiške števke: 0-9, A-F), nato izpustite INS." -#: zrcolasettings.cpp:90 -#, c-format -msgid "Unknown transformation (%u)" -msgstr "" - -#: zrcolasettings.cpp:181 +#: zrcolasettings.cpp:87 +#, fuzzy msgid "Start ZRCola automatically on logon" +msgstr "Samodejno zaženi ZRColo ob prijavi" + +#: zrcolatranseq.cpp:63 +#, c-format +msgid "Unknown translation (%u)" msgstr "" #: zrcolaupdater.cpp:94 +#, fuzzy msgid "" "This program will now close and the upgrade will be launched.\n" "Are you sure?" msgstr "" - -#: zrcolaupdater.cpp:94 zrcolagui.h:350 -msgid "Product Update" -msgstr "" - -#: zrcolagui.h:248 -msgid "Character Search" -msgstr "" - -#: zrcolagui.h:299 -msgid "Settings" -msgstr "" - -#: zrcolagui.h:325 -msgid "About ZRCola" -msgstr "" +"Ta program se bo zdaj zaprl in zagnala se bo posodobitev.\n" +"Ali ste prepričani?" #: MSIBuild/en_US.Win32.Release.Control-2.idtx:4 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:10 @@ -603,28 +739,33 @@ msgstr "" #: MSIBuild/en_US.x64.Release.Control-2.idtx:4 #: MSIBuild/en_US.x64.Release.Control-2.idtx:10 #: MSIBuild/en_US.x64.Release.Control-2.idtx:15 +#, fuzzy msgid "binUIHeader.bmp" -msgstr "" +msgstr "binUIHeader.bmp" #: MSIBuild/en_US.Win32.Release.Control-2.idtx:5 #: MSIBuild/en_US.x64.Release.Control-2.idtx:5 +#, fuzzy msgid "[DlgTitleFont][SimpleProductName] Tutorial : Starting" -msgstr "" +msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Zagon" #: MSIBuild/en_US.Win32.Release.Control-2.idtx:6 #: MSIBuild/en_US.x64.Release.Control-2.idtx:6 +#, fuzzy msgid "bintutorial1.bmp" -msgstr "" +msgstr "bintutorial1.bmp" #: MSIBuild/en_US.Win32.Release.Control-2.idtx:7 #: MSIBuild/en_US.x64.Release.Control-2.idtx:7 +#, fuzzy msgid "When configured, ZRCola starts at system startup and runs in the background. If needed, it can be brought up by pressing the combination Win+F5." -msgstr "" +msgstr "Če jo tako nastavimo, se ZRCola zažene samodejno in teče v ozadju. V ospredje jo prikličemo s pritiskom na bližnjico Win+F5." #: MSIBuild/en_US.Win32.Release.Control-2.idtx:8 #: MSIBuild/en_US.x64.Release.Control-2.idtx:8 +#, fuzzy msgid "IMPORTANT: Upon pressing the combination Win+F5 the program memorises the location of the cursor in the text. If ZRCola is brought to the foreground without using the aforementioned combination of keys, the program won't know where to insert the special characters!" -msgstr "" +msgstr "POMEMBNO: Ob pritisku na Win+F5 si program zapomni mesto kurzorja v besedilu. Če ZRColo povečamo brez pritiska na ti dve tipki, program ne bo vedel, kam vstaviti želene znake!" #: MSIBuild/en_US.Win32.Release.Control-2.idtx:9 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:14 @@ -632,42 +773,50 @@ msgstr "" #: MSIBuild/en_US.x64.Release.Control-2.idtx:9 #: MSIBuild/en_US.x64.Release.Control-2.idtx:14 #: MSIBuild/en_US.x64.Release.Control-2.idtx:19 +#, fuzzy msgid "&Continue" -msgstr "" +msgstr "&Nadaljuj" #: MSIBuild/en_US.Win32.Release.Control-2.idtx:11 #: MSIBuild/en_US.x64.Release.Control-2.idtx:11 +#, fuzzy msgid "[DlgTitleFont][SimpleProductName] Tutorial : Composition" -msgstr "" +msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Sestavljanje" #: MSIBuild/en_US.Win32.Release.Control-2.idtx:12 #: MSIBuild/en_US.x64.Release.Control-2.idtx:12 +#, fuzzy msgid "bintutorial2.bmp" -msgstr "" +msgstr "bintutorial2.bmp" #: MSIBuild/en_US.Win32.Release.Control-2.idtx:13 #: MSIBuild/en_US.x64.Release.Control-2.idtx:13 +#, fuzzy msgid "The string of basic and substitute characters is entered into the upper input window of the program. In the window below the resulted special characters are displayed. To insert them in the text, the F5 key is used." -msgstr "" +msgstr "Želeni niz osnovnih in nadomestnih znakov vnesemo v zgornjo vrstico v programu. V spodnji vrstici se prikažejo sestavljeni znaki. V besedilo jih vnesemo s pritiskom na tipko F5." #: MSIBuild/en_US.Win32.Release.Control-2.idtx:16 #: MSIBuild/en_US.x64.Release.Control-2.idtx:16 +#, fuzzy msgid "[DlgTitleFont][SimpleProductName] Tutorial : Entering Characters" -msgstr "" +msgstr "[DlgTitleFont]Vadnica [SimpleProductName] : Vnos znakov" #: MSIBuild/en_US.Win32.Release.Control-2.idtx:17 #: MSIBuild/en_US.x64.Release.Control-2.idtx:17 +#, fuzzy msgid "bintutorial3.bmp" -msgstr "" +msgstr "bintutorial3.bmp" #: MSIBuild/en_US.Win32.Release.Control-2.idtx:18 #: MSIBuild/en_US.x64.Release.Control-2.idtx:18 +#, fuzzy msgid "Characters can be entered using keyboard shortcuts, the character catalogue (F4) or the character finding tool (F8)." -msgstr "" +msgstr "Znake lahko v vnosno vrstico vstavljamo s pomočjo bližnjic na tipkovnici, iz kataloga znakov (F4) ali z iskalnikom znakov (F8)." #: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4 #: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.x64.Release.Feature-2.idtx:4 #: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4 +#, fuzzy msgid "Input system for linguistic use" -msgstr "" +msgstr "Vnašalni sistem za jezikoslovno rabo" diff --git a/ZRCola/locale/de_DE.po b/ZRCola/locale/de_DE.po index 3efca36..77f25e5 100644 --- a/ZRCola/locale/de_DE.po +++ b/ZRCola/locale/de_DE.po @@ -1,15 +1,15 @@ msgid "" msgstr "" "Project-Id-Version: ZRCola\n" -"POT-Creation-Date: 2017-04-03 12:04+0200\n" -"PO-Revision-Date: 2017-04-03 12:05+0200\n" +"POT-Creation-Date: 2017-06-01 18:04+0200\n" +"PO-Revision-Date: 2017-06-01 18:04+0200\n" "Last-Translator: Simon Rozman \n" "Language-Team: Amebis, d. o. o., Kamnik \n" "Language: de_DE\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.0.2\n" "X-Poedit-Basepath: .\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -20,7 +20,7 @@ msgstr "" msgid "© 2004-%s ZRC SAZU" msgstr "" -#: zrcolaapp.cpp:72 zrcolafrm.cpp:92 zrcolagui.cpp:980 zrcolagui.h:106 +#: zrcolaapp.cpp:72 zrcolafrm.cpp:106 zrcolagui.cpp:894 zrcolagui.h:108 #: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4 #: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.x64.Release.Feature-2.idtx:4 @@ -28,17 +28,17 @@ msgstr "" msgid "ZRCola" msgstr "ZRCola" -#: zrcolachrreq.cpp:49 zrcolagui.cpp:1110 +#: zrcolachrreq.cpp:49 zrcolagui.cpp:1024 #, fuzzy msgid "Character" msgstr "Eingabe eines Zeichenstils" -#: zrcolachrreq.cpp:58 zrcolagui.cpp:1131 +#: zrcolachrreq.cpp:58 zrcolagui.cpp:1045 #, fuzzy msgid "Context" msgstr "Konnte den Kontext auf dem überlagerten Fenster nicht initialisieren." -#: zrcolachrreq.cpp:64 zrcolagui.h:379 +#: zrcolachrreq.cpp:64 zrcolagui.h:366 msgid "Request a New Character" msgstr "" @@ -69,24 +69,28 @@ msgstr ", " msgid "▾ Search Options" msgstr "" -#: zrcolafrm.cpp:143 +#: zrcolafrm.cpp:90 +msgid "Custom Translation..." +msgstr "" + +#: zrcolafrm.cpp:175 msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available." msgstr "" -#: zrcolafrm.cpp:143 zrcolafrm.cpp:145 +#: zrcolafrm.cpp:175 zrcolafrm.cpp:177 #, fuzzy msgid "Warning" msgstr "Warnung: " -#: zrcolafrm.cpp:145 +#: zrcolafrm.cpp:177 msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available." msgstr "" -#: zrcolafrm.cpp:362 +#: zrcolafrm.cpp:410 msgid "http://zrcola.zrc-sazu.si/en/info/instructions/" msgstr "http://zrcola.zrc-sazu.si/de/info/instructions/" -#: zrcolafrm.cpp:386 +#: zrcolafrm.cpp:434 msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" msgstr "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" @@ -239,8 +243,9 @@ msgid "Check online for product update" msgstr "" #: zrcolagui.cpp:180 +#, fuzzy msgid "&About..." -msgstr "" +msgstr "Über..." #: zrcolagui.cpp:183 #, fuzzy @@ -297,237 +302,203 @@ msgstr "Pošlji sestavljeno (F5)" msgid "Send Decomposed" msgstr "Pošlji razstavljeno (F6)" -#: zrcolagui.cpp:205 +#: zrcolagui.cpp:209 msgid "Compose" msgstr "" -#: zrcolagui.cpp:209 +#: zrcolagui.cpp:213 msgid "Character Catalog" msgstr "" -#: zrcolagui.cpp:213 +#: zrcolagui.cpp:217 msgid "(De)Composer" msgstr "" -#: zrcolagui.cpp:252 +#: zrcolagui.cpp:258 msgid "Decomposed Text" msgstr "" -#: zrcolagui.cpp:272 +#: zrcolagui.cpp:278 msgid "Decomposed Unicode Dump" msgstr "" -#: zrcolagui.cpp:299 +#: zrcolagui.cpp:305 msgid "Composed Text" msgstr "" -#: zrcolagui.cpp:319 +#: zrcolagui.cpp:325 msgid "Composed Unicode Dump" msgstr "" -#: zrcolagui.cpp:373 +#: zrcolagui.cpp:379 msgid "Select category to display" msgstr "" -#: zrcolagui.cpp:407 +#: zrcolagui.cpp:413 #, fuzzy msgid "Show &All" msgstr "Alles zeigen" -#: zrcolagui.cpp:408 +#: zrcolagui.cpp:414 msgid "Toggle display of less frequent characters" msgstr "" -#: zrcolagui.cpp:448 +#: zrcolagui.cpp:454 #, fuzzy msgid "&Browse" msgstr "Durchsuchen" -#: zrcolagui.cpp:455 +#: zrcolagui.cpp:461 msgid "Full or partial terms from Unicode character description (in English) to search for" msgstr "" -#: zrcolagui.cpp:459 +#: zrcolagui.cpp:465 msgid "Search Options" msgstr "" -#: zrcolagui.cpp:460 +#: zrcolagui.cpp:466 msgid "Shows/hides additional search options" msgstr "" -#: zrcolagui.cpp:472 +#: zrcolagui.cpp:478 msgid "List of Unicode character categories to search in" msgstr "" -#: zrcolagui.cpp:479 +#: zrcolagui.cpp:485 #, fuzzy msgid "All" msgstr "Alle" -#: zrcolagui.cpp:480 +#: zrcolagui.cpp:486 msgid "Select all categories" msgstr "" -#: zrcolagui.cpp:484 -#, fuzzy -msgid "None" -msgstr "Kein" - -#: zrcolagui.cpp:485 -#, fuzzy -msgid "Clear category selection" -msgstr "Auswahl kopieren" - -#: zrcolagui.cpp:489 -msgid "Invert" -msgstr "" - #: zrcolagui.cpp:490 #, fuzzy +msgid "None" +msgstr "Kein" + +#: zrcolagui.cpp:491 +#, fuzzy +msgid "Clear category selection" +msgstr "Auswahl kopieren" + +#: zrcolagui.cpp:495 +msgid "Invert" +msgstr "" + +#: zrcolagui.cpp:496 +#, fuzzy msgid "Invert category selection" msgstr "Auswahl einfügen" -#: zrcolagui.cpp:529 +#: zrcolagui.cpp:535 #, fuzzy msgid "Character search results" msgstr "Skupine &znakov" -#: zrcolagui.cpp:539 +#: zrcolagui.cpp:545 msgid "Re¢ly Used" msgstr "" -#: zrcolagui.cpp:567 +#: zrcolagui.cpp:573 msgid "List of recently inserted characters" msgstr "" -#: zrcolagui.cpp:581 +#: zrcolagui.cpp:587 #, fuzzy msgid "Preview" msgstr " Vorschau" -#: zrcolagui.cpp:586 +#: zrcolagui.cpp:592 msgid "U+" msgstr "U+" -#: zrcolagui.cpp:591 +#: zrcolagui.cpp:597 msgid "Unicode hexadecimal code" msgstr "" -#: zrcolagui.cpp:596 +#: zrcolagui.cpp:602 msgid "Keyboard shortcut in Composer window" msgstr "" -#: zrcolagui.cpp:631 +#: zrcolagui.cpp:637 #, fuzzy msgid "Character preview" msgstr "Skupine &znakov" -#: zrcolagui.cpp:636 +#: zrcolagui.cpp:642 msgid "Unicode character description" msgstr "" -#: zrcolagui.cpp:641 +#: zrcolagui.cpp:647 #, fuzzy msgid "Character tags" msgstr "Eingabe eines Zeichenstils" -#: zrcolagui.cpp:646 +#: zrcolagui.cpp:652 msgid "Unicode character category" msgstr "" -#: zrcolagui.cpp:653 -#, fuzzy -msgid "« Back" -msgstr "< &Zurück" - -#: zrcolagui.cpp:655 -msgid "To previously viewed character" -msgstr "" - #: zrcolagui.cpp:659 #, fuzzy +msgid "« Back" +msgstr "< &Zurück" + +#: zrcolagui.cpp:661 +msgid "To previously viewed character" +msgstr "" + +#: zrcolagui.cpp:665 +#, fuzzy msgid "Forward »" msgstr "&Vorwärts" -#: zrcolagui.cpp:661 +#: zrcolagui.cpp:667 msgid "To following viewed character" msgstr "" -#: zrcolagui.cpp:672 +#: zrcolagui.cpp:678 msgid "Re&lated" msgstr "" -#: zrcolagui.cpp:699 +#: zrcolagui.cpp:705 msgid "List of related characters" msgstr "" -#: zrcolagui.cpp:790 +#: zrcolagui.cpp:794 msgid "" "Some character native to specific language you are working with should not decompose to primitives.\n" "For optimal decomposition you should set the language correctly." msgstr "" -#: zrcolagui.cpp:794 +#: zrcolagui.cpp:798 msgid "Select language &automatically according to selected keyboard" msgstr "" -#: zrcolagui.cpp:797 +#: zrcolagui.cpp:801 msgid "&Manually select the language from the list below:" msgstr "" -#: zrcolagui.cpp:809 +#: zrcolagui.cpp:812 msgid "Text Language" msgstr "" -#: zrcolagui.cpp:816 -msgid "" -"ZRCola offers multiple text transformations that can be arranged in a sequence.\n" -"Please select desired transformations and the order they are applied." -msgstr "" - -#: zrcolagui.cpp:831 -msgid "A&vailable:" -msgstr "" - -#: zrcolagui.cpp:844 -msgid ">" -msgstr ">" - -#: zrcolagui.cpp:847 -msgid "<" -msgstr "<" - -#: zrcolagui.cpp:856 -msgid "&Active:" -msgstr "" - -#: zrcolagui.cpp:872 -msgid "Up" -msgstr "" - -#: zrcolagui.cpp:875 -msgid "Down" -msgstr "" - -#: zrcolagui.cpp:885 -msgid "Transformation" -msgstr "" - -#: zrcolagui.cpp:892 +#: zrcolagui.cpp:817 msgid "" "ZRCola can be launched every time you log in to your computer.\n" "It will be available on the system tray and via registered shortcuts Win+F5 and Win+F6." msgstr "" -#: zrcolagui.cpp:896 +#: zrcolagui.cpp:821 msgid "Start ZRCola &automatically on logon" msgstr "" -#: zrcolagui.cpp:903 +#: zrcolagui.cpp:827 msgid "Startup" msgstr "" -#: zrcolagui.cpp:991 +#: zrcolagui.cpp:905 msgid "" "Program and Website Editor: Janoš Ježovnik\n" "Development: Amebis, d. o. o., Kamnik\n" @@ -536,81 +507,140 @@ msgid "" "Development and maintenance of the original program (2004–2015): Peter Weiss" msgstr "" -#: zrcolagui.cpp:999 +#: zrcolagui.cpp:913 +#, fuzzy msgid "zrcola.zrc-sazu.si" -msgstr "" +msgstr "http://zrcola.zrc-sazu.si/de/info/instructions/" -#: zrcolagui.cpp:1005 +#: zrcolagui.cpp:919 msgid "Texts made using ZRCola have to include in a footnote or some other appropriate part of the publication the note below:" msgstr "" -#: zrcolagui.cpp:1009 +#: zrcolagui.cpp:923 msgid "This text was written using the ZRCola input system (http://zrcola.zrc-sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana (http://www.zrc-sazu.si) by Peter Weiss." msgstr "" -#: zrcolagui.cpp:1050 +#: zrcolagui.cpp:964 #, fuzzy msgid "Log" msgstr "&Log" -#: zrcolagui.cpp:1066 +#: zrcolagui.cpp:980 #, fuzzy msgid "Quit and &Update..." msgstr "Kann Benutzer-Konfigurationsdatei nicht aktualisieren." -#: zrcolagui.cpp:1068 +#: zrcolagui.cpp:982 msgid "Exit this program and launch product update" msgstr "" -#: zrcolagui.cpp:1072 +#: zrcolagui.cpp:986 #, fuzzy msgid "&Close" msgstr "&Schließen" -#: zrcolagui.cpp:1073 +#: zrcolagui.cpp:987 #, fuzzy msgid "Close this window" msgstr "Fenster schließen" -#: zrcolagui.cpp:1112 +#: zrcolagui.cpp:1026 msgid "Enter the &character you would like to request:" msgstr "" -#: zrcolagui.cpp:1119 +#: zrcolagui.cpp:1033 msgid "Decomposed character to request" msgstr "" -#: zrcolagui.cpp:1123 +#: zrcolagui.cpp:1037 msgid "" "Please, use the decomposed form.\n" "You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste it from the Decomposed window." msgstr "" -#: zrcolagui.cpp:1133 +#: zrcolagui.cpp:1047 msgid "The &context, examples or description why and where the character is required:" msgstr "" -#: zrcolagui.cpp:1139 +#: zrcolagui.cpp:1053 msgid "Additional notes for character request" msgstr "" -#: zrcolagui.cpp:1146 +#: zrcolagui.cpp:1060 msgid "" "After clicking OK button, your e-mail application should open allowing you to submit the new character request to ZRCola Editor.\n" "Your e-mail application might not display all the characters correctly, but the Editor will be able to read them correctly anyway." msgstr "" +#: zrcolagui.cpp:1102 +msgid "Translation" +msgstr "" + +#: zrcolagui.cpp:1104 +msgid "" +"ZRCola offers multiple text translations that can be arranged in a sequence.\n" +"Please select desired translations and the order they are applied." +msgstr "" + +#: zrcolagui.cpp:1114 +msgid "A&vailable:" +msgstr "" + +#: zrcolagui.cpp:1129 +msgid ">" +msgstr ">" + +#: zrcolagui.cpp:1132 +msgid "<" +msgstr "<" + +#: zrcolagui.cpp:1141 +#, fuzzy +msgid "&Selected:" +msgstr "Izreže izbrano besedilo in ga shrani na odložišče" + +#: zrcolagui.cpp:1159 +#, fuzzy +msgid "Up" +msgstr "Up" + +#: zrcolagui.cpp:1162 +#, fuzzy +msgid "Down" +msgstr "Down" + +#: zrcolagui.h:250 +#, fuzzy +msgid "Character Search" +msgstr "Skupine &znakov" + +#: zrcolagui.h:286 +msgid "Settings" +msgstr "" + +#: zrcolagui.h:312 +msgid "About ZRCola" +msgstr "" + +#: zrcolagui.h:337 zrcolaupdater.cpp:94 +msgid "Product Update" +msgstr "" + +#: zrcolagui.h:408 +msgid "Custom Translation Sequence" +msgstr "" + #: 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." msgstr "" -#: zrcolasettings.cpp:90 -#, c-format -msgid "Unknown transformation (%u)" +#: zrcolasettings.cpp:87 +msgid "Start ZRCola automatically on logon" msgstr "" -#: zrcolasettings.cpp:181 -msgid "Start ZRCola automatically on logon" +#: zrcolatranseq.cpp:63 +#, c-format +msgid "Unknown translation (%u)" msgstr "" #: zrcolaupdater.cpp:94 @@ -619,23 +649,6 @@ msgid "" "Are you sure?" msgstr "" -#: zrcolaupdater.cpp:94 zrcolagui.h:350 -msgid "Product Update" -msgstr "" - -#: zrcolagui.h:248 -#, fuzzy -msgid "Character Search" -msgstr "Skupine &znakov" - -#: zrcolagui.h:299 -msgid "Settings" -msgstr "" - -#: zrcolagui.h:325 -msgid "About ZRCola" -msgstr "" - #: MSIBuild/en_US.Win32.Release.Control-2.idtx:4 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:10 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:15 @@ -673,7 +686,7 @@ msgstr "" #: MSIBuild/en_US.x64.Release.Control-2.idtx:19 #, fuzzy msgid "&Continue" -msgstr "Konnte den Kontext auf dem überlagerten Fenster nicht initialisieren." +msgstr "Auf Volume \"[2]\" steht nicht genügend Speicherplatz für die Installation bei aktivierter Wiederherstellungsoption zur Verfügung. [3] KB sind erforderlich, aber nur [4] KB sind verfügbar. Klicken Sie auf \"Ignorieren\", um die Installation ohne Speicherung von Wiederherstellungsinformationen fortzusetzen, klicken Sie auf \"Wiederholen\", um den verfügbaren Speicher erneut zu überprüfen oder auf \"Abbrechen\", um die Installation abzubrechen." #: MSIBuild/en_US.Win32.Release.Control-2.idtx:11 #: MSIBuild/en_US.x64.Release.Control-2.idtx:11 diff --git a/ZRCola/locale/ru_RU.po b/ZRCola/locale/ru_RU.po index 719da73..f983a7c 100644 --- a/ZRCola/locale/ru_RU.po +++ b/ZRCola/locale/ru_RU.po @@ -1,15 +1,15 @@ msgid "" msgstr "" "Project-Id-Version: ZRCola\n" -"POT-Creation-Date: 2017-04-03 12:04+0200\n" -"PO-Revision-Date: 2017-04-03 12:04+0200\n" +"POT-Creation-Date: 2017-06-01 18:04+0200\n" +"PO-Revision-Date: 2017-06-01 18:05+0200\n" "Last-Translator: Simon Rozman \n" "Language-Team: Amebis, d. o. o., Kamnik \n" "Language: ru_RU\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.0.2\n" "X-Poedit-Basepath: .\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -20,7 +20,7 @@ msgstr "" msgid "© 2004-%s ZRC SAZU" msgstr "© 2004–%s ZRC SAZU" -#: zrcolaapp.cpp:72 zrcolafrm.cpp:92 zrcolagui.cpp:980 zrcolagui.h:106 +#: zrcolaapp.cpp:72 zrcolafrm.cpp:106 zrcolagui.cpp:894 zrcolagui.h:108 #: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4 #: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.x64.Release.Feature-2.idtx:4 @@ -28,15 +28,15 @@ msgstr "© 2004–%s ZRC SAZU" msgid "ZRCola" msgstr "ZRCola" -#: zrcolachrreq.cpp:49 zrcolagui.cpp:1110 +#: zrcolachrreq.cpp:49 zrcolagui.cpp:1024 msgid "Character" msgstr "Знак" -#: zrcolachrreq.cpp:58 zrcolagui.cpp:1131 +#: zrcolachrreq.cpp:58 zrcolagui.cpp:1045 msgid "Context" msgstr "Контекст" -#: zrcolachrreq.cpp:64 zrcolagui.h:379 +#: zrcolachrreq.cpp:64 zrcolagui.h:366 msgid "Request a New Character" msgstr "Запрос нового знака" @@ -66,23 +66,27 @@ msgstr ", " msgid "▾ Search Options" msgstr "▾ Опции поиска" -#: zrcolafrm.cpp:143 +#: zrcolafrm.cpp:90 +msgid "Custom Translation..." +msgstr "" + +#: zrcolafrm.cpp:175 msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available." msgstr "Сочетание клавиш Win+F5 регистрировать. Некоторые функциональности не будут доступны." -#: zrcolafrm.cpp:143 zrcolafrm.cpp:145 +#: zrcolafrm.cpp:175 zrcolafrm.cpp:177 msgid "Warning" msgstr "Предупреждение" -#: zrcolafrm.cpp:145 +#: zrcolafrm.cpp:177 msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available." msgstr "Сочетание клавиш Win+F6 невозможно регистрировать. Некоторые функциональности не будут доступны." -#: zrcolafrm.cpp:362 +#: zrcolafrm.cpp:410 msgid "http://zrcola.zrc-sazu.si/en/info/instructions/" msgstr "http://zrcola.zrc-sazu.si/ru/info/instructions/" -#: zrcolafrm.cpp:386 +#: zrcolafrm.cpp:434 msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" msgstr "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" @@ -274,159 +278,159 @@ msgstr "Послать составленное (F5)" msgid "Send Decomposed" msgstr "Послать разобранное (F6)" -#: zrcolagui.cpp:205 +#: zrcolagui.cpp:209 msgid "Compose" msgstr "Составить" -#: zrcolagui.cpp:209 +#: zrcolagui.cpp:213 msgid "Character Catalog" msgstr "Список знаков" -#: zrcolagui.cpp:213 +#: zrcolagui.cpp:217 msgid "(De)Composer" msgstr "(Де)Композитор" -#: zrcolagui.cpp:252 +#: zrcolagui.cpp:258 msgid "Decomposed Text" msgstr "Разобранний текст" -#: zrcolagui.cpp:272 +#: zrcolagui.cpp:278 msgid "Decomposed Unicode Dump" msgstr "Дамп разобранного Юнукода" -#: zrcolagui.cpp:299 +#: zrcolagui.cpp:305 msgid "Composed Text" msgstr "Составленный текст" -#: zrcolagui.cpp:319 +#: zrcolagui.cpp:325 msgid "Composed Unicode Dump" msgstr "Дамп составленного Юникода" -#: zrcolagui.cpp:373 +#: zrcolagui.cpp:379 msgid "Select category to display" msgstr "Выделить категории для отображения" -#: zrcolagui.cpp:407 +#: zrcolagui.cpp:413 msgid "Show &All" msgstr "Показать &все" -#: zrcolagui.cpp:408 +#: zrcolagui.cpp:414 msgid "Toggle display of less frequent characters" msgstr "Переключить отображение редко использованных знаков" -#: zrcolagui.cpp:448 +#: zrcolagui.cpp:454 msgid "&Browse" msgstr "&Обзор" -#: zrcolagui.cpp:455 +#: zrcolagui.cpp:461 msgid "Full or partial terms from Unicode character description (in English) to search for" msgstr "Полное либо частичное описание знака Юникод (на английском) для поиска" -#: zrcolagui.cpp:459 +#: zrcolagui.cpp:465 msgid "Search Options" msgstr "Опции поиска" -#: zrcolagui.cpp:460 +#: zrcolagui.cpp:466 msgid "Shows/hides additional search options" msgstr "Показать/скрыть дополнительные опции поиска" -#: zrcolagui.cpp:472 +#: zrcolagui.cpp:478 msgid "List of Unicode character categories to search in" msgstr "Список категории Юникод для проведения поиска" -#: zrcolagui.cpp:479 +#: zrcolagui.cpp:485 msgid "All" msgstr "Все" -#: zrcolagui.cpp:480 +#: zrcolagui.cpp:486 msgid "Select all categories" msgstr "Выбрать все категории" -#: zrcolagui.cpp:484 +#: zrcolagui.cpp:490 msgid "None" msgstr "Ничего" -#: zrcolagui.cpp:485 +#: zrcolagui.cpp:491 msgid "Clear category selection" msgstr "Очистить выбор категории" -#: zrcolagui.cpp:489 +#: zrcolagui.cpp:495 msgid "Invert" msgstr "Обратить" -#: zrcolagui.cpp:490 +#: zrcolagui.cpp:496 msgid "Invert category selection" msgstr "Обратить выбор категории" -#: zrcolagui.cpp:529 +#: zrcolagui.cpp:535 msgid "Character search results" msgstr "Результаты поиска знаков" -#: zrcolagui.cpp:539 +#: zrcolagui.cpp:545 msgid "Re¢ly Used" msgstr "&Недавно использованное" -#: zrcolagui.cpp:567 +#: zrcolagui.cpp:573 msgid "List of recently inserted characters" msgstr "Список недавно вставленных знаков" -#: zrcolagui.cpp:581 +#: zrcolagui.cpp:587 msgid "Preview" msgstr "Просмотр" -#: zrcolagui.cpp:586 +#: zrcolagui.cpp:592 msgid "U+" msgstr "U+" -#: zrcolagui.cpp:591 +#: zrcolagui.cpp:597 msgid "Unicode hexadecimal code" msgstr "Шестнадцатеричный код Юникод" -#: zrcolagui.cpp:596 +#: zrcolagui.cpp:602 msgid "Keyboard shortcut in Composer window" msgstr "Сочетание клавиш в окне композитора" -#: zrcolagui.cpp:631 +#: zrcolagui.cpp:637 msgid "Character preview" msgstr "Просмотр знака" -#: zrcolagui.cpp:636 +#: zrcolagui.cpp:642 msgid "Unicode character description" msgstr "Описание знака Юникод" -#: zrcolagui.cpp:641 +#: zrcolagui.cpp:647 msgid "Character tags" msgstr "Ключевые слова" -#: zrcolagui.cpp:646 +#: zrcolagui.cpp:652 msgid "Unicode character category" msgstr "Категория знака Юникод" -#: zrcolagui.cpp:653 +#: zrcolagui.cpp:659 msgid "« Back" msgstr "« Назад" -#: zrcolagui.cpp:655 +#: zrcolagui.cpp:661 msgid "To previously viewed character" msgstr "К предыдущему знаку" -#: zrcolagui.cpp:659 +#: zrcolagui.cpp:665 msgid "Forward »" msgstr "Далее »" -#: zrcolagui.cpp:661 +#: zrcolagui.cpp:667 msgid "To following viewed character" msgstr "К следующему знаку" -#: zrcolagui.cpp:672 +#: zrcolagui.cpp:678 msgid "Re&lated" msgstr "&Связанное" -#: zrcolagui.cpp:699 +#: zrcolagui.cpp:705 msgid "List of related characters" msgstr "Список связанных знаков" -#: zrcolagui.cpp:790 +#: zrcolagui.cpp:794 msgid "" "Some character native to specific language you are working with should not decompose to primitives.\n" "For optimal decomposition you should set the language correctly." @@ -434,53 +438,19 @@ msgstr "" "Некоторые знаки использованного языка нельзя разбирать.\n" "Для оптимальной разборки вы должны настроить правильный язык." -#: zrcolagui.cpp:794 +#: zrcolagui.cpp:798 msgid "Select language &automatically according to selected keyboard" msgstr "&Автоматически установить язык на основе выбранной клавиатуры" -#: zrcolagui.cpp:797 +#: zrcolagui.cpp:801 msgid "&Manually select the language from the list below:" msgstr "&Вручную выбрать язык со списка:" -#: zrcolagui.cpp:809 +#: zrcolagui.cpp:812 msgid "Text Language" msgstr "Язык текста" -#: zrcolagui.cpp:816 -msgid "" -"ZRCola offers multiple text transformations that can be arranged in a sequence.\n" -"Please select desired transformations and the order they are applied." -msgstr "" - -#: zrcolagui.cpp:831 -msgid "A&vailable:" -msgstr "" - -#: zrcolagui.cpp:844 -msgid ">" -msgstr ">" - -#: zrcolagui.cpp:847 -msgid "<" -msgstr "<" - -#: zrcolagui.cpp:856 -msgid "&Active:" -msgstr "" - -#: zrcolagui.cpp:872 -msgid "Up" -msgstr "Up" - -#: zrcolagui.cpp:875 -msgid "Down" -msgstr "Down" - -#: zrcolagui.cpp:885 -msgid "Transformation" -msgstr "" - -#: zrcolagui.cpp:892 +#: zrcolagui.cpp:817 msgid "" "ZRCola can be launched every time you log in to your computer.\n" "It will be available on the system tray and via registered shortcuts Win+F5 and Win+F6." @@ -488,15 +458,15 @@ msgstr "" "Запуск системы ZRCola возможен при каждом запуске компьютера.\n" "После запуска система ZRCola доступна на панели задач либо через нажатие сочетания клавиш Win+F5 и Win+F6." -#: zrcolagui.cpp:896 +#: zrcolagui.cpp:821 msgid "Start ZRCola &automatically on logon" msgstr "&Автоматически запустить систему ZRCola при запуске компьютера" -#: zrcolagui.cpp:903 +#: zrcolagui.cpp:827 msgid "Startup" msgstr "Запуск" -#: zrcolagui.cpp:991 +#: zrcolagui.cpp:905 msgid "" "Program and Website Editor: Janoš Ježovnik\n" "Development: Amebis, d. o. o., Kamnik\n" @@ -510,47 +480,47 @@ msgstr "" "Перевод на русский язык: Домен Крвина (Domen Krvina), Силво Торкар (Silvo Torkar), Анастасия Плотникова\n" "Разработка in техническая поддержка первоначальной программы (2004–2015): Петер Вейсс (Peter Weiss)" -#: zrcolagui.cpp:999 +#: zrcolagui.cpp:913 msgid "zrcola.zrc-sazu.si" msgstr "zrcola.zrc-sazu.si" -#: zrcolagui.cpp:1005 +#: zrcolagui.cpp:919 msgid "Texts made using ZRCola have to include in a footnote or some other appropriate part of the publication the note below:" msgstr "Текст, созданный с помощью системы ZRCola, должен в примечании или другом соответствующем месте в публикации сопровождаться следующей записью:" -#: zrcolagui.cpp:1009 +#: zrcolagui.cpp:923 msgid "This text was written using the ZRCola input system (http://zrcola.zrc-sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana (http://www.zrc-sazu.si) by Peter Weiss." msgstr "Текст подготовлен с помощью системы ввода ZRCola (http://zrcola.zrc-sazu.si), разработанной в Научно-исследовательском центре Словенской академии наук и искусств в Любляне (http://www.zrc-sazu.si) Петром Вейссoм." -#: zrcolagui.cpp:1050 +#: zrcolagui.cpp:964 msgid "Log" msgstr "Журнал" -#: zrcolagui.cpp:1066 +#: zrcolagui.cpp:980 msgid "Quit and &Update..." msgstr "Выйти и &обновить ..." -#: zrcolagui.cpp:1068 +#: zrcolagui.cpp:982 msgid "Exit this program and launch product update" msgstr "Выйти из программы и запустить обновление" -#: zrcolagui.cpp:1072 +#: zrcolagui.cpp:986 msgid "&Close" msgstr "&Закрыть" -#: zrcolagui.cpp:1073 +#: zrcolagui.cpp:987 msgid "Close this window" msgstr "Закрыть это окно" -#: zrcolagui.cpp:1112 +#: zrcolagui.cpp:1026 msgid "Enter the &character you would like to request:" msgstr "Ввести запрашиваемый &знак:" -#: zrcolagui.cpp:1119 +#: zrcolagui.cpp:1033 msgid "Decomposed character to request" msgstr "Запрашиваемый разобранный знак" -#: zrcolagui.cpp:1123 +#: zrcolagui.cpp:1037 msgid "" "Please, use the decomposed form.\n" "You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste it from the Decomposed window." @@ -558,15 +528,15 @@ msgstr "" "Пожалуйста, используйте разобранный формат.\n" "Для ввода запрашиваемого знака можно использовать сочетания клавиш системы ZRCola либо копировать и вставить знаки из окна для разборки." -#: zrcolagui.cpp:1133 +#: zrcolagui.cpp:1047 msgid "The &context, examples or description why and where the character is required:" msgstr "&Контекст, примеры либо описание запрашиваемого знака или объяснение, зачем он нужен:" -#: zrcolagui.cpp:1139 +#: zrcolagui.cpp:1053 msgid "Additional notes for character request" msgstr "Дополнительные примечания" -#: zrcolagui.cpp:1146 +#: zrcolagui.cpp:1060 msgid "" "After clicking OK button, your e-mail application should open allowing you to submit the new character request to ZRCola Editor.\n" "Your e-mail application might not display all the characters correctly, but the Editor will be able to read them correctly anyway." @@ -574,19 +544,74 @@ msgstr "" "После нажатия на кнопку «OK» ваша почтовая программа должна открытся для отправки запроса нового знака администратору системы ZRCola.\n" "Возможно, не все знаки будут отображены правильно, но все информации будут закодированны таким образом, что администратор сможет их правильно прочитать." +#: zrcolagui.cpp:1102 +msgid "Translation" +msgstr "" + +#: zrcolagui.cpp:1104 +msgid "" +"ZRCola offers multiple text translations that can be arranged in a sequence.\n" +"Please select desired translations and the order they are applied." +msgstr "" + +#: zrcolagui.cpp:1114 +msgid "A&vailable:" +msgstr "" + +#: zrcolagui.cpp:1129 +msgid ">" +msgstr ">" + +#: zrcolagui.cpp:1132 +msgid "<" +msgstr "<" + +#: zrcolagui.cpp:1141 +#, fuzzy +msgid "&Selected:" +msgstr "Izreže izbrano besedilo in ga shrani na odložišče" + +#: zrcolagui.cpp:1159 +msgid "Up" +msgstr "Up" + +#: zrcolagui.cpp:1162 +msgid "Down" +msgstr "Down" + +#: zrcolagui.h:250 +msgid "Character Search" +msgstr "Поиск знака" + +#: zrcolagui.h:286 +msgid "Settings" +msgstr "Настройки" + +#: zrcolagui.h:312 +msgid "About ZRCola" +msgstr "О системе ZRCola" + +#: zrcolagui.h:337 zrcolaupdater.cpp:94 +msgid "Product Update" +msgstr "Обновление продукта" + +#: zrcolagui.h:408 +msgid "Custom Translation Sequence" +msgstr "" + #: 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." msgstr "Нажата клавиша INS. Введите код Юникод желаемого знака (максимум четыре шестнадцатеричныe цифры: 0-9, A-F), затем отпустите клавишу INS." -#: zrcolasettings.cpp:90 -#, c-format -msgid "Unknown transformation (%u)" -msgstr "" - -#: zrcolasettings.cpp:181 +#: zrcolasettings.cpp:87 msgid "Start ZRCola automatically on logon" msgstr "Автоматически запустить систему ZRCola при запуске компьютера" +#: zrcolatranseq.cpp:63 +#, c-format +msgid "Unknown translation (%u)" +msgstr "" + #: zrcolaupdater.cpp:94 msgid "" "This program will now close and the upgrade will be launched.\n" @@ -595,22 +620,6 @@ msgstr "" "Программа будет закрыта и обновлена.\n" "Вы уверены?" -#: zrcolaupdater.cpp:94 zrcolagui.h:350 -msgid "Product Update" -msgstr "Обновление продукта" - -#: zrcolagui.h:248 -msgid "Character Search" -msgstr "Поиск знака" - -#: zrcolagui.h:299 -msgid "Settings" -msgstr "Настройки" - -#: zrcolagui.h:325 -msgid "About ZRCola" -msgstr "О системе ZRCola" - #: MSIBuild/en_US.Win32.Release.Control-2.idtx:4 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:10 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:15 diff --git a/ZRCola/locale/sl_SI.po b/ZRCola/locale/sl_SI.po index d44dcb3..429f40e 100644 --- a/ZRCola/locale/sl_SI.po +++ b/ZRCola/locale/sl_SI.po @@ -1,15 +1,15 @@ msgid "" msgstr "" "Project-Id-Version: ZRCola\n" -"POT-Creation-Date: 2017-04-03 12:01+0200\n" -"PO-Revision-Date: 2017-04-03 12:03+0200\n" +"POT-Creation-Date: 2017-06-01 18:05+0200\n" +"PO-Revision-Date: 2017-06-01 18:06+0200\n" "Last-Translator: Simon Rozman \n" "Language-Team: Amebis, d. o. o., Kamnik \n" "Language: sl_SI\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" +"X-Generator: Poedit 2.0.2\n" "X-Poedit-Basepath: .\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" "X-Poedit-SourceCharset: UTF-8\n" @@ -20,7 +20,7 @@ msgstr "" msgid "© 2004-%s ZRC SAZU" msgstr "© 2004-%s ZRC SAZU" -#: zrcolaapp.cpp:72 zrcolafrm.cpp:92 zrcolagui.cpp:980 zrcolagui.h:106 +#: zrcolaapp.cpp:72 zrcolafrm.cpp:106 zrcolagui.cpp:894 zrcolagui.h:108 #: MSIBuild/en_US.Win32.Release.Feature-2.idtx:4 #: MSIBuild/en_US.Win32.Release.Shortcut-2.idtx:4 #: MSIBuild/en_US.x64.Release.Feature-2.idtx:4 @@ -28,15 +28,15 @@ msgstr "© 2004-%s ZRC SAZU" msgid "ZRCola" msgstr "ZRCola" -#: zrcolachrreq.cpp:49 zrcolagui.cpp:1110 +#: zrcolachrreq.cpp:49 zrcolagui.cpp:1024 msgid "Character" msgstr "Znak" -#: zrcolachrreq.cpp:58 zrcolagui.cpp:1131 +#: zrcolachrreq.cpp:58 zrcolagui.cpp:1045 msgid "Context" msgstr "Kontekst" -#: zrcolachrreq.cpp:64 zrcolagui.h:379 +#: zrcolachrreq.cpp:64 zrcolagui.h:366 msgid "Request a New Character" msgstr "Zahtevaj nov znak" @@ -66,23 +66,27 @@ msgstr ", " msgid "▾ Search Options" msgstr "▾ Možnosti iskanja" -#: zrcolafrm.cpp:143 +#: zrcolafrm.cpp:90 +msgid "Custom Translation..." +msgstr "Pretvorba po meri ..." + +#: zrcolafrm.cpp:175 msgid "ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available." msgstr "ZRColine bližnjice na tipkovnici Win+F5 ni mogoče registrirati. Nekaj funkcionalnosti ne bo na voljo." -#: zrcolafrm.cpp:143 zrcolafrm.cpp:145 +#: zrcolafrm.cpp:175 zrcolafrm.cpp:177 msgid "Warning" msgstr "Opozorilo" -#: zrcolafrm.cpp:145 +#: zrcolafrm.cpp:177 msgid "ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available." msgstr "ZRColine bližnjice na tipkovnici Win+F6 ni mogoče registrirati. Nekaj funkcionalnosti ne bo na voljo." -#: zrcolafrm.cpp:362 +#: zrcolafrm.cpp:410 msgid "http://zrcola.zrc-sazu.si/en/info/instructions/" msgstr "http://zrcola.zrc-sazu.si/info/instructions/" -#: zrcolafrm.cpp:386 +#: zrcolafrm.cpp:434 msgid "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" msgstr "http://zrcola.zrc-sazu.si/wp-content/uploads/2016/06/ZRCola_tipkovnica_Jun2016.pdf" @@ -274,159 +278,159 @@ msgstr "Pošlji sestavljeno" msgid "Send Decomposed" msgstr "Pošlji razstavljeno" -#: zrcolagui.cpp:205 +#: zrcolagui.cpp:209 msgid "Compose" msgstr "Sestavljanje" -#: zrcolagui.cpp:209 +#: zrcolagui.cpp:213 msgid "Character Catalog" msgstr "Katalog znakov" -#: zrcolagui.cpp:213 +#: zrcolagui.cpp:217 msgid "(De)Composer" msgstr "Razstavljalnik/Sestavljalnik" -#: zrcolagui.cpp:252 +#: zrcolagui.cpp:258 msgid "Decomposed Text" msgstr "Razstavljeno besedilo" -#: zrcolagui.cpp:272 +#: zrcolagui.cpp:278 msgid "Decomposed Unicode Dump" msgstr "Unicode razstavljenega" -#: zrcolagui.cpp:299 +#: zrcolagui.cpp:305 msgid "Composed Text" msgstr "Sestavljeno besedilo" -#: zrcolagui.cpp:319 +#: zrcolagui.cpp:325 msgid "Composed Unicode Dump" msgstr "Unicode sestavljenega" -#: zrcolagui.cpp:373 +#: zrcolagui.cpp:379 msgid "Select category to display" msgstr "Izberi kategorijo za prikaz" -#: zrcolagui.cpp:407 +#: zrcolagui.cpp:413 msgid "Show &All" msgstr "Prik&aži vse" -#: zrcolagui.cpp:408 +#: zrcolagui.cpp:414 msgid "Toggle display of less frequent characters" msgstr "Prikaži/skrij manj pogoste znake" -#: zrcolagui.cpp:448 +#: zrcolagui.cpp:454 msgid "&Browse" msgstr "Pre&brskaj" -#: zrcolagui.cpp:455 +#: zrcolagui.cpp:461 msgid "Full or partial terms from Unicode character description (in English) to search for" msgstr "Polne ali delne besede iz opisa znaka Unicode (v angleščini) za iskanje" -#: zrcolagui.cpp:459 +#: zrcolagui.cpp:465 msgid "Search Options" msgstr "Možnosti iskanja" -#: zrcolagui.cpp:460 +#: zrcolagui.cpp:466 msgid "Shows/hides additional search options" msgstr "Prikaže/skrije dodatne možnosti iskanja" -#: zrcolagui.cpp:472 +#: zrcolagui.cpp:478 msgid "List of Unicode character categories to search in" msgstr "Seznam kategorij znaka Unicode za iskanje" -#: zrcolagui.cpp:479 +#: zrcolagui.cpp:485 msgid "All" msgstr "Vse" -#: zrcolagui.cpp:480 +#: zrcolagui.cpp:486 msgid "Select all categories" msgstr "Izberi vse kategorije" -#: zrcolagui.cpp:484 +#: zrcolagui.cpp:490 msgid "None" msgstr "Nič" -#: zrcolagui.cpp:485 +#: zrcolagui.cpp:491 msgid "Clear category selection" msgstr "Počisti izbor kategorij" -#: zrcolagui.cpp:489 +#: zrcolagui.cpp:495 msgid "Invert" msgstr "Obrni" -#: zrcolagui.cpp:490 +#: zrcolagui.cpp:496 msgid "Invert category selection" msgstr "Obrni izbor kategorij" -#: zrcolagui.cpp:529 +#: zrcolagui.cpp:535 msgid "Character search results" msgstr "Rezultati iskanja znakov" -#: zrcolagui.cpp:539 +#: zrcolagui.cpp:545 msgid "Re¢ly Used" msgstr "Nedavno &uporabljeni" -#: zrcolagui.cpp:567 +#: zrcolagui.cpp:573 msgid "List of recently inserted characters" msgstr "Seznam nedavno vstavljenih znakov" -#: zrcolagui.cpp:581 +#: zrcolagui.cpp:587 msgid "Preview" msgstr "Predogled" -#: zrcolagui.cpp:586 +#: zrcolagui.cpp:592 msgid "U+" msgstr "U+" -#: zrcolagui.cpp:591 +#: zrcolagui.cpp:597 msgid "Unicode hexadecimal code" msgstr "Šestnajstiška koda Unicode" -#: zrcolagui.cpp:596 +#: zrcolagui.cpp:602 msgid "Keyboard shortcut in Composer window" msgstr "Bližnjica na tipkovnici v oknu sestavljalnika" -#: zrcolagui.cpp:631 +#: zrcolagui.cpp:637 msgid "Character preview" msgstr "Predogled znaka" -#: zrcolagui.cpp:636 +#: zrcolagui.cpp:642 msgid "Unicode character description" msgstr "Opis znaka Unicode" -#: zrcolagui.cpp:641 +#: zrcolagui.cpp:647 msgid "Character tags" msgstr "Oznake znaka" -#: zrcolagui.cpp:646 +#: zrcolagui.cpp:652 msgid "Unicode character category" msgstr "Kategorija znaka Unicode" -#: zrcolagui.cpp:653 +#: zrcolagui.cpp:659 msgid "« Back" msgstr "« Nazaj" -#: zrcolagui.cpp:655 +#: zrcolagui.cpp:661 msgid "To previously viewed character" msgstr "Na prejšnji prikazan znak" -#: zrcolagui.cpp:659 +#: zrcolagui.cpp:665 msgid "Forward »" msgstr "Naprej »" -#: zrcolagui.cpp:661 +#: zrcolagui.cpp:667 msgid "To following viewed character" msgstr "Na naslednji prikazan znak" -#: zrcolagui.cpp:672 +#: zrcolagui.cpp:678 msgid "Re&lated" msgstr "&Sorodni" -#: zrcolagui.cpp:699 +#: zrcolagui.cpp:705 msgid "List of related characters" msgstr "Seznam sorodnih znakov" -#: zrcolagui.cpp:790 +#: zrcolagui.cpp:794 msgid "" "Some character native to specific language you are working with should not decompose to primitives.\n" "For optimal decomposition you should set the language correctly." @@ -434,55 +438,19 @@ msgstr "" "Nekateri znaki iz posameznih jezikov, s katerimi delate, se ne smejo razstavljati.\n" "Za optimalno razstavljanje izberite pravilni jezik." -#: zrcolagui.cpp:794 +#: zrcolagui.cpp:798 msgid "Select language &automatically according to selected keyboard" msgstr "S&amodejno izberi jezik glede na izbrano tipkovnico" -#: zrcolagui.cpp:797 +#: zrcolagui.cpp:801 msgid "&Manually select the language from the list below:" msgstr "&Ročno izberi jezik s seznama spodaj:" -#: zrcolagui.cpp:809 +#: zrcolagui.cpp:812 msgid "Text Language" msgstr "Jezik besedila" -#: zrcolagui.cpp:816 -msgid "" -"ZRCola offers multiple text transformations that can be arranged in a sequence.\n" -"Please select desired transformations and the order they are applied." -msgstr "" -"ZRCola ponuja različne pretvorbe besedila, ki jih lahko uredimo v zaporedje.\n" -"Prosimo, izberite želene pretvorbe in vrstni red, v katerem naj jih uporabi." - -#: zrcolagui.cpp:831 -msgid "A&vailable:" -msgstr "Na &voljo:" - -#: zrcolagui.cpp:844 -msgid ">" -msgstr ">" - -#: zrcolagui.cpp:847 -msgid "<" -msgstr "<" - -#: zrcolagui.cpp:856 -msgid "&Active:" -msgstr "&Aktivni:" - -#: zrcolagui.cpp:872 -msgid "Up" -msgstr "Gor" - -#: zrcolagui.cpp:875 -msgid "Down" -msgstr "Dol" - -#: zrcolagui.cpp:885 -msgid "Transformation" -msgstr "Pretvorba" - -#: zrcolagui.cpp:892 +#: zrcolagui.cpp:817 msgid "" "ZRCola can be launched every time you log in to your computer.\n" "It will be available on the system tray and via registered shortcuts Win+F5 and Win+F6." @@ -490,15 +458,15 @@ msgstr "" "ZRCola se lahko zažene ob vsaki prijavi v vaš računalnik.\n" "Na voljo bo v vrstici za sistemska obvestila ter preko registriranih bližnjic Win+F5 in Win+F6." -#: zrcolagui.cpp:896 +#: zrcolagui.cpp:821 msgid "Start ZRCola &automatically on logon" msgstr "S&amodejno zaženi ZRColo ob prijavi" -#: zrcolagui.cpp:903 +#: zrcolagui.cpp:827 msgid "Startup" msgstr "Zagon" -#: zrcolagui.cpp:991 +#: zrcolagui.cpp:905 msgid "" "Program and Website Editor: Janoš Ježovnik\n" "Development: Amebis, d. o. o., Kamnik\n" @@ -512,48 +480,48 @@ msgstr "" "Prevod v ruski jezik: Domen Krvina, Silvo Torkar, Anastasija Plotnikova\n" "Razvoj in vzdrževanje prvotnega programa (2004–2015): Peter Weiss" -#: zrcolagui.cpp:999 +#: zrcolagui.cpp:913 msgid "zrcola.zrc-sazu.si" msgstr "zrcola.zrc-sazu.si" -#: zrcolagui.cpp:1005 +#: zrcolagui.cpp:919 msgid "Texts made using ZRCola have to include in a footnote or some other appropriate part of the publication the note below:" msgstr "Besedilo, nastalo z uporabo ZRCole, mora biti v opombi ali na drugem ustreznem mestu v publikaciji opremljeno z naslednjim zapisom:" -#: zrcolagui.cpp:1009 +#: zrcolagui.cpp:923 msgid "This text was written using the ZRCola input system (http://zrcola.zrc-sazu.si), developed at the Science and Research Centre of SAZU in Ljubljana (http://www.zrc-sazu.si) by Peter Weiss." msgstr "Besedilo je bilo pripravljeno z vnašalnim sistemom ZRCola (http://zrcola.zrc-sazu.si), ki ga je na Znanstvenoraziskovalnem centru SAZU v Ljubljani (http://www.zrc-sazu.si) razvil Peter Weiss." -#: zrcolagui.cpp:1050 +#: zrcolagui.cpp:964 msgid "Log" msgstr "Dnevnik" -#: zrcolagui.cpp:1066 +#: zrcolagui.cpp:980 msgid "Quit and &Update..." msgstr "Za&ustavi in posodobi ..." -#: zrcolagui.cpp:1068 +#: zrcolagui.cpp:982 msgid "Exit this program and launch product update" msgstr "Zaustavi program in zaženi posodobitev izdelka" -#: zrcolagui.cpp:1072 +#: zrcolagui.cpp:986 msgid "&Close" msgstr "&Zapri" -#: zrcolagui.cpp:1073 +#: zrcolagui.cpp:987 msgid "Close this window" msgstr "Zapri to okno" -#: zrcolagui.cpp:1112 +#: zrcolagui.cpp:1026 msgid "Enter the &character you would like to request:" msgstr "Vpišite &znak, ki ga želite zahtevati:" -#: zrcolagui.cpp:1119 +#: zrcolagui.cpp:1033 msgid "Decomposed character to request" msgstr "Zahtevani znak v razstavljeni obliki" # Please use a double && for final "&" character -#: zrcolagui.cpp:1123 +#: zrcolagui.cpp:1037 msgid "" "Please, use the decomposed form.\n" "You can use ZRCola keyboard shortcuts to enter the character or Copy&&Paste it from the Decomposed window." @@ -561,15 +529,15 @@ msgstr "" "Uporabite razstavljeno obliko.\n" "Za vnos znaka lahko uporabite ZRColine bližnjice na tipkovnici ali ga kopirate in prilepite iz okna z razstavljenim besedilom." -#: zrcolagui.cpp:1133 +#: zrcolagui.cpp:1047 msgid "The &context, examples or description why and where the character is required:" msgstr "&Kontekst, primeri oziroma opis, zakaj in kje potrebujete novi znak:" -#: zrcolagui.cpp:1139 +#: zrcolagui.cpp:1053 msgid "Additional notes for character request" msgstr "Dodatne opombe za zahtevo znaka" -#: zrcolagui.cpp:1146 +#: zrcolagui.cpp:1060 msgid "" "After clicking OK button, your e-mail application should open allowing you to submit the new character request to ZRCola Editor.\n" "Your e-mail application might not display all the characters correctly, but the Editor will be able to read them correctly anyway." @@ -577,19 +545,75 @@ msgstr "" "Ko boste kliknili gumb V redu, se bo odprl vaš program za e-pošto, s katerim boste lahko oddali zahtevo za nov znak uredniku programa.\n" "Vsi znaki v sporočilu morda ne bodo prikazani pravilno, vendar jih bo urednik lahko kljub temu razbral." +#: zrcolagui.cpp:1102 +msgid "Translation" +msgstr "Pretvorba" + +#: zrcolagui.cpp:1104 +msgid "" +"ZRCola offers multiple text translations that can be arranged in a sequence.\n" +"Please select desired translations and the order they are applied." +msgstr "" +"ZRCola ponuja različne pretvorbe besedila, ki jih lahko uredimo v zaporedje.\n" +"Prosimo, izberite želene pretvorbe in vrstni red, v katerem naj jih uporabi." + +#: zrcolagui.cpp:1114 +msgid "A&vailable:" +msgstr "Na &voljo:" + +#: zrcolagui.cpp:1129 +msgid ">" +msgstr ">" + +#: zrcolagui.cpp:1132 +msgid "<" +msgstr "<" + +#: zrcolagui.cpp:1141 +msgid "&Selected:" +msgstr "I&zbrani:" + +#: zrcolagui.cpp:1159 +msgid "Up" +msgstr "Gor" + +#: zrcolagui.cpp:1162 +msgid "Down" +msgstr "Dol" + +#: zrcolagui.h:250 +msgid "Character Search" +msgstr "Poišči znak" + +#: zrcolagui.h:286 +msgid "Settings" +msgstr "Nastavitve" + +#: zrcolagui.h:312 +msgid "About ZRCola" +msgstr "O ZRColi" + +#: zrcolagui.h:337 zrcolaupdater.cpp:94 +msgid "Product Update" +msgstr "Posodabljanje izdelka" + +#: zrcolagui.h:408 +msgid "Custom Translation Sequence" +msgstr "Zaporedje pretvorb po meri" + #: 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." msgstr "Pritisnili ste tipko INS. Vtipkajte kodo Unicode želenega znaka (do štiri šestnajstiške števke: 0–9, A–F), nato izpustite INS." -#: zrcolasettings.cpp:90 -#, c-format -msgid "Unknown transformation (%u)" -msgstr "Neznana pretvorba (%u)" - -#: zrcolasettings.cpp:181 +#: zrcolasettings.cpp:87 msgid "Start ZRCola automatically on logon" msgstr "Samodejno zaženi ZRColo ob prijavi" +#: zrcolatranseq.cpp:63 +#, c-format +msgid "Unknown translation (%u)" +msgstr "Neznana pretvorba (%u)" + #: zrcolaupdater.cpp:94 msgid "" "This program will now close and the upgrade will be launched.\n" @@ -598,22 +622,6 @@ msgstr "" "Program se bo zdaj zaprl in zagnala se bo posodobitev.\n" "Ali ste prepričani, da želite nadaljevati?" -#: zrcolaupdater.cpp:94 zrcolagui.h:350 -msgid "Product Update" -msgstr "Posodabljanje izdelka" - -#: zrcolagui.h:248 -msgid "Character Search" -msgstr "Poišči znak" - -#: zrcolagui.h:299 -msgid "Settings" -msgstr "Nastavitve" - -#: zrcolagui.h:325 -msgid "About ZRCola" -msgstr "O ZRColi" - #: MSIBuild/en_US.Win32.Release.Control-2.idtx:4 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:10 #: MSIBuild/en_US.Win32.Release.Control-2.idtx:15 @@ -688,3 +696,6 @@ msgstr "Znake lahko v vnosno vrstico vstavljamo s pomočjo bližnjic na tipkovni #: MSIBuild/en_US.x64.Release.Shortcut-2.idtx:4 msgid "Input system for linguistic use" msgstr "Vnašalni sistem za jezikoslovno rabo" + +#~ msgid "&Active:" +#~ msgstr "&Aktivni:" diff --git a/ZRCola/stdafx.h b/ZRCola/stdafx.h index 25b451c..dc01612 100644 --- a/ZRCola/stdafx.h +++ b/ZRCola/stdafx.h @@ -29,6 +29,7 @@ #include "zrcolafrm.h" #include "zrcolakeyhndlr.h" #include "zrcolasettings.h" +#include "zrcolatranseq.h" #include "zrcolaupdater.h" #include diff --git a/ZRCola/zrcolaapp.cpp b/ZRCola/zrcolaapp.cpp index cf74602..98bd743 100644 --- a/ZRCola/zrcolaapp.cpp +++ b/ZRCola/zrcolaapp.cpp @@ -171,7 +171,6 @@ bool ZRColaApp::OnInit() wxSocketBase::Initialize(); m_mainWnd = new wxZRColaFrame(); - wxPersistentRegisterAndRestore(m_mainWnd); m_mainWnd->Show(); return true; diff --git a/ZRCola/zrcolacomppnl.cpp b/ZRCola/zrcolacomppnl.cpp index 2238504..d8db033 100644 --- a/ZRCola/zrcolacomppnl.cpp +++ b/ZRCola/zrcolacomppnl.cpp @@ -87,16 +87,17 @@ void wxZRColaComposerPanel::SynchronizePanels() m_timerSave.Stop(); auto app = dynamic_cast(wxTheApp); - wxZRColaFrame *mainWnd = dynamic_cast(wxGetActiveWindow()); - wxASSERT_MSG(mainWnd, "main window missing"); wxString src; size_t len = GetValue(m_source, src); std::wstring dst(src.data(), len), dst2; ZRCola::mapping_vector map; + const ZRCola::transetid_t *sets_begin, *sets_end; + GetTranslationSeq(sets_begin, sets_end); + m_mapping.clear(); - for (auto s = mainWnd->m_settings->m_transeq.cbegin(), s_end = mainWnd->m_settings->m_transeq.cend(); s != s_end; ++s) { + for (auto s = sets_begin; s != sets_end; ++s) { if (*s == 0) { // ZRCola Decomposed => ZRCola Composed should decompose first. app->m_t_db.TranslateInv(*s, dst.data(), dst.size(), dst2, &map); @@ -105,7 +106,7 @@ void wxZRColaComposerPanel::SynchronizePanels() app->m_t_db.Translate(*s, dst2.data(), dst2.size(), dst, &map); m_mapping.push_back(std::move(map)); } else { - // Other transforms + // Other translates app->m_t_db.Translate(*s, dst.data(), dst.size(), dst2, &map); m_mapping.push_back(std::move(map)); dst = std::move(dst2); @@ -130,21 +131,22 @@ void wxZRColaComposerPanel::SynchronizePanels() m_timerSave.Stop(); auto app = dynamic_cast(wxTheApp); - wxZRColaFrame *mainWnd = dynamic_cast(wxGetActiveWindow()); - wxASSERT_MSG(mainWnd, "main window missing"); wxString src; size_t len = GetValue(m_destination, src); std::wstring dst(src.data(), len), dst2; ZRCola::mapping_vector map; + const ZRCola::transetid_t *sets_begin, *sets_end; + GetTranslationSeq(sets_begin, sets_end); + m_mapping.clear(); - for (auto s = mainWnd->m_settings->m_transeq.crbegin(), s_end = mainWnd->m_settings->m_transeq.crend(); s != s_end; ++s) { + for (auto s = sets_end; s != sets_begin; s--) { if (*s) { // ZRCola Decomposed => ZRCola Composed - app->m_t_db.TranslateInv(*s, dst.data(), dst.size(), &app->m_lc_db, mainWnd->m_settings->m_lang, dst2, &map); + app->m_t_db.TranslateInv(*s, dst.data(), dst.size(), &app->m_lc_db, app->m_mainWnd->m_settings->m_lang, dst2, &map); } else { - // Other transforms + // Other translates app->m_t_db.TranslateInv(*s, dst.data(), dst.size(), dst2, &map); } dst = std::move(dst2); @@ -233,7 +235,7 @@ void wxZRColaComposerPanel::OnSourceText(wxCommandEvent& event) { event.Skip(); - // Set the flag the source text changed to trigger idle-time transformation. + // Set the flag the source text changed to trigger idle-time translation. m_sourceChanged = true; } @@ -296,7 +298,7 @@ void wxZRColaComposerPanel::OnDestinationText(wxCommandEvent& event) { event.Skip(); - // Set the flag the destination text changed to trigger idle-time inverse transformation. + // Set the flag the destination text changed to trigger idle-time inverse translation. m_destinationChanged = true; } diff --git a/ZRCola/zrcolacomppnl.h b/ZRCola/zrcolacomppnl.h index 93ea797..6218c46 100644 --- a/ZRCola/zrcolacomppnl.h +++ b/ZRCola/zrcolacomppnl.h @@ -56,14 +56,15 @@ protected: virtual void OnSaveTimer(wxTimerEvent& event); inline size_t MapToDestination(_In_ size_t src) const; inline size_t MapToSource(_In_ size_t dst) const; + inline void GetTranslationSeq(_Out_ const ZRCola::transetid_t *&sets_begin, _Out_ const ZRCola::transetid_t *&sets_end) const; static wxString GetStateFileName(); static size_t GetValue(wxTextCtrl *wnd, wxString &text); static void SetHexValue(wxTextCtrl *wnd, std::pair &range, ZRCola::mapping_vector &mapping, const wchar_t *src, size_t len, long from, long to); protected: - bool m_sourceChanged; ///< Boolean flag to mark source text "dirty" to trigger transformation - bool m_destinationChanged; ///< Boolean flag to mark destination text "dirty" to trigger inverse transformation + bool m_sourceChanged; ///< Boolean flag to mark source text "dirty" to trigger translation + bool m_destinationChanged; ///< Boolean flag to mark destination text "dirty" to trigger inverse translation std::vector m_mapping; ///< Character index mapping vector between source and normalized text std::pair m_selSource, ///< Character index of selected text in source text control @@ -108,6 +109,27 @@ inline size_t wxZRColaComposerPanel::MapToSource(_In_ size_t dst) const } +inline void wxZRColaComposerPanel::GetTranslationSeq(_Out_ const ZRCola::transetid_t *&sets_begin, _Out_ const ZRCola::transetid_t *&sets_end) const +{ + auto app = dynamic_cast(wxTheApp); + + if (app->m_mainWnd->m_transeq_id != ZRCOLA_TRANSEQID_CUSTOM) { + size_t start; + if (app->m_tsq_db.idxTranSeq.find(ZRCola::transeq_db::transeq(app->m_mainWnd->m_transeq_id), start)) { + const auto &ts = app->m_tsq_db.idxTranSeq[start]; + sets_begin = ts.sets(); + sets_end = ts.sets_end(); + } else { + sets_begin = NULL; + sets_end = NULL; + } + } else { + sets_begin = app->m_mainWnd->m_transeq->m_transeq.data(); + sets_end = sets_begin + app->m_mainWnd->m_transeq->m_transeq.size(); + } +} + + inline wxPersistentObject *wxCreatePersistentObject(wxZRColaComposerPanel *wnd) { return new wxPersistentZRColaComposerPanel(wnd); diff --git a/ZRCola/zrcolafrm.cpp b/ZRCola/zrcolafrm.cpp index 8b23f95..dc79075 100644 --- a/ZRCola/zrcolafrm.cpp +++ b/ZRCola/zrcolafrm.cpp @@ -45,8 +45,8 @@ wxBEGIN_EVENT_TABLE(wxZRColaFrame, wxZRColaFrameBase) EVT_UPDATE_UI (wxID_TOOLBAR_EDIT , wxZRColaFrame::OnToolbarEditUpdate ) EVT_MENU (wxID_TOOLBAR_EDIT , wxZRColaFrame::OnToolbarEdit ) - EVT_UPDATE_UI (wxID_TOOLBAR_TRANSFORM , wxZRColaFrame::OnToolbarTransformUpdate ) - EVT_MENU (wxID_TOOLBAR_TRANSFORM , wxZRColaFrame::OnToolbarTransform ) + EVT_UPDATE_UI (wxID_TOOLBAR_TRANSLATE , wxZRColaFrame::OnToolbarTranslateUpdate ) + EVT_MENU (wxID_TOOLBAR_TRANSLATE , wxZRColaFrame::OnToolbarTranslate ) EVT_UPDATE_UI (wxID_PANEL_CHRGRPS , wxZRColaFrame::OnPanelCharacterCatalogUpdate) EVT_MENU (wxID_PANEL_CHRGRPS , wxZRColaFrame::OnPanelCharacterCatalog ) EVT_MENU (wxID_FOCUS_CHARACTER_CATALOG , wxZRColaFrame::OnPanelCharacterCatalogFocus ) @@ -65,16 +65,30 @@ wxZRColaFrame::wxZRColaFrame() : m_chrSelect(NULL), m_settings(NULL), m_chrReq(NULL), + m_transeq_id(0), // By default use predefined translation sequence 0 (ZRCola Decomposed >> Composed) + m_transeq(NULL), wxZRColaFrameBase(NULL) { { // wxFrameBuilder 3.5 does not support wxAUI_TB_HORIZONTAL flag. Add it manually. - wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarTransform); + wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarTranslate); paneInfo.LeftDockable(false); paneInfo.RightDockable(false); - m_toolbarTransform->SetWindowStyleFlag(m_toolbarTransform->GetWindowStyleFlag() | wxAUI_TB_HORIZONTAL); + m_toolbarTranslate->SetWindowStyleFlag(m_toolbarTranslate->GetWindowStyleFlag() | wxAUI_TB_HORIZONTAL); } + // Populate list of translation sequences. + auto app = dynamic_cast(wxTheApp); + m_toolTranslationSeq->Clear(); + for (size_t i = 0, n = app->m_tsq_db.idxRank.size(); i < n; i++) { + const ZRCola::transeq_db::transeq &ts = app->m_tsq_db.idxRank[i]; + wxString + name(ts.name(), ts.name_len()), + name_tran(wxGetTranslation(name, wxT("ZRCola-zrcdb"))); + m_toolTranslationSeq->Append(name_tran, reinterpret_cast(ts.seq)); + } + m_toolTranslationSeq->Append(_("Custom Translation..."), reinterpret_cast(ZRCOLA_TRANSEQID_CUSTOM)); + // Load main window icons. #ifdef __WINDOWS__ wxIcon icon_small(wxT("00_zrcola.ico"), wxBITMAP_TYPE_ICO_RESOURCE, ::GetSystemMetrics(SM_CXSMICON), ::GetSystemMetrics(SM_CYSMICON)); @@ -99,6 +113,9 @@ wxZRColaFrame::wxZRColaFrame() : m_settings = new wxZRColaSettings(this); wxPersistentRegisterAndRestore(m_settings); + m_transeq = new wxZRColaTranslationSeq(this); + wxPersistentRegisterAndRestore(m_transeq); + m_chrSelect = new wxZRColaCharSelect(this); wxPersistentRegisterAndRestore(m_chrSelect); @@ -137,11 +154,26 @@ wxZRColaFrame::wxZRColaFrame() : // Restore persistent state of wxAuiManager manually, since m_mgr is not on the heap. wxPersistentAuiManager(&m_mgr).Restore(); + wxPersistentRegisterAndRestore(this); + + // Populate list of translation sequences. + for (unsigned int i = 0, n = m_toolTranslationSeq->GetCount(); ; i++) { + if (i < n) { + if (reinterpret_cast(m_toolTranslationSeq->GetClientData(i)) == m_transeq_id) { + m_toolTranslationSeq->SetSelection(i); + break; + } + } else { + m_transeq_id = reinterpret_cast(m_toolTranslationSeq->GetClientData(0)); + m_toolTranslationSeq->SetSelection(0); + break; + } + } // Register global hotkey(s). - if (!RegisterHotKey(wxZRColaHKID_INVOKE_TRANSFORM, wxMOD_WIN, VK_F5)) + if (!RegisterHotKey(wxZRColaHKID_INVOKE_TRANSLATE, wxMOD_WIN, VK_F5)) wxMessageBox(_("ZRCola keyboard shortcut Win+F5 could not be registered. Some functionality will not be available."), _("Warning"), wxOK | wxICON_WARNING); - if (!RegisterHotKey(wxZRColaHKID_INVOKE_TRANSFORM_INV, wxMOD_WIN, VK_F6)) + if (!RegisterHotKey(wxZRColaHKID_INVOKE_TRANSLATE_INV, wxMOD_WIN, VK_F6)) wxMessageBox(_("ZRCola keyboard shortcut Win+F6 could not be registered. Some functionality will not be available."), _("Warning"), wxOK | wxICON_WARNING); } @@ -149,8 +181,8 @@ wxZRColaFrame::wxZRColaFrame() : wxZRColaFrame::~wxZRColaFrame() { // Unregister global hotkey(s). - UnregisterHotKey(wxZRColaHKID_INVOKE_TRANSFORM_INV); - UnregisterHotKey(wxZRColaHKID_INVOKE_TRANSFORM ); + UnregisterHotKey(wxZRColaHKID_INVOKE_TRANSLATE_INV); + UnregisterHotKey(wxZRColaHKID_INVOKE_TRANSLATE ); #if defined(__WXMSW__) if (m_tfSource) { @@ -317,20 +349,36 @@ void wxZRColaFrame::OnToolbarEdit(wxCommandEvent& event) } -void wxZRColaFrame::OnToolbarTransformUpdate(wxUpdateUIEvent& event) +void wxZRColaFrame::OnToolbarTranslateUpdate(wxUpdateUIEvent& event) { - event.Check(m_mgr.GetPane(m_toolbarTransform).IsShown()); + event.Check(m_mgr.GetPane(m_toolbarTranslate).IsShown()); } -void wxZRColaFrame::OnToolbarTransform(wxCommandEvent& event) +void wxZRColaFrame::OnToolbarTranslate(wxCommandEvent& event) { - wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarTransform); + wxAuiPaneInfo &paneInfo = m_mgr.GetPane(m_toolbarTranslate); paneInfo.Show(!paneInfo.IsShown()); m_mgr.Update(); } +void wxZRColaFrame::OnTranslationSeqChoice(wxCommandEvent& event) +{ + ZRCola::transeqid_t transeq_id = reinterpret_cast(event.GetClientData()); + if (m_transeq_id != transeq_id) { + m_transeq_id = transeq_id; + + // Notify source text something changed and should re-translate. + wxCommandEvent event2(wxEVT_COMMAND_TEXT_UPDATED); + m_panel->m_source->ProcessWindowEvent(event2); + } + + if (m_transeq_id == ZRCOLA_TRANSEQID_CUSTOM) + m_transeq->ShowModal(); +} + + void wxZRColaFrame::OnPanelCharacterCatalogUpdate(wxUpdateUIEvent& event) { event.Check(m_mgr.GetPane(m_panelChrCat).IsShown()); @@ -527,8 +575,8 @@ WXLRESULT wxZRColaFrame::MSWWindowProc(WXUINT message, WXWPARAM wParam, WXLPARAM WXHWND hWndSource = ::GetForegroundWindow(); switch (wParam) { - case wxZRColaHKID_INVOKE_TRANSFORM : m_panel->m_source ->SetFocus(); break; - case wxZRColaHKID_INVOKE_TRANSFORM_INV: m_panel->m_destination->SetFocus(); break; + case wxZRColaHKID_INVOKE_TRANSLATE : m_panel->m_source ->SetFocus(); break; + case wxZRColaHKID_INVOKE_TRANSLATE_INV: m_panel->m_destination->SetFocus(); break; default: wxFAIL_MSG(wxT("not our registered shortcut")); return wxZRColaFrameBase::MSWWindowProc(message, wParam, lParam); @@ -582,6 +630,8 @@ void wxPersistentZRColaFrame::Save() const auto wnd = static_cast(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor. + SaveValue(wxT("transeqId"), static_cast(wnd->m_transeq_id)); + wxPersistentZRColaComposerPanel(wnd->m_panel).Save(); wxPersistentZRColaCharacterCatalogPanel(wnd->m_panelChrCat).Save(); } @@ -594,5 +644,9 @@ bool wxPersistentZRColaFrame::Restore() wxPersistentZRColaCharacterCatalogPanel(wnd->m_panelChrCat).Restore(); wxPersistentZRColaComposerPanel(wnd->m_panel).Restore(); + int num; + if (RestoreValue(wxT("transeqId"), &num)) + wnd->m_transeq_id = num; + return wxPersistentTLW::Restore(); } diff --git a/ZRCola/zrcolafrm.h b/ZRCola/zrcolafrm.h index b8433cd..160b3d0 100644 --- a/ZRCola/zrcolafrm.h +++ b/ZRCola/zrcolafrm.h @@ -29,7 +29,9 @@ class wxZRColaFrame; #include "zrcolachrslct.h" #include "zrcolachrreq.h" #include "zrcolasettings.h" +#include "zrcolatranseq.h" #include +#include #include #include #if defined(__WXMSW__) @@ -40,8 +42,8 @@ class wxZRColaFrame; /// /// Global hotkey message identifiers /// -#define wxZRColaHKID_INVOKE_TRANSFORM 0 -#define wxZRColaHKID_INVOKE_TRANSFORM_INV 1 +#define wxZRColaHKID_INVOKE_TRANSLATE 0 +#define wxZRColaHKID_INVOKE_TRANSLATE_INV 1 /// @@ -83,8 +85,9 @@ protected: virtual void OnIconize(wxIconizeEvent& event); void OnToolbarEditUpdate(wxUpdateUIEvent& event); void OnToolbarEdit(wxCommandEvent& event); - void OnToolbarTransformUpdate(wxUpdateUIEvent& event); - void OnToolbarTransform(wxCommandEvent& event); + void OnToolbarTranslateUpdate(wxUpdateUIEvent& event); + void OnToolbarTranslate(wxCommandEvent& event); + virtual void OnTranslationSeqChoice(wxCommandEvent& event); void OnPanelCharacterCatalogUpdate(wxUpdateUIEvent& event); void OnPanelCharacterCatalog(wxCommandEvent& event); void OnPanelCharacterCatalogFocus(wxCommandEvent& event); @@ -126,6 +129,8 @@ protected: wxZRColaCharSelect *m_chrSelect; ///< Character selection dialog wxZRColaCharRequest *m_chrReq; ///< Request a New Character dialog wxZRColaSettings *m_settings; ///< Configuration dialog + ZRCola::transeqid_t m_transeq_id; ///< Translation sequence ID + wxZRColaTranslationSeq *m_transeq; ///< Custom translation sequence dialog }; diff --git a/ZRCola/zrcolagui.cpp b/ZRCola/zrcolagui.cpp index f15c5e1..8dd6757 100644 --- a/ZRCola/zrcolagui.cpp +++ b/ZRCola/zrcolagui.cpp @@ -144,7 +144,7 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS m_menuView->Append( m_menuItemToolbarEdit ); wxMenuItem* m_menuItemToolbarCompose; - m_menuItemToolbarCompose = new wxMenuItem( m_menuView, wxID_TOOLBAR_TRANSFORM, wxString( _("&Compose Toolbar") ) , _("Toggle compose toolbar"), wxITEM_CHECK ); + m_menuItemToolbarCompose = new wxMenuItem( m_menuView, wxID_TOOLBAR_TRANSLATE, wxString( _("&Compose Toolbar") ) , _("Toggle compose toolbar"), wxITEM_CHECK ); m_menuView->Append( m_menuItemToolbarCompose ); m_menuView->AppendSeparator(); @@ -194,15 +194,19 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS m_toolbarEdit->Realize(); m_mgr.AddPane( m_toolbarEdit, wxAuiPaneInfo().Name( wxT("toolbarEdit") ).Top().Caption( _("Edit") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Row( 0 ).Layer( 1 ).ToolbarPane() ); - m_toolbarTransform = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORZ_LAYOUT ); - m_toolCharSelect = m_toolbarTransform->AddTool( wxID_CHARACTER_SELECTOR, _("Find Character"), wxIcon( wxT("char_select.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Find Character"), _("Display character search to select character to insert into text"), NULL ); + m_toolbarTranslate = new wxAuiToolBar( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxAUI_TB_HORZ_LAYOUT ); + m_toolCharSelect = m_toolbarTranslate->AddTool( wxID_CHARACTER_SELECTOR, _("Find Character"), wxIcon( wxT("char_select.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Find Character"), _("Display character search to select character to insert into text"), NULL ); - m_toolSendDestination = m_toolbarTransform->AddTool( wxID_SEND_DESTINATION, _("Send Composed"), wxIcon( wxT("send_destination.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Composed"), _("Send composed text to source window"), NULL ); + m_toolSendDestination = m_toolbarTranslate->AddTool( wxID_SEND_DESTINATION, _("Send Composed"), wxIcon( wxT("send_destination.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Composed"), _("Send composed text to source window"), NULL ); - m_toolSendSource = m_toolbarTransform->AddTool( wxID_SEND_SOURCE, _("Send Decomposed"), wxIcon( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Decomposed"), _("Send decomposed text to source window"), NULL ); + m_toolSendSource = m_toolbarTranslate->AddTool( wxID_SEND_SOURCE, _("Send Decomposed"), wxIcon( wxT("send_source.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_NORMAL, _("Send Decomposed"), _("Send decomposed text to source window"), NULL ); - m_toolbarTransform->Realize(); - m_mgr.AddPane( m_toolbarTransform, wxAuiPaneInfo().Name( wxT("toolbarCompose") ).Top().Caption( _("Compose") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Row( 0 ).Layer( 1 ).ToolbarPane() ); + wxArrayString m_toolTranslationSeqChoices; + m_toolTranslationSeq = new wxChoice( m_toolbarTranslate, wxID_ANY, wxDefaultPosition, wxSize( 170,-1 ), m_toolTranslationSeqChoices, 0 ); + m_toolTranslationSeq->SetSelection( 0 ); + m_toolbarTranslate->AddControl( m_toolTranslationSeq ); + m_toolbarTranslate->Realize(); + m_mgr.AddPane( m_toolbarTranslate, wxAuiPaneInfo().Name( wxT("toolbarCompose") ).Top().Caption( _("Compose") ).PinButton( true ).Dock().Resizable().FloatingSize( wxSize( -1,-1 ) ).LeftDockable( false ).RightDockable( false ).Row( 0 ).Layer( 1 ).ToolbarPane() ); m_panelChrCat = new wxZRColaCharacterCatalogPanel( this ); @@ -221,6 +225,7 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( wxZRColaFrameBase::OnClose ) ); this->Connect( wxEVT_ICONIZE, wxIconizeEventHandler( wxZRColaFrameBase::OnIconize ) ); this->Connect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaFrameBase::OnIdle ) ); + m_toolTranslationSeq->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( wxZRColaFrameBase::OnTranslationSeqChoice ), NULL, this ); } wxZRColaFrameBase::~wxZRColaFrameBase() @@ -229,6 +234,7 @@ wxZRColaFrameBase::~wxZRColaFrameBase() this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( wxZRColaFrameBase::OnClose ) ); this->Disconnect( wxEVT_ICONIZE, wxIconizeEventHandler( wxZRColaFrameBase::OnIconize ) ); this->Disconnect( wxEVT_IDLE, wxIdleEventHandler( wxZRColaFrameBase::OnIdle ) ); + m_toolTranslationSeq->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( wxZRColaFrameBase::OnTranslationSeqChoice ), NULL, this ); m_mgr.UnInit(); @@ -804,79 +810,6 @@ wxZRColaSettingsBase::wxZRColaSettingsBase( wxWindow* parent, wxWindowID id, con m_panelLanguage->SetSizer( bSizerLanguage ); m_panelLanguage->Layout(); m_listbook->AddPage( m_panelLanguage, _("Text Language"), true ); - m_panelTransformation = new wxPanel( m_listbook, wxID_ANY, wxDefaultPosition, wxSize( 500,-1 ), wxTAB_TRAVERSAL ); - wxBoxSizer* bSizerTransformation; - bSizerTransformation = new wxBoxSizer( wxVERTICAL ); - - m_transLabel = new wxStaticText( m_panelTransformation, wxID_ANY, _("ZRCola offers multiple text transformations that can be arranged in a sequence.\nPlease select desired transformations and the order they are applied."), wxDefaultPosition, wxDefaultSize, 0 ); - m_transLabel->Wrap( 490 ); - bSizerTransformation->Add( m_transLabel, 0, wxALL|wxEXPAND, 5 ); - - wxFlexGridSizer* fgSizerTransformation; - fgSizerTransformation = new wxFlexGridSizer( 2, 3, 0, 0 ); - fgSizerTransformation->AddGrowableCol( 0 ); - fgSizerTransformation->AddGrowableCol( 2 ); - fgSizerTransformation->AddGrowableRow( 0 ); - fgSizerTransformation->SetFlexibleDirection( wxBOTH ); - fgSizerTransformation->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - - wxBoxSizer* bSizerTransAvailable; - bSizerTransAvailable = new wxBoxSizer( wxVERTICAL ); - - m_transAvailableLabel = new wxStaticText( m_panelTransformation, wxID_ANY, _("A&vailable:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_transAvailableLabel->Wrap( -1 ); - bSizerTransAvailable->Add( m_transAvailableLabel, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_transAvailable = new wxListBox( m_panelTransformation, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE|wxLB_SORT ); - bSizerTransAvailable->Add( m_transAvailable, 1, wxALL|wxEXPAND, 5 ); - - - fgSizerTransformation->Add( bSizerTransAvailable, 1, wxEXPAND, 5 ); - - wxBoxSizer* bSizerTransActivate; - bSizerTransActivate = new wxBoxSizer( wxVERTICAL ); - - m_transActivate = new wxButton( m_panelTransformation, wxID_ANY, _(">"), wxDefaultPosition, wxSize( 32,32 ), 0 ); - bSizerTransActivate->Add( m_transActivate, 0, wxALL, 5 ); - - m_transDeactivate = new wxButton( m_panelTransformation, wxID_ANY, _("<"), wxDefaultPosition, wxSize( 32,32 ), 0 ); - bSizerTransActivate->Add( m_transDeactivate, 0, wxALL, 5 ); - - - fgSizerTransformation->Add( bSizerTransActivate, 0, wxALIGN_CENTER_VERTICAL, 5 ); - - wxBoxSizer* bSizerTransActive; - bSizerTransActive = new wxBoxSizer( wxVERTICAL ); - - m_transActiveLabel = new wxStaticText( m_panelTransformation, wxID_ANY, _("&Active:"), wxDefaultPosition, wxDefaultSize, 0 ); - m_transActiveLabel->Wrap( -1 ); - bSizerTransActive->Add( m_transActiveLabel, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); - - m_transActive = new wxListBox( m_panelTransformation, wxID_ANY, wxDefaultPosition, wxDefaultSize, 0, NULL, wxLB_SINGLE ); - bSizerTransActive->Add( m_transActive, 1, wxALL|wxEXPAND, 5 ); - - - fgSizerTransformation->Add( bSizerTransActive, 1, wxEXPAND, 5 ); - - - bSizerTransformation->Add( fgSizerTransformation, 1, wxEXPAND, 5 ); - - wxBoxSizer* bSizerTransActiveReorder; - bSizerTransActiveReorder = new wxBoxSizer( wxHORIZONTAL ); - - m_transActiveUp = new wxButton( m_panelTransformation, wxID_ANY, _("Up"), wxDefaultPosition, wxSize( 70,-1 ), 0 ); - bSizerTransActiveReorder->Add( m_transActiveUp, 0, wxALL, 5 ); - - m_transActiveDown = new wxButton( m_panelTransformation, wxID_ANY, _("Down"), wxDefaultPosition, wxSize( 70,-1 ), 0 ); - bSizerTransActiveReorder->Add( m_transActiveDown, 0, wxALL, 5 ); - - - bSizerTransformation->Add( bSizerTransActiveReorder, 0, wxALIGN_RIGHT, 5 ); - - - m_panelTransformation->SetSizer( bSizerTransformation ); - m_panelTransformation->Layout(); - m_listbook->AddPage( m_panelTransformation, _("Transformation"), false ); m_panelAutoStart = new wxPanel( m_listbook, wxID_ANY, wxDefaultPosition, wxSize( 500,-1 ), wxTAB_TRAVERSAL ); wxBoxSizer* bSizerAutoStart; bSizerAutoStart = new wxBoxSizer( wxVERTICAL ); @@ -928,11 +861,6 @@ wxZRColaSettingsBase::wxZRColaSettingsBase( wxWindow* parent, wxWindowID id, con // Connect Events this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxZRColaSettingsBase::OnInitDialog ) ); m_panelLanguage->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxZRColaSettingsBase::OnLanguageUpdate ), NULL, this ); - m_panelTransformation->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxZRColaSettingsBase::OnTransformationUpdate ), NULL, this ); - m_transActivate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActivate ), NULL, this ); - m_transDeactivate->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransDeactivate ), NULL, this ); - m_transActiveUp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActiveUp ), NULL, this ); - m_transActiveDown->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActiveDown ), NULL, this ); m_sdbSizerButtonsApply->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnApplyButtonClick ), NULL, this ); m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnOKButtonClick ), NULL, this ); } @@ -942,11 +870,6 @@ wxZRColaSettingsBase::~wxZRColaSettingsBase() // Disconnect Events this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxZRColaSettingsBase::OnInitDialog ) ); m_panelLanguage->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxZRColaSettingsBase::OnLanguageUpdate ), NULL, this ); - m_panelTransformation->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxZRColaSettingsBase::OnTransformationUpdate ), NULL, this ); - m_transActivate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActivate ), NULL, this ); - m_transDeactivate->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransDeactivate ), NULL, this ); - m_transActiveUp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActiveUp ), NULL, this ); - m_transActiveDown->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnTransActiveDown ), NULL, this ); m_sdbSizerButtonsApply->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnApplyButtonClick ), NULL, this ); m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaSettingsBase::OnOKButtonClick ), NULL, this ); @@ -1167,3 +1090,130 @@ wxZRColaCharRequestBase::~wxZRColaCharRequestBase() m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaCharRequestBase::OnOKButtonClick ), NULL, this ); } + +wxZRColaTranslationSeqBase::wxZRColaTranslationSeqBase( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxDialog( parent, id, title, pos, size, style ) +{ + this->SetSizeHints( wxDefaultSize, wxDefaultSize ); + + wxBoxSizer* bSizerContent; + bSizerContent = new wxBoxSizer( wxVERTICAL ); + + wxStaticBoxSizer* sbSizerTranslationSet; + sbSizerTranslationSet = new wxStaticBoxSizer( new wxStaticBox( this, wxID_ANY, _("Translation") ), wxVERTICAL ); + + m_transLbl = new wxStaticText( sbSizerTranslationSet->GetStaticBox(), wxID_ANY, _("ZRCola offers multiple text translations that can be arranged in a sequence.\nPlease select desired translations and the order they are applied."), wxDefaultPosition, wxDefaultSize, 0 ); + m_transLbl->Wrap( 452 ); + sbSizerTranslationSet->Add( m_transLbl, 0, wxALL|wxEXPAND, 5 ); + + wxBoxSizer* bSizerTranslation; + bSizerTranslation = new wxBoxSizer( wxHORIZONTAL ); + + wxBoxSizer* bSizerTransAvailable; + bSizerTransAvailable = new wxBoxSizer( wxVERTICAL ); + + m_availableLbl = new wxStaticText( sbSizerTranslationSet->GetStaticBox(), wxID_ANY, _("A&vailable:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_availableLbl->Wrap( -1 ); + bSizerTransAvailable->Add( m_availableLbl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_available = new wxListBox( sbSizerTranslationSet->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxSize( 200,-1 ), 0, NULL, wxLB_SINGLE|wxLB_SORT ); + m_available->SetMinSize( wxSize( 200,150 ) ); + + bSizerTransAvailable->Add( m_available, 1, wxALL|wxEXPAND, 5 ); + + + bSizerTranslation->Add( bSizerTransAvailable, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizerTransSelect; + bSizerTransSelect = new wxBoxSizer( wxVERTICAL ); + + m_add = new wxButton( sbSizerTranslationSet->GetStaticBox(), wxID_ANY, _(">"), wxDefaultPosition, wxSize( 32,32 ), 0 ); + bSizerTransSelect->Add( m_add, 0, wxALL, 5 ); + + m_remove = new wxButton( sbSizerTranslationSet->GetStaticBox(), wxID_ANY, _("<"), wxDefaultPosition, wxSize( 32,32 ), 0 ); + bSizerTransSelect->Add( m_remove, 0, wxALL, 5 ); + + + bSizerTranslation->Add( bSizerTransSelect, 0, wxALIGN_CENTER_VERTICAL, 5 ); + + wxBoxSizer* bSizerTransSelected; + bSizerTransSelected = new wxBoxSizer( wxVERTICAL ); + + m_selectedLbl = new wxStaticText( sbSizerTranslationSet->GetStaticBox(), wxID_ANY, _("&Selected:"), wxDefaultPosition, wxDefaultSize, 0 ); + m_selectedLbl->Wrap( -1 ); + bSizerTransSelected->Add( m_selectedLbl, 0, wxEXPAND|wxTOP|wxRIGHT|wxLEFT, 5 ); + + m_selected = new wxListBox( sbSizerTranslationSet->GetStaticBox(), wxID_ANY, wxDefaultPosition, wxSize( 200,-1 ), 0, NULL, wxLB_SINGLE ); + m_selected->SetMinSize( wxSize( 200,150 ) ); + + bSizerTransSelected->Add( m_selected, 1, wxALL|wxEXPAND, 5 ); + + + bSizerTranslation->Add( bSizerTransSelected, 1, wxEXPAND, 5 ); + + + sbSizerTranslationSet->Add( bSizerTranslation, 1, wxEXPAND, 5 ); + + wxBoxSizer* bSizerTransActiveReorder; + bSizerTransActiveReorder = new wxBoxSizer( wxHORIZONTAL ); + + m_selectedUp = new wxButton( sbSizerTranslationSet->GetStaticBox(), wxID_ANY, _("Up"), wxDefaultPosition, wxSize( 70,-1 ), 0 ); + bSizerTransActiveReorder->Add( m_selectedUp, 0, wxALL, 5 ); + + m_selectedDown = new wxButton( sbSizerTranslationSet->GetStaticBox(), wxID_ANY, _("Down"), wxDefaultPosition, wxSize( 70,-1 ), 0 ); + bSizerTransActiveReorder->Add( m_selectedDown, 0, wxALL, 5 ); + + + sbSizerTranslationSet->Add( bSizerTransActiveReorder, 0, wxALIGN_RIGHT, 5 ); + + + bSizerContent->Add( sbSizerTranslationSet, 1, wxEXPAND|wxALL, 5 ); + + + bSizerContent->Add( 0, 0, 0, wxEXPAND|wxALL, 5 ); + + m_sdbSizerButtons = new wxStdDialogButtonSizer(); + m_sdbSizerButtonsOK = new wxButton( this, wxID_OK ); + m_sdbSizerButtons->AddButton( m_sdbSizerButtonsOK ); + m_sdbSizerButtonsCancel = new wxButton( this, wxID_CANCEL ); + m_sdbSizerButtons->AddButton( m_sdbSizerButtonsCancel ); + m_sdbSizerButtons->Realize(); + + bSizerContent->Add( m_sdbSizerButtons, 0, wxEXPAND|wxALL, 5 ); + + + this->SetSizer( bSizerContent ); + this->Layout(); + bSizerContent->Fit( this ); + + this->Centre( wxBOTH ); + + // Connect Events + this->Connect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxZRColaTranslationSeqBase::OnInitDialog ) ); + this->Connect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxZRColaTranslationSeqBase::OnUpdate ) ); + m_available->Connect( wxEVT_CHAR, wxKeyEventHandler( wxZRColaTranslationSeqBase::OnAvailableChar ), NULL, this ); + m_available->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnAvailableDClick ), NULL, this ); + m_add->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnAdd ), NULL, this ); + m_remove->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnRemove ), NULL, this ); + m_selected->Connect( wxEVT_CHAR, wxKeyEventHandler( wxZRColaTranslationSeqBase::OnSelectedChar ), NULL, this ); + m_selected->Connect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnSelectedDClick ), NULL, this ); + m_selectedUp->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnSelectedUp ), NULL, this ); + m_selectedDown->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnSelectedDown ), NULL, this ); + m_sdbSizerButtonsOK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnOKButtonClick ), NULL, this ); +} + +wxZRColaTranslationSeqBase::~wxZRColaTranslationSeqBase() +{ + // Disconnect Events + this->Disconnect( wxEVT_INIT_DIALOG, wxInitDialogEventHandler( wxZRColaTranslationSeqBase::OnInitDialog ) ); + this->Disconnect( wxEVT_UPDATE_UI, wxUpdateUIEventHandler( wxZRColaTranslationSeqBase::OnUpdate ) ); + m_available->Disconnect( wxEVT_CHAR, wxKeyEventHandler( wxZRColaTranslationSeqBase::OnAvailableChar ), NULL, this ); + m_available->Disconnect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnAvailableDClick ), NULL, this ); + m_add->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnAdd ), NULL, this ); + m_remove->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnRemove ), NULL, this ); + m_selected->Disconnect( wxEVT_CHAR, wxKeyEventHandler( wxZRColaTranslationSeqBase::OnSelectedChar ), NULL, this ); + m_selected->Disconnect( wxEVT_COMMAND_LISTBOX_DOUBLECLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnSelectedDClick ), NULL, this ); + m_selectedUp->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnSelectedUp ), NULL, this ); + m_selectedDown->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnSelectedDown ), NULL, this ); + m_sdbSizerButtonsOK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( wxZRColaTranslationSeqBase::OnOKButtonClick ), NULL, this ); + +} diff --git a/ZRCola/zrcolagui.h b/ZRCola/zrcolagui.h index 9af1c0b..29c95fe 100644 --- a/ZRCola/zrcolagui.h +++ b/ZRCola/zrcolagui.h @@ -25,6 +25,7 @@ class wxZRColaCharGrid; #include #include #include +#include class wxZRColaCharacterCatalogPanel; class wxZRColaComposerPanel; #include @@ -35,7 +36,6 @@ class wxZRColaComposerPanel; #include #include #include -#include #include #include #include @@ -70,7 +70,7 @@ class wxZRColaFrameBase : public wxFrame wxID_SEND_ABORT, wxID_SETTINGS, wxID_TOOLBAR_EDIT, - wxID_TOOLBAR_TRANSFORM, + wxID_TOOLBAR_TRANSLATE, wxID_PANEL_CHRGRPS, wxID_HELP_INSTRUCTIONS, wxID_HELP_SHORTCUTS, @@ -87,10 +87,11 @@ class wxZRColaFrameBase : public wxFrame wxAuiToolBarItem* m_toolEditCut; wxAuiToolBarItem* m_toolEditCopy; wxAuiToolBarItem* m_toolEditPaste; - wxAuiToolBar* m_toolbarTransform; + wxAuiToolBar* m_toolbarTranslate; wxAuiToolBarItem* m_toolCharSelect; wxAuiToolBarItem* m_toolSendDestination; wxAuiToolBarItem* m_toolSendSource; + wxChoice* m_toolTranslationSeq; wxZRColaCharacterCatalogPanel* m_panelChrCat; wxStatusBar* m_statusBar; @@ -98,6 +99,7 @@ class wxZRColaFrameBase : public wxFrame virtual void OnClose( wxCloseEvent& event ) { event.Skip(); } virtual void OnIconize( wxIconizeEvent& event ) { event.Skip(); } virtual void OnIdle( wxIdleEvent& event ) { event.Skip(); } + virtual void OnTranslationSeqChoice( wxCommandEvent& event ) { event.Skip(); } public: @@ -264,16 +266,6 @@ class wxZRColaSettingsBase : public wxDialog wxRadioButton* m_langAuto; wxRadioButton* m_langManual; wxListBox* m_languages; - wxPanel* m_panelTransformation; - wxStaticText* m_transLabel; - wxStaticText* m_transAvailableLabel; - wxListBox* m_transAvailable; - wxButton* m_transActivate; - wxButton* m_transDeactivate; - wxStaticText* m_transActiveLabel; - wxListBox* m_transActive; - wxButton* m_transActiveUp; - wxButton* m_transActiveDown; wxPanel* m_panelAutoStart; wxStaticText* m_autoStartLabel; wxCheckBox* m_autoStart; @@ -285,11 +277,6 @@ class wxZRColaSettingsBase : public wxDialog // Virtual event handlers, overide them in your derived class virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } virtual void OnLanguageUpdate( wxUpdateUIEvent& event ) { event.Skip(); } - virtual void OnTransformationUpdate( wxUpdateUIEvent& event ) { event.Skip(); } - virtual void OnTransActivate( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTransDeactivate( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTransActiveUp( wxCommandEvent& event ) { event.Skip(); } - virtual void OnTransActiveDown( wxCommandEvent& event ) { event.Skip(); } virtual void OnApplyButtonClick( wxCommandEvent& event ) { event.Skip(); } virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); } @@ -381,4 +368,46 @@ class wxZRColaCharRequestBase : public wxDialog }; +/////////////////////////////////////////////////////////////////////////////// +/// Class wxZRColaTranslationSeqBase +/////////////////////////////////////////////////////////////////////////////// +class wxZRColaTranslationSeqBase : public wxDialog +{ + private: + + protected: + wxStaticText* m_transLbl; + wxStaticText* m_availableLbl; + wxListBox* m_available; + wxButton* m_add; + wxButton* m_remove; + wxStaticText* m_selectedLbl; + wxListBox* m_selected; + wxButton* m_selectedUp; + wxButton* m_selectedDown; + wxStdDialogButtonSizer* m_sdbSizerButtons; + wxButton* m_sdbSizerButtonsOK; + wxButton* m_sdbSizerButtonsCancel; + + // Virtual event handlers, overide them in your derived class + virtual void OnInitDialog( wxInitDialogEvent& event ) { event.Skip(); } + virtual void OnUpdate( wxUpdateUIEvent& event ) { event.Skip(); } + virtual void OnAvailableChar( wxKeyEvent& event ) { event.Skip(); } + virtual void OnAvailableDClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnAdd( wxCommandEvent& event ) { event.Skip(); } + virtual void OnRemove( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSelectedChar( wxKeyEvent& event ) { event.Skip(); } + virtual void OnSelectedDClick( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSelectedUp( wxCommandEvent& event ) { event.Skip(); } + virtual void OnSelectedDown( wxCommandEvent& event ) { event.Skip(); } + virtual void OnOKButtonClick( wxCommandEvent& event ) { event.Skip(); } + + + public: + + wxZRColaTranslationSeqBase( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Custom Translation Sequence"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = wxDEFAULT_DIALOG_STYLE ); + ~wxZRColaTranslationSeqBase(); + +}; + #endif //__ZRCOLAGUI_H__ diff --git a/ZRCola/zrcolasettings.cpp b/ZRCola/zrcolasettings.cpp index 7047a50..c0662c4 100644 --- a/ZRCola/zrcolasettings.cpp +++ b/ZRCola/zrcolasettings.cpp @@ -27,7 +27,6 @@ wxZRColaSettings::wxZRColaSettings(wxWindow* parent) : m_lang_auto(true), m_lang(ZRCola::langid_t::blank), - m_transeq(1, 0), // By default use translation set 0 (ZRCola Decomposed >> ZRCola Composed) wxZRColaSettingsBase(parent) { auto app = dynamic_cast(wxTheApp); @@ -39,18 +38,6 @@ wxZRColaSettings::wxZRColaSettings(wxWindow* parent) : label_tran(wxGetTranslation(label, wxT("ZRCola-zrcdb"))); m_languages->Insert(label_tran, i); } - - m_transAvailable->Clear(); - for (size_t i = 0, n = app->m_ts_db.idxTranSet.size(); i < n; i++) { - const ZRCola::transet_db::transet &ts = app->m_ts_db.idxTranSet[i]; - wxString - src(ts.src(), ts.src_len()), - dst(ts.dst(), ts.dst_len()), - src_tran(wxGetTranslation(src, wxT("ZRCola-zrcdb"))), - dst_tran(wxGetTranslation(dst, wxT("ZRCola-zrcdb"))), - label_tran(wxString::Format(wxT("%s \x00bb %s"), src_tran.c_str(), dst_tran.c_str())); - m_transAvailable->Append(label_tran, (void*)ts.set); - } } @@ -73,24 +60,6 @@ void wxZRColaSettings::OnInitDialog(wxInitDialogEvent& event) auto app = dynamic_cast(wxTheApp); ZRCola::language_db::indexLang::size_type start; m_languages->Select(app->m_lang_db.idxLang.find(ZRCola::language_db::language(m_lang), start) ? start : -1); - - m_transActive->Clear(); - for (auto s = m_transeq.cbegin(), s_end = m_transeq.cend(); s != s_end; ++s) { - ZRCola::transet_db::indexTranSet::size_type start; - if (app->m_ts_db.idxTranSet.find(ZRCola::transet_db::transet(*s), start)) { - const ZRCola::transet_db::transet &ts = app->m_ts_db.idxTranSet[start]; - wxString - src(ts.src(), ts.src_len()), - dst(ts.dst(), ts.dst_len()), - src_tran(wxGetTranslation(src, wxT("ZRCola-zrcdb"))), - dst_tran(wxGetTranslation(dst, wxT("ZRCola-zrcdb"))), - label_tran(wxString::Format(wxT("%s \x00bb %s"), src_tran.c_str(), dst_tran.c_str())); - m_transActive->Append(label_tran, (void*)ts.set); - } else { - wxString label_tran(wxString::Format(_("Unknown transformation (%u)"), (unsigned int)*s)); - m_transActive->Append(label_tran, (void*)*s); - } - } } @@ -102,69 +71,6 @@ void wxZRColaSettings::OnLanguageUpdate(wxUpdateUIEvent& event) } -void wxZRColaSettings::OnTransformationUpdate(wxUpdateUIEvent& event) -{ - m_transActivate->Enable(m_transAvailable->GetSelection() != wxNOT_FOUND); - - int idx = m_transActive->GetSelection(); - m_transDeactivate->Enable(idx != wxNOT_FOUND); - m_transActiveUp ->Enable(idx != wxNOT_FOUND && (unsigned int)idx > 0); - m_transActiveDown->Enable(idx != wxNOT_FOUND && (unsigned int)idx < m_transActive->GetCount() - 1); - - wxZRColaSettingsBase::OnTransformationUpdate(event); -} - - -void wxZRColaSettings::OnTransActivate(wxCommandEvent& event) -{ - int idx = m_transAvailable->GetSelection(); - wxASSERT_MSG(idx != wxNOT_FOUND, wxT("no available transformation selected")); - m_transActive->Append( - m_transAvailable->GetString(idx), - m_transAvailable->GetClientData(idx)); - - wxZRColaSettingsBase::OnTransActivate(event); -} - - -void wxZRColaSettings::OnTransDeactivate(wxCommandEvent& event) -{ - int idx = m_transActive->GetSelection(); - wxASSERT_MSG(idx != wxNOT_FOUND, wxT("no active transformation selected")); - m_transActive->Delete(idx); - - wxZRColaSettingsBase::OnTransDeactivate(event); -} - - -void wxZRColaSettings::OnTransActiveUp(wxCommandEvent& event) -{ - int idx = m_transActive->GetSelection(); - wxASSERT_MSG(idx != wxNOT_FOUND && (unsigned int)idx > 0, wxT("no or first active transformation selected")); - wxString label = m_transActive->GetString(idx); - void *data = m_transActive->GetClientData(idx); - m_transActive->Delete(idx); - m_transActive->Insert(label, idx - 1, data); - m_transActive->Select(idx - 1); - - wxZRColaSettingsBase::OnTransActiveUp(event); -} - - -void wxZRColaSettings::OnTransActiveDown(wxCommandEvent& event) -{ - int idx = m_transActive->GetSelection(); - wxASSERT_MSG(idx != wxNOT_FOUND && (unsigned int)idx < m_transActive->GetCount() - 1, wxT("no or last active transformation selected")); - wxString label = m_transActive->GetString(idx); - void *data = m_transActive->GetClientData(idx); - m_transActive->Delete(idx); - m_transActive->Insert(label, idx + 1, data); - m_transActive->Select(idx + 1); - - wxZRColaSettingsBase::OnTransActiveDown(event); -} - - void wxZRColaSettings::OnApplyButtonClick(wxCommandEvent& event) { event.Skip(); @@ -215,19 +121,14 @@ void wxZRColaSettings::OnApplyButtonClick(wxCommandEvent& event) if (m_lang != lang.lang) { m_lang = lang.lang; - // Notify destination text something changed and should re-inverse transform. + // Notify destination text something changed and should re-inverse translate. wxCommandEvent event2(wxEVT_COMMAND_TEXT_UPDATED); app->m_mainWnd->m_panel->m_destination->ProcessWindowEvent(event2); } } - - m_transeq.clear(); - for (unsigned int i = 0, n = m_transActive->GetCount(); i < n; i++) - m_transeq.push_back((ZRCola::transetid_t)m_transActive->GetClientData(i)); } - void wxZRColaSettings::OnOKButtonClick(wxCommandEvent& event) { wxZRColaSettings::OnApplyButtonClick(event); @@ -251,12 +152,6 @@ void wxPersistentZRColaSettings::Save() const SaveValue(wxT("langAuto"), wnd->m_lang_auto); SaveValue(wxT("lang" ), wxString::FromAscii(wnd->m_lang.data, _countof(wnd->m_lang.data))); - - wxString str; - bool first = true; - for (auto s = wnd->m_transeq.cbegin(), s_end = wnd->m_transeq.cend(); s != s_end; ++s, first = false) - str += wxString::Format(first ? wxT("%u") : wxT("|%u"), *s); - SaveValue(wxT("transeq"), str); } @@ -283,22 +178,5 @@ bool wxPersistentZRColaSettings::Restore() } else wnd->m_lang = ZRCola::langid_t::blank; - wxString str; - if (RestoreValue(wxT("transeq"), &str)) { - std::vector transeq; - for (wxStringTokenizer tok(str, wxT("|")); tok.HasMoreTokens(); ) { - unsigned long val = _tcstoul(tok.GetNextToken().c_str(), NULL, 10); - for (size_t i = 0, n = app->m_ts_db.idxTranSet.size(); i < n; i++) { - const ZRCola::transet_db::transet &cg = app->m_ts_db.idxTranSet[i]; - if (cg.set == val) { - transeq.push_back(val); - break; - } - } - } - if (!transeq.empty()) - wnd->m_transeq = std::move(transeq); - } - return wxPersistentDialog::Restore(); } diff --git a/ZRCola/zrcolasettings.h b/ZRCola/zrcolasettings.h index a1d5403..07795ca 100644 --- a/ZRCola/zrcolasettings.h +++ b/ZRCola/zrcolasettings.h @@ -27,7 +27,6 @@ class wxPersistentZRColaSettings; #pragma once #include "zrcolagui.h" -#include #include #include @@ -45,18 +44,12 @@ public: protected: virtual void OnInitDialog(wxInitDialogEvent& event); virtual void OnLanguageUpdate(wxUpdateUIEvent& event); - virtual void OnTransformationUpdate(wxUpdateUIEvent& event); - virtual void OnTransActivate(wxCommandEvent& event); - virtual void OnTransDeactivate(wxCommandEvent& event); - virtual void OnTransActiveUp(wxCommandEvent& event); - virtual void OnTransActiveDown(wxCommandEvent& event); virtual void OnApplyButtonClick(wxCommandEvent& event); virtual void OnOKButtonClick(wxCommandEvent& event); public: - bool m_lang_auto; ///< Is language for inverse translation resolved using currently selected keyboard - ZRCola::langid_t m_lang; ///< Language for inverse translation - std::vector m_transeq; ///< Transformation set sequence + bool m_lang_auto; ///< Is language for inverse translation resolved using currently selected keyboard + ZRCola::langid_t m_lang; ///< Language for inverse translation }; diff --git a/ZRCola/zrcolatranseq.cpp b/ZRCola/zrcolatranseq.cpp new file mode 100644 index 0000000..9888a34 --- /dev/null +++ b/ZRCola/zrcolatranseq.cpp @@ -0,0 +1,253 @@ +/* + Copyright 2015-2017 Amebis + + This file is part of ZRCola. + + ZRCola is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ZRCola is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with ZRCola. If not, see . +*/ + +#include "stdafx.h" + + +////////////////////////////////////////////////////////////////////////// +// wxZRColaTranslationSeq +////////////////////////////////////////////////////////////////////////// + +wxZRColaTranslationSeq::wxZRColaTranslationSeq(wxWindow* parent) : + wxZRColaTranslationSeqBase(parent) +{ + auto app = dynamic_cast(wxTheApp); + + m_available->Clear(); + for (size_t i = 0, n = app->m_ts_db.idxTranSet.size(); i < n; i++) { + const ZRCola::transet_db::transet &ts = app->m_ts_db.idxTranSet[i]; + wxString + src(ts.src(), ts.src_len()), + dst(ts.dst(), ts.dst_len()), + src_tran(wxGetTranslation(src, wxT("ZRCola-zrcdb"))), + dst_tran(wxGetTranslation(dst, wxT("ZRCola-zrcdb"))), + label_tran(wxString::Format(wxT("%s \x00bb %s"), src_tran.c_str(), dst_tran.c_str())); + m_available->Append(label_tran, (void*)ts.set); + } +} + + +void wxZRColaTranslationSeq::OnInitDialog(wxInitDialogEvent& event) +{ + auto app = dynamic_cast(wxTheApp); + + m_selected->Clear(); + for (auto s = m_transeq.cbegin(), s_end = m_transeq.cend(); s != s_end; ++s) { + ZRCola::transet_db::indexTranSet::size_type start; + if (app->m_ts_db.idxTranSet.find(ZRCola::transet_db::transet(*s), start)) { + const ZRCola::transet_db::transet &ts = app->m_ts_db.idxTranSet[start]; + wxString + src(ts.src(), ts.src_len()), + dst(ts.dst(), ts.dst_len()), + src_tran(wxGetTranslation(src, wxT("ZRCola-zrcdb"))), + dst_tran(wxGetTranslation(dst, wxT("ZRCola-zrcdb"))), + label_tran(wxString::Format(wxT("%s \x00bb %s"), src_tran.c_str(), dst_tran.c_str())); + m_selected->Append(label_tran, (void*)ts.set); + } else { + wxString label_tran(wxString::Format(_("Unknown translation (%u)"), (unsigned int)*s)); + m_selected->Append(label_tran, (void*)*s); + } + } + + wxZRColaTranslationSeqBase::OnInitDialog(event); +} + + +void wxZRColaTranslationSeq::OnUpdate(wxUpdateUIEvent& event) +{ + m_add->Enable(m_available->GetSelection() != wxNOT_FOUND); + + int idx = m_selected->GetSelection(); + m_remove ->Enable(idx != wxNOT_FOUND); + m_selectedUp ->Enable(idx != wxNOT_FOUND && (unsigned int)idx > 0); + m_selectedDown->Enable(idx != wxNOT_FOUND && (unsigned int)idx < m_selected->GetCount() - 1); + + wxZRColaTranslationSeqBase::OnUpdate(event); +} + + +void wxZRColaTranslationSeq::OnAvailableChar(wxKeyEvent& event) +{ + if (event.GetRawKeyCode() == VK_INSERT) { + int idx = m_available->GetSelection(); + if (idx != wxNOT_FOUND) { + m_selected->Append( + m_available->GetString(idx), + m_available->GetClientData(idx)); + } + } + + wxZRColaTranslationSeqBase::OnAvailableChar(event); +} + + +void wxZRColaTranslationSeq::OnAvailableDClick(wxCommandEvent& event) +{ + int idx = m_available->GetSelection(); + if (idx != wxNOT_FOUND) { + m_selected->Append( + m_available->GetString(idx), + m_available->GetClientData(idx)); + } + + wxZRColaTranslationSeqBase::OnAvailableDClick(event); +} + + +void wxZRColaTranslationSeq::OnAdd(wxCommandEvent& event) +{ + int idx = m_available->GetSelection(); + wxASSERT_MSG(idx != wxNOT_FOUND, wxT("no available translation selected")); + m_selected->Append( + m_available->GetString(idx), + m_available->GetClientData(idx)); + + wxZRColaTranslationSeqBase::OnAdd(event); +} + + +void wxZRColaTranslationSeq::OnRemove(wxCommandEvent& event) +{ + int idx = m_selected->GetSelection(); + wxASSERT_MSG(idx != wxNOT_FOUND, wxT("no active translation selected")); + m_selected->Delete(idx); + + wxZRColaTranslationSeqBase::OnRemove(event); +} + + +void wxZRColaTranslationSeq::OnSelectedChar(wxKeyEvent& event) +{ + if (event.GetRawKeyCode() == VK_DELETE) { + int idx = m_selected->GetSelection(); + if (idx != wxNOT_FOUND) + m_selected->Delete(idx); + } + + wxZRColaTranslationSeqBase::OnSelectedChar(event); +} + + +void wxZRColaTranslationSeq::OnSelectedDClick(wxCommandEvent& event) +{ + int idx = m_selected->GetSelection(); + if (idx != wxNOT_FOUND) + m_selected->Delete(idx); + + wxZRColaTranslationSeqBase::OnSelectedDClick(event); +} + + +void wxZRColaTranslationSeq::OnSelectedUp(wxCommandEvent& event) +{ + int idx = m_selected->GetSelection(); + wxASSERT_MSG(idx != wxNOT_FOUND && (unsigned int)idx > 0, wxT("no or first active translation selected")); + wxString label = m_selected->GetString(idx); + void *data = m_selected->GetClientData(idx); + m_selected->Delete(idx); + m_selected->Insert(label, idx - 1, data); + m_selected->Select(idx - 1); + + wxZRColaTranslationSeqBase::OnSelectedUp(event); +} + + +void wxZRColaTranslationSeq::OnSelectedDown(wxCommandEvent& event) +{ + int idx = m_selected->GetSelection(); + wxASSERT_MSG(idx != wxNOT_FOUND && (unsigned int)idx < m_selected->GetCount() - 1, wxT("no or last active translation selected")); + wxString label = m_selected->GetString(idx); + void *data = m_selected->GetClientData(idx); + m_selected->Delete(idx); + m_selected->Insert(label, idx + 1, data); + m_selected->Select(idx + 1); + + wxZRColaTranslationSeqBase::OnSelectedDown(event); +} + + +void wxZRColaTranslationSeq::OnApplyButtonClick(wxCommandEvent& event) +{ + event.Skip(); + + auto app = dynamic_cast(wxTheApp); + + m_transeq.clear(); + for (unsigned int i = 0, n = m_selected->GetCount(); i < n; i++) + m_transeq.push_back(reinterpret_cast(m_selected->GetClientData(i))); + + // Notify source text something changed and should re-translate. + wxCommandEvent event2(wxEVT_COMMAND_TEXT_UPDATED); + app->m_mainWnd->m_panel->m_source->ProcessWindowEvent(event2); +} + + +void wxZRColaTranslationSeq::OnOKButtonClick(wxCommandEvent& event) +{ + wxZRColaTranslationSeq::OnApplyButtonClick(event); +} + + +////////////////////////////////////////////////////////////////////////// +// wxPersistentZRColaTranslationSeq +////////////////////////////////////////////////////////////////////////// + +wxPersistentZRColaTranslationSeq::wxPersistentZRColaTranslationSeq(wxZRColaTranslationSeq *wnd) : wxPersistentDialog(wnd) +{ +} + + +void wxPersistentZRColaTranslationSeq::Save() const +{ + wxPersistentDialog::Save(); + + auto wnd = static_cast(GetWindow()); // dynamic_cast is not reliable as we are typically called late in the wxTopLevelWindowMSW destructor. + + wxString str; + bool first = true; + for (auto s = wnd->m_transeq.cbegin(), s_end = wnd->m_transeq.cend(); s != s_end; ++s, first = false) + str += wxString::Format(first ? wxT("%u") : wxT("|%u"), *s); + SaveValue(wxT("transeq"), str); +} + + +bool wxPersistentZRColaTranslationSeq::Restore() +{ + auto wnd = dynamic_cast(GetWindow()); + auto app = dynamic_cast(wxTheApp); + + wxString str; + if (RestoreValue(wxT("transeq"), &str)) { + std::vector transet; + for (wxStringTokenizer tok(str, wxT("|")); tok.HasMoreTokens(); ) { + unsigned long val = _tcstoul(tok.GetNextToken().c_str(), NULL, 10); + for (size_t i = 0, n = app->m_ts_db.idxTranSet.size(); i < n; i++) { + const ZRCola::transet_db::transet &cg = app->m_ts_db.idxTranSet[i]; + if (cg.set == val) { + transet.push_back(val); + break; + } + } + } + if (!transet.empty()) + wnd->m_transeq = std::move(transet); + } + + return wxPersistentDialog::Restore(); +} diff --git a/ZRCola/zrcolatranseq.h b/ZRCola/zrcolatranseq.h new file mode 100644 index 0000000..f5e983d --- /dev/null +++ b/ZRCola/zrcolatranseq.h @@ -0,0 +1,80 @@ +/* + Copyright 2015-2017 Amebis + + This file is part of ZRCola. + + ZRCola is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + ZRCola is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with ZRCola. If not, see . +*/ + +/// +/// Forward declarations +/// +class wxZRColaTranslationSeq; +class wxPersistentZRColaTranslationSeq; + + +#pragma once + +#include "zrcolagui.h" +#include +#include +#include + + +/// +/// Configuration dialog +/// +class wxZRColaTranslationSeq : public wxZRColaTranslationSeqBase +{ +public: + wxZRColaTranslationSeq(wxWindow* parent); + + friend class wxPersistentZRColaTranslationSeq; // Allow saving/restoring window state. + +protected: + virtual void OnInitDialog(wxInitDialogEvent& event); + virtual void OnUpdate(wxUpdateUIEvent& event); + virtual void OnAvailableChar(wxKeyEvent& event); + virtual void OnAvailableDClick(wxCommandEvent& event); + virtual void OnAdd(wxCommandEvent& event); + virtual void OnRemove(wxCommandEvent& event); + virtual void OnSelectedChar(wxKeyEvent& event); + virtual void OnSelectedDClick(wxCommandEvent& event); + virtual void OnSelectedUp(wxCommandEvent& event); + virtual void OnSelectedDown(wxCommandEvent& event); + virtual void OnApplyButtonClick(wxCommandEvent& event); + virtual void OnOKButtonClick(wxCommandEvent& event); + +public: + std::vector m_transeq; ///< Custom translation set sequence +}; + + +/// +/// Supports saving/restoring wxZRColaTranslationSeq state +/// +class wxPersistentZRColaTranslationSeq : public wxPersistentDialog +{ +public: + wxPersistentZRColaTranslationSeq(wxZRColaTranslationSeq *wnd); + + virtual void Save() const; + virtual bool Restore(); +}; + + +inline wxPersistentObject *wxCreatePersistentObject(wxZRColaTranslationSeq *wnd) +{ + return new wxPersistentZRColaTranslationSeq(wnd); +} diff --git a/lib/wxExtend b/lib/wxExtend index aa39edf..d80f241 160000 --- a/lib/wxExtend +++ b/lib/wxExtend @@ -1 +1 @@ -Subproject commit aa39edfe90e11d8b0ca037ab53802a6b51bb251a +Subproject commit d80f24189d8722d079d26b0f6b49afeb97cc5f19