增加语言包制作工具功能

This commit is contained in:
gb 2023-01-29 15:04:37 +08:00
parent 32ee6eb73d
commit 945f1d3ac2
2 changed files with 29 additions and 8 deletions

View File

@ -498,9 +498,13 @@ void CDlgLang::add_2_list(void* lang_list, int id, bool unic)
for (const auto& v : *data)
{
std::wstring text(L"");
int ind = list_.InsertItem(list_.GetItemCount(), std::to_wstring(list_.GetItemCount() + 1).c_str());
int ind = find_list_item_by_ID(v.id);
list_.SetItemText(ind, 1, std::to_wstring(v.id).c_str());
if (ind == -1)
{
ind = list_.InsertItem(list_.GetItemCount(), std::to_wstring(list_.GetItemCount() + 1).c_str());
list_.SetItemText(ind, 1, std::to_wstring(v.id).c_str());
}
list_.SetItemText(ind, 2, v.unic.c_str());
}
}
@ -511,9 +515,13 @@ void CDlgLang::add_2_list(void* lang_list, int id, bool unic)
for (const auto& v : *data)
{
std::wstring text(L"");
int ind = list_.InsertItem(list_.GetItemCount(), std::to_wstring(list_.GetItemCount() + 1).c_str());
int ind = find_list_item_by_ID(v.id);
list_.SetItemText(ind, 1, std::to_wstring(v.id).c_str());
if (ind == -1)
{
ind = list_.InsertItem(list_.GetItemCount(), std::to_wstring(list_.GetItemCount() + 1).c_str());
list_.SetItemText(ind, 1, std::to_wstring(v.id).c_str());
}
coding_util::utf8_2_unicode(v.utf8.c_str(), sdk_util::got_wstr, &text);
list_.SetItemText(ind, 2, text.c_str());
}
@ -768,7 +776,7 @@ void CDlgLang::OnCbnSelchangeLanguage()
GetDlgItem(IDC_BUTTON_ADD_FILE)->EnableWindow(cur_cp_ == 936);
return;
}
list_.DeleteAllItems();
// list_.DeleteAllItems();
cur_cp_ = cp;
add_2_list(&lans, cur_cp_, true);
select_code_page(cur_cp_);
@ -935,11 +943,24 @@ void CDlgLang::OnBnClickedButtonAdd()
HZMAP h;
h.hz = dlg.value_.GetBuffer();
h.id = sdk_util::make_string_id(h.hz.c_str(), &CDlgLang::find_repeat_in_list, &list_);
dlg.value_.ReleaseBuffer();
insert_item_2_list(h.hz.c_str(), h.id);
hz_.push_back(h);
h.id = find_hz_ID(h.hz.c_str());
if (h.id == -1)
{
h.id = sdk_util::make_string_id(h.hz.c_str(), &CDlgLang::find_repeat_in_list, &list_);
insert_item_2_list(h.hz.c_str(), h.id);
hz_.push_back(h);
}
else
{
MessageBox(TEXT("Existing already."));
h.id = find_list_item_by_ID(h.id);
list_.EnsureVisible(h.id, FALSE);
list_.SetItemState(h.id, LVNI_FOCUSED | LVIS_SELECTED, LVNI_FOCUSED | LVIS_SELECTED);
GotoDlgCtrl(&list_);
}
}
}

Binary file not shown.