Fix various issues related to title names (#192)

Fixed various issues related to title names:
1. If console language is set to non-English, the title names in Title Manager may be empty.
2. Game list do not show custom names if list style set to icon or small icon.
3. Custom title names for some languages (like JP or CN) appear confusing if re-edited.
4. Unexpected overrides of variable values in ParsedMetaXml.h
This commit is contained in:
bslhq 2022-09-08 01:58:56 +08:00 committed by GitHub
parent b752d2eddd
commit 4d1be950e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 5 deletions

View File

@ -18,12 +18,12 @@ struct ParsedMetaXml
std::string GetShortName(CafeConsoleLanguage languageId) const
{
return m_short_name[(size_t)languageId];
return m_short_name[(size_t)languageId].empty() ? m_short_name[(size_t)CafeConsoleLanguage::EN] : m_short_name[(size_t)languageId];
}
std::string GetLongName(CafeConsoleLanguage languageId) const
{
return m_long_name[(size_t)languageId];
return m_long_name[(size_t)languageId].empty() ? m_long_name[(size_t)CafeConsoleLanguage::EN] : m_long_name[(size_t)languageId];
}
TitleId GetTitleId() const
@ -134,7 +134,7 @@ private:
else if (language == "ru")
return (sint32)CafeConsoleLanguage::RU;
else if (language == "zht")
return (sint32)CafeConsoleLanguage::ZH;
return (sint32)CafeConsoleLanguage::TW; // if return ZH here, xxx_zht values may cover xxx_zh values in function Parse()
return -1;
}
};

View File

@ -536,7 +536,7 @@ void wxGameList::OnContextMenuSelected(wxCommandEvent& event)
std::string customName = "";
if (!GetConfig().GetGameListCustomName(title_id, customName))
customName.clear();
wxTextEntryDialog dialog(this, wxEmptyString, L"Enter a custom game title", customName);
wxTextEntryDialog dialog(this, wxEmptyString, _("Enter a custom game title"), wxHelper::FromUtf8(customName));
if(dialog.ShowModal() == wxID_OK)
{
const auto custom_name = dialog.GetValue();
@ -859,7 +859,7 @@ void wxGameList::OnGameEntryUpdatedByTitleId(wxTitleIdEvent& event)
if(index == wxNOT_FOUND)
{
// entry doesn't exist
index = InsertItem(FindInsertPosition(baseTitleId), wxHelper::FromUtf8(gameInfo.GetTitleName()));
index = InsertItem(FindInsertPosition(baseTitleId), wxHelper::FromUtf8(GetNameByTitleId(baseTitleId)));
SetItemPtrData(index, baseTitleId);
isNewEntry = true;
}