0
0
Fork 0

Add support for the brazilian portuguese language code (#2792)

* Add support for the brazilian portuguese language code

* Fix error applet message
This commit is contained in:
gdkchan 2021-10-28 18:06:45 -03:00 committed by GitHub
parent 5c66a36ed6
commit a7a40a77f2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 17 additions and 12 deletions

View file

@ -94,13 +94,14 @@ namespace Ryujinx.HLE.HOS.Applets.Error
SystemLanguage.LatinAmericanSpanish => "es-419",
SystemLanguage.SimplifiedChinese => "zh-Hans",
SystemLanguage.TraditionalChinese => "zh-Hant",
SystemLanguage.BrazilianPortuguese => "pt-BR",
_ => "en-US"
};
}
public string CleanText(string value)
private static string CleanText(string value)
{
return Regex.Replace(Encoding.Unicode.GetString(Encoding.UTF8.GetBytes(value)), @"[^\u0009\u000A\u000D\u0020-\u007E]", "");
return Regex.Replace(value, @"[^\u0000\u0009\u000A\u000D\u0020-\uFFFF]..", "").Replace("\0", "");
}
private string GetMessageText(uint module, uint description, string key)
@ -112,13 +113,12 @@ namespace Ryujinx.HLE.HOS.Applets.Error
Nca nca = new Nca(_horizon.Device.FileSystem.KeySet, ncaFileStream);
IFileSystem romfs = nca.OpenFileSystem(NcaSectionType.Data, _horizon.FsIntegrityCheckLevel);
string languageCode = SystemLanguageToLanguageKey(_horizon.State.DesiredSystemLanguage);
string filePath = "/" + Path.Combine(module.ToString(), $"{description:0000}", $"{languageCode}_{key}").Replace(@"\", "/");
string filePath = $"/{module}/{description:0000}/{languageCode}_{key}";
if (romfs.FileExists(filePath))
{
romfs.OpenFile(out IFile binaryFile, filePath.ToU8Span(), OpenMode.Read).ThrowIfFailure();
StreamReader reader = new StreamReader(binaryFile.AsStream());
StreamReader reader = new StreamReader(binaryFile.AsStream(), Encoding.Unicode);
return CleanText(reader.ReadToEnd());
}

View file

@ -151,7 +151,7 @@ namespace Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.Applicati
int supportedLanguages = (int)context.Device.Application.ControlData.Value.SupportedLanguages;
int firstSupported = BitOperations.TrailingZeroCount(supportedLanguages);
if (firstSupported > (int)SystemState.TitleLanguage.Chinese)
if (firstSupported > (int)SystemState.TitleLanguage.BrazilianPortuguese)
{
Logger.Warning?.Print(LogClass.ServiceAm, "Application has zero supported languages");

View file

@ -18,6 +18,7 @@ namespace Ryujinx.HLE.HOS.SystemState
CanadianFrench,
LatinAmericanSpanish,
SimplifiedChinese,
TraditionalChinese
TraditionalChinese,
BrazilianPortuguese
}
}

View file

@ -22,7 +22,8 @@ namespace Ryujinx.HLE.HOS.SystemState
"fr-CA",
"es-419",
"zh-Hans",
"zh-Hant"
"zh-Hant",
"pt-BR"
};
internal long DesiredKeyboardLayout { get; private set; }

View file

@ -16,6 +16,7 @@
Russian,
Korean,
Taiwanese,
Chinese
Chinese,
BrazilianPortuguese
}
}

View file

@ -18,6 +18,7 @@
CanadianFrench,
LatinAmericanSpanish,
SimplifiedChinese,
TraditionalChinese
TraditionalChinese,
BrazilianPortuguese
}
}

View file

@ -1266,6 +1266,7 @@
<item id="Spanish" translatable="yes">Spanish</item>
<item id="Taiwanese" translatable="yes">Taiwanese</item>
<item id="TraditionalChinese" translatable="yes">Traditional Chinese</item>
<item id="BrazilianPortuguese" translatable="yes">Brazilian Portuguese</item>
</items>
</object>
<packing>