control_metadata: Use alternate language names if AmericanEnglish isn't available
This commit is contained in:
parent
23d2c50479
commit
e973cceadd
|
@ -21,7 +21,17 @@ NACP::NACP(VirtualFile file) : raw(std::make_unique<RawNACP>()) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const LanguageEntry& NACP::GetLanguageEntry(Language language) const {
|
const LanguageEntry& NACP::GetLanguageEntry(Language language) const {
|
||||||
|
if (language != Language::Default) {
|
||||||
return raw->language_entries.at(static_cast<u8>(language));
|
return raw->language_entries.at(static_cast<u8>(language));
|
||||||
|
} else {
|
||||||
|
for (const auto& language_entry : raw->language_entries) {
|
||||||
|
if (!language_entry.GetApplicationName().empty())
|
||||||
|
return language_entry;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fallback to English
|
||||||
|
return GetLanguageEntry(Language::AmericanEnglish);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string NACP::GetApplicationName(Language language) const {
|
std::string NACP::GetApplicationName(Language language) const {
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
#include <string>
|
#include <string>
|
||||||
#include "common/common_funcs.h"
|
#include "common/common_funcs.h"
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
|
#include "common/swap.h"
|
||||||
#include "core/file_sys/vfs.h"
|
#include "core/file_sys/vfs.h"
|
||||||
|
|
||||||
namespace FileSys {
|
namespace FileSys {
|
||||||
|
@ -61,6 +62,8 @@ enum class Language : u8 {
|
||||||
Korean = 12,
|
Korean = 12,
|
||||||
Taiwanese = 13,
|
Taiwanese = 13,
|
||||||
Chinese = 14,
|
Chinese = 14,
|
||||||
|
|
||||||
|
Default = 255,
|
||||||
};
|
};
|
||||||
|
|
||||||
static constexpr std::array<const char*, 15> LANGUAGE_NAMES = {
|
static constexpr std::array<const char*, 15> LANGUAGE_NAMES = {
|
||||||
|
@ -75,9 +78,9 @@ static constexpr std::array<const char*, 15> LANGUAGE_NAMES = {
|
||||||
class NACP {
|
class NACP {
|
||||||
public:
|
public:
|
||||||
explicit NACP(VirtualFile file);
|
explicit NACP(VirtualFile file);
|
||||||
const LanguageEntry& GetLanguageEntry(Language language = Language::AmericanEnglish) const;
|
const LanguageEntry& GetLanguageEntry(Language language = Language::Default) const;
|
||||||
std::string GetApplicationName(Language language = Language::AmericanEnglish) const;
|
std::string GetApplicationName(Language language = Language::Default) const;
|
||||||
std::string GetDeveloperName(Language language = Language::AmericanEnglish) const;
|
std::string GetDeveloperName(Language language = Language::Default) const;
|
||||||
u64 GetTitleId() const;
|
u64 GetTitleId() const;
|
||||||
std::string GetVersionString() const;
|
std::string GetVersionString() const;
|
||||||
|
|
||||||
|
|
Reference in New Issue