Make ZRCola translation first followed by transliterations

Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
Simon Rozman 2021-11-18 12:30:46 +01:00
parent f6b3b4568a
commit feb68ce463
6 changed files with 58 additions and 43 deletions

View File

@ -247,12 +247,6 @@
<property name="name">separator4</property> <property name="name">separator4</property>
<property name="permission">none</property> <property name="permission">none</property>
</object> </object>
<object class="submenu" expanded="0">
<property name="bitmap"></property>
<property name="label">Tra&amp;nslation</property>
<property name="name">m_menuTranslationSeq</property>
<property name="permission">protected</property>
</object>
<object class="wxMenuItem" expanded="0"> <object class="wxMenuItem" expanded="0">
<property name="bitmap"></property> <property name="bitmap"></property>
<property name="checked">0</property> <property name="checked">0</property>
@ -266,6 +260,16 @@
<property name="shortcut"></property> <property name="shortcut"></property>
<property name="unchecked_bitmap"></property> <property name="unchecked_bitmap"></property>
</object> </object>
<object class="submenu" expanded="0">
<property name="bitmap"></property>
<property name="label">Tra&amp;nslation</property>
<property name="name">m_menuTranslationSeq</property>
<property name="permission">protected</property>
</object>
<object class="separator" expanded="0">
<property name="name">separator5</property>
<property name="permission">none</property>
</object>
<object class="wxMenuItem" expanded="0"> <object class="wxMenuItem" expanded="0">
<property name="bitmap"></property> <property name="bitmap"></property>
<property name="checked">0</property> <property name="checked">0</property>
@ -280,7 +284,7 @@
<property name="unchecked_bitmap"></property> <property name="unchecked_bitmap"></property>
</object> </object>
<object class="separator" expanded="0"> <object class="separator" expanded="0">
<property name="name">separator5</property> <property name="name">separator6</property>
<property name="permission">none</property> <property name="permission">none</property>
</object> </object>
<object class="wxMenuItem" expanded="0"> <object class="wxMenuItem" expanded="0">
@ -612,6 +616,17 @@
<object class="toolSeparator" expanded="0"> <object class="toolSeparator" expanded="0">
<property name="permission">protected</property> <property name="permission">protected</property>
</object> </object>
<object class="tool" expanded="0">
<property name="bitmap">Load From Icon Resource; composition.ico; [24; 24]</property>
<property name="context_menu">0</property>
<property name="id">wxID_COMPOSITION</property>
<property name="kind">wxITEM_CHECK</property>
<property name="label">ZRCola (De)composition</property>
<property name="name">m_toolComposition</property>
<property name="permission">protected</property>
<property name="statusbar">Toggle ZRCola character (De)composition</property>
<property name="tooltip">ZRCola (De)composition</property>
</object>
<object class="wxChoice" expanded="0"> <object class="wxChoice" expanded="0">
<property name="BottomDockable">1</property> <property name="BottomDockable">1</property>
<property name="LeftDockable">1</property> <property name="LeftDockable">1</property>
@ -672,16 +687,8 @@
<property name="window_style"></property> <property name="window_style"></property>
<event name="OnChoice">OnTranslationSeqChoice</event> <event name="OnChoice">OnTranslationSeqChoice</event>
</object> </object>
<object class="tool" expanded="0"> <object class="toolSeparator" expanded="0">
<property name="bitmap">Load From Icon Resource; composition.ico; [24; 24]</property>
<property name="context_menu">0</property>
<property name="id">wxID_COMPOSITION</property>
<property name="kind">wxITEM_CHECK</property>
<property name="label">ZRCola (De)composition</property>
<property name="name">m_toolComposition</property>
<property name="permission">protected</property> <property name="permission">protected</property>
<property name="statusbar">Toggle ZRCola character (De)composition</property>
<property name="tooltip">ZRCola (De)composition</property>
</object> </object>
<object class="tool" expanded="0"> <object class="tool" expanded="0">
<property name="bitmap">Load From Icon Resource; warn_pua.ico; [24; 24]</property> <property name="bitmap">Load From Icon Resource; warn_pua.ico; [24; 24]</property>

View File

@ -133,12 +133,14 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_menuEdit->AppendSeparator(); 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(); m_menuTranslationSeq = new wxMenu();
wxMenuItem* m_menuTranslationSeqItem = new wxMenuItem( m_menuEdit, wxID_ANY, _("Tra&nslation"), wxEmptyString, wxITEM_NORMAL, m_menuTranslationSeq ); wxMenuItem* m_menuTranslationSeqItem = new wxMenuItem( m_menuEdit, wxID_ANY, _("Tra&nslation"), wxEmptyString, wxITEM_NORMAL, m_menuTranslationSeq );
m_menuEdit->Append( m_menuTranslationSeqItem ); 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->AppendSeparator();
m_menuEdit->Append( m_menuItemComposition );
m_menuItemWarnPUA = new wxMenuItem( m_menuEdit, wxID_WARN_PUA, wxString( _("&PUA Warning") ) , _("Toggle PUA warning"), wxITEM_CHECK ); m_menuItemWarnPUA = new wxMenuItem( m_menuEdit, wxID_WARN_PUA, wxString( _("&PUA Warning") ) , _("Toggle PUA warning"), wxITEM_CHECK );
m_menuEdit->Append( m_menuItemWarnPUA ); m_menuEdit->Append( m_menuItemWarnPUA );
@ -216,11 +218,13 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_toolbarTranslate->AddSeparator(); 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; wxArrayString m_toolTranslationSeqChoices;
m_toolTranslationSeq = new wxChoice( m_toolbarTranslate, wxID_ANY, wxDefaultPosition, wxSize( 240,-1 ), m_toolTranslationSeqChoices, 0 ); m_toolTranslationSeq = new wxChoice( m_toolbarTranslate, wxID_ANY, wxDefaultPosition, wxSize( 240,-1 ), m_toolTranslationSeqChoices, 0 );
m_toolTranslationSeq->SetSelection( 0 ); m_toolTranslationSeq->SetSelection( 0 );
m_toolbarTranslate->AddControl( m_toolTranslationSeq ); 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 ); 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 );

View File

@ -82,8 +82,8 @@ class wxZRColaFrameBase : public wxFrame
wxMenuBar* m_menubar; wxMenuBar* m_menubar;
wxMenu* m_menuProgram; wxMenu* m_menuProgram;
wxMenu* m_menuEdit; wxMenu* m_menuEdit;
wxMenu* m_menuTranslationSeq;
wxMenuItem* m_menuItemComposition; wxMenuItem* m_menuItemComposition;
wxMenu* m_menuTranslationSeq;
wxMenuItem* m_menuItemWarnPUA; wxMenuItem* m_menuItemWarnPUA;
wxMenu* m_menuView; wxMenu* m_menuView;
wxMenu* m_menuHelp; wxMenu* m_menuHelp;
@ -95,8 +95,8 @@ class wxZRColaFrameBase : public wxFrame
wxAuiToolBarItem* m_toolCharSelect; wxAuiToolBarItem* m_toolCharSelect;
wxAuiToolBarItem* m_toolSendDestination; wxAuiToolBarItem* m_toolSendDestination;
wxAuiToolBarItem* m_toolSendSource; wxAuiToolBarItem* m_toolSendSource;
wxChoice* m_toolTranslationSeq;
wxAuiToolBarItem* m_toolComposition; wxAuiToolBarItem* m_toolComposition;
wxChoice* m_toolTranslationSeq;
wxAuiToolBarItem* m_toolWarnPUA; wxAuiToolBarItem* m_toolWarnPUA;
wxZRColaCharacterCatalogPanel* m_panelChrCat; wxZRColaCharacterCatalogPanel* m_panelChrCat;
wxStatusBar* m_statusBar; wxStatusBar* m_statusBar;

View File

@ -112,15 +112,6 @@ void wxZRColaComposerPanel::SynchronizePanels()
m_mapping.clear(); 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) { if (app->m_mainWnd->m_composition) {
// ZRCola decompose first, then re-compose. // ZRCola decompose first, then re-compose.
app->m_t_db.TranslateInv(ZRCOLA_TRANSEQID_DEFAULT, dst.data(), dst.size(), dst2, &map); 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)); 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); m_source->GetSelection(&m_selSource.first, &m_selSource.second);
// Update source HEX dump. // Update source HEX dump.
@ -156,20 +156,20 @@ void wxZRColaComposerPanel::SynchronizePanels()
m_mapping.clear(); m_mapping.clear();
if (app->m_mainWnd->m_composition) { // Other translations
// ZRCola decompose. const ZRCola::transetid_t *sets_begin, *sets_end;
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); 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); dst = std::move(dst2);
map.invert(); map.invert();
m_mapping.push_back(std::move(map)); m_mapping.push_back(std::move(map));
} }
// Other translations if (app->m_mainWnd->m_composition) {
const ZRCola::transetid_t *sets_begin, *sets_end; // ZRCola decompose.
GetTranslationSeq(sets_begin, sets_end); 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);
for (auto s = sets_end; (s--) != sets_begin;) {
app->m_t_db.TranslateInv(*s, dst.data(), dst.size(), dst2, &map);
dst = std::move(dst2); dst = std::move(dst2);
map.invert(); map.invert();

View File

@ -133,12 +133,14 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_menuEdit->AppendSeparator(); 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(); m_menuTranslationSeq = new wxMenu();
wxMenuItem* m_menuTranslationSeqItem = new wxMenuItem( m_menuEdit, wxID_ANY, _("Tra&nslation"), wxEmptyString, wxITEM_NORMAL, m_menuTranslationSeq ); wxMenuItem* m_menuTranslationSeqItem = new wxMenuItem( m_menuEdit, wxID_ANY, _("Tra&nslation"), wxEmptyString, wxITEM_NORMAL, m_menuTranslationSeq );
m_menuEdit->Append( m_menuTranslationSeqItem ); 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->AppendSeparator();
m_menuEdit->Append( m_menuItemComposition );
m_menuItemWarnPUA = new wxMenuItem( m_menuEdit, wxID_WARN_PUA, wxString( _("&PUA Warning") ) , _("Toggle PUA warning"), wxITEM_CHECK ); m_menuItemWarnPUA = new wxMenuItem( m_menuEdit, wxID_WARN_PUA, wxString( _("&PUA Warning") ) , _("Toggle PUA warning"), wxITEM_CHECK );
m_menuEdit->Append( m_menuItemWarnPUA ); m_menuEdit->Append( m_menuItemWarnPUA );
@ -216,11 +218,13 @@ wxZRColaFrameBase::wxZRColaFrameBase( wxWindow* parent, wxWindowID id, const wxS
m_toolbarTranslate->AddSeparator(); 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; wxArrayString m_toolTranslationSeqChoices;
m_toolTranslationSeq = new wxChoice( m_toolbarTranslate, wxID_ANY, wxDefaultPosition, FromDIP(wxSize( 240,-1 )), m_toolTranslationSeqChoices, 0 ); m_toolTranslationSeq = new wxChoice( m_toolbarTranslate, wxID_ANY, wxDefaultPosition, FromDIP(wxSize( 240,-1 )), m_toolTranslationSeqChoices, 0 );
m_toolTranslationSeq->SetSelection( 0 ); m_toolTranslationSeq->SetSelection( 0 );
m_toolbarTranslate->AddControl( m_toolTranslationSeq ); 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 ); 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 );

View File

@ -82,8 +82,8 @@ class wxZRColaFrameBase : public wxFrame
wxMenuBar* m_menubar; wxMenuBar* m_menubar;
wxMenu* m_menuProgram; wxMenu* m_menuProgram;
wxMenu* m_menuEdit; wxMenu* m_menuEdit;
wxMenu* m_menuTranslationSeq;
wxMenuItem* m_menuItemComposition; wxMenuItem* m_menuItemComposition;
wxMenu* m_menuTranslationSeq;
wxMenuItem* m_menuItemWarnPUA; wxMenuItem* m_menuItemWarnPUA;
wxMenu* m_menuView; wxMenu* m_menuView;
wxMenu* m_menuHelp; wxMenu* m_menuHelp;
@ -95,8 +95,8 @@ class wxZRColaFrameBase : public wxFrame
wxAuiToolBarItem* m_toolCharSelect; wxAuiToolBarItem* m_toolCharSelect;
wxAuiToolBarItem* m_toolSendDestination; wxAuiToolBarItem* m_toolSendDestination;
wxAuiToolBarItem* m_toolSendSource; wxAuiToolBarItem* m_toolSendSource;
wxChoice* m_toolTranslationSeq;
wxAuiToolBarItem* m_toolComposition; wxAuiToolBarItem* m_toolComposition;
wxChoice* m_toolTranslationSeq;
wxAuiToolBarItem* m_toolWarnPUA; wxAuiToolBarItem* m_toolWarnPUA;
wxZRColaCharacterCatalogPanel* m_panelChrCat; wxZRColaCharacterCatalogPanel* m_panelChrCat;
wxStatusBar* m_statusBar; wxStatusBar* m_statusBar;