From feb68ce463e38c986d979792e333533415bf6663 Mon Sep 17 00:00:00 2001 From: Simon Rozman Date: Thu, 18 Nov 2021 12:30:46 +0100 Subject: [PATCH] Make ZRCola translation first followed by transliterations Signed-off-by: Simon Rozman --- ZRCola/res/ZRCola.fbp | 39 +++++++++++++++++++++++---------------- ZRCola/res/zrcolagui.cpp | 10 +++++++--- ZRCola/res/zrcolagui.h | 4 ++-- ZRCola/zrcolacomppnl.cpp | 34 +++++++++++++++++----------------- ZRCola/zrcolagui.cpp | 10 +++++++--- ZRCola/zrcolagui.h | 4 ++-- 6 files changed, 58 insertions(+), 43 deletions(-) diff --git a/ZRCola/res/ZRCola.fbp b/ZRCola/res/ZRCola.fbp index b752e40..3b1114d 100644 --- a/ZRCola/res/ZRCola.fbp +++ b/ZRCola/res/ZRCola.fbp @@ -247,12 +247,6 @@ separator4 none - - - Tra&nslation - m_menuTranslationSeq - protected - 0 @@ -266,6 +260,16 @@ + + + Tra&nslation + m_menuTranslationSeq + protected + + + separator5 + none + 0 @@ -280,7 +284,7 @@ - separator5 + separator6 none @@ -612,6 +616,17 @@ protected + + Load From Icon Resource; composition.ico; [24; 24] + 0 + wxID_COMPOSITION + wxITEM_CHECK + ZRCola (De)composition + m_toolComposition + protected + Toggle ZRCola character (De)composition + ZRCola (De)composition + 1 1 @@ -672,16 +687,8 @@ OnTranslationSeqChoice - - Load From Icon Resource; composition.ico; [24; 24] - 0 - wxID_COMPOSITION - wxITEM_CHECK - ZRCola (De)composition - m_toolComposition + protected - Toggle ZRCola character (De)composition - ZRCola (De)composition Load From Icon Resource; warn_pua.ico; [24; 24] diff --git a/ZRCola/res/zrcolagui.cpp b/ZRCola/res/zrcolagui.cpp index 18e9ee1..61543d1 100644 --- a/ZRCola/res/zrcolagui.cpp +++ b/ZRCola/res/zrcolagui.cpp @@ -133,12 +133,14 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS m_menuEdit->AppendSeparator(); + m_menuItemComposition = new wxMenuItem( m_menuEdit, wxID_COMPOSITION, wxString( _("&ZRCola (De)composition") ) , _("Toggle ZRCola character (De)composition"), wxITEM_CHECK ); + m_menuEdit->Append( m_menuItemComposition ); + m_menuTranslationSeq = new wxMenu(); wxMenuItem* m_menuTranslationSeqItem = new wxMenuItem( m_menuEdit, wxID_ANY, _("Tra&nslation"), wxEmptyString, wxITEM_NORMAL, m_menuTranslationSeq ); m_menuEdit->Append( m_menuTranslationSeqItem ); - m_menuItemComposition = new wxMenuItem( m_menuEdit, wxID_COMPOSITION, wxString( _("&ZRCola (De)composition") ) , _("Toggle ZRCola character (De)composition"), wxITEM_CHECK ); - m_menuEdit->Append( m_menuItemComposition ); + m_menuEdit->AppendSeparator(); m_menuItemWarnPUA = new wxMenuItem( m_menuEdit, wxID_WARN_PUA, wxString( _("&PUA Warning") ) , _("Toggle PUA warning"), wxITEM_CHECK ); m_menuEdit->Append( m_menuItemWarnPUA ); @@ -216,11 +218,13 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS m_toolbarTranslate->AddSeparator(); + m_toolComposition = m_toolbarTranslate->AddTool( wxID_COMPOSITION, _("ZRCola (De)composition"), wxIcon( wxT("composition.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_CHECK, _("ZRCola (De)composition"), _("Toggle ZRCola character (De)composition"), NULL ); + wxArrayString m_toolTranslationSeqChoices; m_toolTranslationSeq = new wxChoice( m_toolbarTranslate, wxID_ANY, wxDefaultPosition, wxSize( 240,-1 ), m_toolTranslationSeqChoices, 0 ); m_toolTranslationSeq->SetSelection( 0 ); m_toolbarTranslate->AddControl( m_toolTranslationSeq ); - m_toolComposition = m_toolbarTranslate->AddTool( wxID_COMPOSITION, _("ZRCola (De)composition"), wxIcon( wxT("composition.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_CHECK, _("ZRCola (De)composition"), _("Toggle ZRCola character (De)composition"), NULL ); + m_toolbarTranslate->AddSeparator(); m_toolWarnPUA = m_toolbarTranslate->AddTool( wxID_WARN_PUA, _("PUA Warning"), wxIcon( wxT("warn_pua.ico"), wxBITMAP_TYPE_ICO_RESOURCE, 24, 24 ), wxNullBitmap, wxITEM_CHECK, _("Highlight PUA Characters"), _("Toggle PUA warning"), NULL ); diff --git a/ZRCola/res/zrcolagui.h b/ZRCola/res/zrcolagui.h index 3f4b8ac..c4a3782 100644 --- a/ZRCola/res/zrcolagui.h +++ b/ZRCola/res/zrcolagui.h @@ -82,8 +82,8 @@ class wxZRColaFrameBase : public wxFrame wxMenuBar* m_menubar; wxMenu* m_menuProgram; wxMenu* m_menuEdit; - wxMenu* m_menuTranslationSeq; wxMenuItem* m_menuItemComposition; + wxMenu* m_menuTranslationSeq; wxMenuItem* m_menuItemWarnPUA; wxMenu* m_menuView; wxMenu* m_menuHelp; @@ -95,8 +95,8 @@ class wxZRColaFrameBase : public wxFrame wxAuiToolBarItem* m_toolCharSelect; wxAuiToolBarItem* m_toolSendDestination; wxAuiToolBarItem* m_toolSendSource; - wxChoice* m_toolTranslationSeq; wxAuiToolBarItem* m_toolComposition; + wxChoice* m_toolTranslationSeq; wxAuiToolBarItem* m_toolWarnPUA; wxZRColaCharacterCatalogPanel* m_panelChrCat; wxStatusBar* m_statusBar; diff --git a/ZRCola/zrcolacomppnl.cpp b/ZRCola/zrcolacomppnl.cpp index 1cac2d7..9b5a09a 100644 --- a/ZRCola/zrcolacomppnl.cpp +++ b/ZRCola/zrcolacomppnl.cpp @@ -112,15 +112,6 @@ void wxZRColaComposerPanel::SynchronizePanels() m_mapping.clear(); - // Other translations - const ZRCola::transetid_t *sets_begin, *sets_end; - GetTranslationSeq(sets_begin, sets_end); - for (auto s = sets_begin; s != sets_end; ++s) { - app->m_t_db.Translate(*s, dst.data(), dst.size(), dst2, &map); - m_mapping.push_back(std::move(map)); - dst = std::move(dst2); - } - if (app->m_mainWnd->m_composition) { // ZRCola decompose first, then re-compose. app->m_t_db.TranslateInv(ZRCOLA_TRANSEQID_DEFAULT, dst.data(), dst.size(), dst2, &map); @@ -130,6 +121,15 @@ void wxZRColaComposerPanel::SynchronizePanels() m_mapping.push_back(std::move(map)); } + // Other translations + const ZRCola::transetid_t *sets_begin, *sets_end; + GetTranslationSeq(sets_begin, sets_end); + for (auto s = sets_begin; s != sets_end; ++s) { + app->m_t_db.Translate(*s, dst.data(), dst.size(), dst2, &map); + m_mapping.push_back(std::move(map)); + dst = std::move(dst2); + } + m_source->GetSelection(&m_selSource.first, &m_selSource.second); // Update source HEX dump. @@ -156,20 +156,20 @@ void wxZRColaComposerPanel::SynchronizePanels() m_mapping.clear(); - if (app->m_mainWnd->m_composition) { - // ZRCola decompose. - app->m_t_db.TranslateInv(ZRCOLA_TRANSEQID_DEFAULT, dst.data(), dst.size(), &app->m_lc_db, app->m_mainWnd->m_settings->m_lang, dst2, &map); + // Other translations + const ZRCola::transetid_t *sets_begin, *sets_end; + GetTranslationSeq(sets_begin, sets_end); + for (auto s = sets_end; (s--) != sets_begin;) { + app->m_t_db.TranslateInv(*s, dst.data(), dst.size(), dst2, &map); dst = std::move(dst2); map.invert(); m_mapping.push_back(std::move(map)); } - // Other translations - const ZRCola::transetid_t *sets_begin, *sets_end; - GetTranslationSeq(sets_begin, sets_end); - for (auto s = sets_end; (s--) != sets_begin;) { - app->m_t_db.TranslateInv(*s, dst.data(), dst.size(), dst2, &map); + if (app->m_mainWnd->m_composition) { + // ZRCola decompose. + app->m_t_db.TranslateInv(ZRCOLA_TRANSEQID_DEFAULT, dst.data(), dst.size(), &app->m_lc_db, app->m_mainWnd->m_settings->m_lang, dst2, &map); dst = std::move(dst2); map.invert(); diff --git a/ZRCola/zrcolagui.cpp b/ZRCola/zrcolagui.cpp index f03fe3b..920cf99 100644 --- a/ZRCola/zrcolagui.cpp +++ b/ZRCola/zrcolagui.cpp @@ -133,12 +133,14 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS m_menuEdit->AppendSeparator(); + m_menuItemComposition = new wxMenuItem( m_menuEdit, wxID_COMPOSITION, wxString( _("&ZRCola (De)composition") ) , _("Toggle ZRCola character (De)composition"), wxITEM_CHECK ); + m_menuEdit->Append( m_menuItemComposition ); + m_menuTranslationSeq = new wxMenu(); wxMenuItem* m_menuTranslationSeqItem = new wxMenuItem( m_menuEdit, wxID_ANY, _("Tra&nslation"), wxEmptyString, wxITEM_NORMAL, m_menuTranslationSeq ); m_menuEdit->Append( m_menuTranslationSeqItem ); - m_menuItemComposition = new wxMenuItem( m_menuEdit, wxID_COMPOSITION, wxString( _("&ZRCola (De)composition") ) , _("Toggle ZRCola character (De)composition"), wxITEM_CHECK ); - m_menuEdit->Append( m_menuItemComposition ); + m_menuEdit->AppendSeparator(); m_menuItemWarnPUA = new wxMenuItem( m_menuEdit, wxID_WARN_PUA, wxString( _("&PUA Warning") ) , _("Toggle PUA warning"), wxITEM_CHECK ); m_menuEdit->Append( m_menuItemWarnPUA ); @@ -216,11 +218,13 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS m_toolbarTranslate->AddSeparator(); + m_toolComposition = m_toolbarTranslate->AddTool( wxID_COMPOSITION, _("ZRCola (De)composition"), wxIcon( wxT("composition.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(24), FromDIP(24) ), wxNullBitmap, wxITEM_CHECK, _("ZRCola (De)composition"), _("Toggle ZRCola character (De)composition"), NULL ); + wxArrayString m_toolTranslationSeqChoices; m_toolTranslationSeq = new wxChoice( m_toolbarTranslate, wxID_ANY, wxDefaultPosition, FromDIP(wxSize( 240,-1 )), m_toolTranslationSeqChoices, 0 ); m_toolTranslationSeq->SetSelection( 0 ); m_toolbarTranslate->AddControl( m_toolTranslationSeq ); - m_toolComposition = m_toolbarTranslate->AddTool( wxID_COMPOSITION, _("ZRCola (De)composition"), wxIcon( wxT("composition.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(24), FromDIP(24) ), wxNullBitmap, wxITEM_CHECK, _("ZRCola (De)composition"), _("Toggle ZRCola character (De)composition"), NULL ); + m_toolbarTranslate->AddSeparator(); m_toolWarnPUA = m_toolbarTranslate->AddTool( wxID_WARN_PUA, _("PUA Warning"), wxIcon( wxT("warn_pua.ico"), wxBITMAP_TYPE_ICO_RESOURCE, FromDIP(24), FromDIP(24) ), wxNullBitmap, wxITEM_CHECK, _("Highlight PUA Characters"), _("Toggle PUA warning"), NULL ); diff --git a/ZRCola/zrcolagui.h b/ZRCola/zrcolagui.h index 6c5c118..2699f64 100644 --- a/ZRCola/zrcolagui.h +++ b/ZRCola/zrcolagui.h @@ -82,8 +82,8 @@ class wxZRColaFrameBase : public wxFrame wxMenuBar* m_menubar; wxMenu* m_menuProgram; wxMenu* m_menuEdit; - wxMenu* m_menuTranslationSeq; wxMenuItem* m_menuItemComposition; + wxMenu* m_menuTranslationSeq; wxMenuItem* m_menuItemWarnPUA; wxMenu* m_menuView; wxMenu* m_menuHelp; @@ -95,8 +95,8 @@ class wxZRColaFrameBase : public wxFrame wxAuiToolBarItem* m_toolCharSelect; wxAuiToolBarItem* m_toolSendDestination; wxAuiToolBarItem* m_toolSendSource; - wxChoice* m_toolTranslationSeq; wxAuiToolBarItem* m_toolComposition; + wxChoice* m_toolTranslationSeq; wxAuiToolBarItem* m_toolWarnPUA; wxZRColaCharacterCatalogPanel* m_panelChrCat; wxStatusBar* m_statusBar;