aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Model/Globalization
diff options
context:
space:
mode:
authorbaka0815 <git@baka0815.de>2025-04-08 05:29:12 +0200
committerGitHub <noreply@github.com>2025-04-07 21:29:12 -0600
commit5fc1b1c862f30f81010c3c87dbb753c6f0e4dcfb (patch)
treef18d4bebb06502e13b84e8aa096ad6f8dd9fff49 /MediaBrowser.Model/Globalization
parent77ad7f6139e4911168e2199fe48e78bf7fdddbf1 (diff)
Translate the ISO-639-2/B codes to ISO-639-2/T. (#13068)
* Translate the ISO-639-2/B codes to ISO-639-2/T. This enables 19 additional languages to be displayed correctly. * Convert the 2-dimensional array to a dictionary * Added the French language to the list of ISO-639-2/B codes * Don't change the property, use a local variable instead. * When creating the MediaStream in the MediaStreamRepository ensure that the ISO 639-2/T (f.e. deu) code is used for the language as that is the one the .NET culture info knows. The other code is most likely the ISO 639-2/B code (f.e. ger) which is unknown to the .NET culture info and will result in just displaying the code instead of the display name. * Move the substitution of ISO 639-2/B to /T to the localization manager. Some language (like Chinese) have multiple entries in the iso6392.txt file (f.e. zho|chi|zh|..., zho|chi|zh-tw|...) but the conversation between /T and /B is the same so use .TryAdd. * Change the method definition from GetISO6392TFromB to TryGetISO6392TFromB and return true if a case was found. * Add unit tests for TryGetISO6392TFromB.
Diffstat (limited to 'MediaBrowser.Model/Globalization')
-rw-r--r--MediaBrowser.Model/Globalization/ILocalizationManager.cs9
1 files changed, 9 insertions, 0 deletions
diff --git a/MediaBrowser.Model/Globalization/ILocalizationManager.cs b/MediaBrowser.Model/Globalization/ILocalizationManager.cs
index d9df95325..f6e65028e 100644
--- a/MediaBrowser.Model/Globalization/ILocalizationManager.cs
+++ b/MediaBrowser.Model/Globalization/ILocalizationManager.cs
@@ -1,4 +1,5 @@
using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
using MediaBrowser.Model.Entities;
namespace MediaBrowser.Model.Globalization;
@@ -61,4 +62,12 @@ public interface ILocalizationManager
/// <param name="language">The language.</param>
/// <returns>The correct <see cref="CultureDto" /> for the given language.</returns>
CultureDto? FindLanguageInfo(string language);
+
+ /// <summary>
+ /// Returns the language in ISO 639-2/T when the input is ISO 639-2/B.
+ /// </summary>
+ /// <param name="isoB">The language in ISO 639-2/B.</param>
+ /// <param name="isoT">The language in ISO 639-2/T.</param>
+ /// <returns>Whether the language could be converted.</returns>
+ public bool TryGetISO6392TFromB(string isoB, [NotNullWhen(true)] out string? isoT);
}