|
@@ -273,11 +273,28 @@ namespace MediaBrowser.Model.Entities
|
|
|
// Do not display the language code in display titles if unset or set to a special code. Show it in all other cases (possibly expanded).
|
|
|
if (!string.IsNullOrEmpty(Language) && !_specialCodes.Contains(Language, StringComparison.OrdinalIgnoreCase))
|
|
|
{
|
|
|
- // Get full language string i.e. eng -> English.
|
|
|
- string fullLanguage = CultureInfo
|
|
|
- .GetCultures(CultureTypes.NeutralCultures)
|
|
|
- .FirstOrDefault(r => r.ThreeLetterISOLanguageName.Equals(Language, StringComparison.OrdinalIgnoreCase))
|
|
|
- ?.DisplayName;
|
|
|
+ // Get full language string i.e. eng -> English, zh-Hans -> Chinese (Simplified).
|
|
|
+ var cultures = CultureInfo.GetCultures(CultureTypes.NeutralCultures);
|
|
|
+ CultureInfo match = null;
|
|
|
+ if (Language.Contains('-', StringComparison.OrdinalIgnoreCase))
|
|
|
+ {
|
|
|
+ match = cultures.FirstOrDefault(r =>
|
|
|
+ r.Name.Equals(Language, StringComparison.OrdinalIgnoreCase));
|
|
|
+
|
|
|
+ if (match is null)
|
|
|
+ {
|
|
|
+ string baseLang = Language.AsSpan().LeftPart('-').ToString();
|
|
|
+ match = cultures.FirstOrDefault(r =>
|
|
|
+ r.TwoLetterISOLanguageName.Equals(baseLang, StringComparison.OrdinalIgnoreCase));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ match = cultures.FirstOrDefault(r =>
|
|
|
+ r.ThreeLetterISOLanguageName.Equals(Language, StringComparison.OrdinalIgnoreCase));
|
|
|
+ }
|
|
|
+
|
|
|
+ string fullLanguage = match?.DisplayName;
|
|
|
attributes.Add(StringHelper.FirstToUpper(fullLanguage ?? Language));
|
|
|
}
|
|
|
|
|
@@ -376,11 +393,28 @@ namespace MediaBrowser.Model.Entities
|
|
|
|
|
|
if (!string.IsNullOrEmpty(Language))
|
|
|
{
|
|
|
- // Get full language string i.e. eng -> English.
|
|
|
- string fullLanguage = CultureInfo
|
|
|
- .GetCultures(CultureTypes.NeutralCultures)
|
|
|
- .FirstOrDefault(r => r.ThreeLetterISOLanguageName.Equals(Language, StringComparison.OrdinalIgnoreCase))
|
|
|
- ?.DisplayName;
|
|
|
+ // Get full language string i.e. eng -> English, zh-Hans -> Chinese (Simplified).
|
|
|
+ var cultures = CultureInfo.GetCultures(CultureTypes.NeutralCultures);
|
|
|
+ CultureInfo match = null;
|
|
|
+ if (Language.Contains('-', StringComparison.OrdinalIgnoreCase))
|
|
|
+ {
|
|
|
+ match = cultures.FirstOrDefault(r =>
|
|
|
+ r.Name.Equals(Language, StringComparison.OrdinalIgnoreCase));
|
|
|
+
|
|
|
+ if (match is null)
|
|
|
+ {
|
|
|
+ string baseLang = Language.AsSpan().LeftPart('-').ToString();
|
|
|
+ match = cultures.FirstOrDefault(r =>
|
|
|
+ r.TwoLetterISOLanguageName.Equals(baseLang, StringComparison.OrdinalIgnoreCase));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ match = cultures.FirstOrDefault(r =>
|
|
|
+ r.ThreeLetterISOLanguageName.Equals(Language, StringComparison.OrdinalIgnoreCase));
|
|
|
+ }
|
|
|
+
|
|
|
+ string fullLanguage = match?.DisplayName;
|
|
|
attributes.Add(StringHelper.FirstToUpper(fullLanguage ?? Language));
|
|
|
}
|
|
|
else
|