mirror of
https://github.com/jellyfin/jellyfin.git
synced 2025-05-24 02:02:29 -04:00
* 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.
74 lines
2.5 KiB
C#
74 lines
2.5 KiB
C#
using System.Collections.Generic;
|
|
using System.Diagnostics.CodeAnalysis;
|
|
using MediaBrowser.Model.Entities;
|
|
|
|
namespace MediaBrowser.Model.Globalization;
|
|
|
|
/// <summary>
|
|
/// Interface ILocalizationManager.
|
|
/// </summary>
|
|
public interface ILocalizationManager
|
|
{
|
|
/// <summary>
|
|
/// Gets the cultures.
|
|
/// </summary>
|
|
/// <returns><see cref="IEnumerable{CultureDto}" />.</returns>
|
|
IEnumerable<CultureDto> GetCultures();
|
|
|
|
/// <summary>
|
|
/// Gets the countries.
|
|
/// </summary>
|
|
/// <returns><see cref="IReadOnlyList{CountryInfo}" />.</returns>
|
|
IReadOnlyList<CountryInfo> GetCountries();
|
|
|
|
/// <summary>
|
|
/// Gets the parental ratings.
|
|
/// </summary>
|
|
/// <returns><see cref="IReadOnlyList{ParentalRating}" />.</returns>
|
|
IReadOnlyList<ParentalRating> GetParentalRatings();
|
|
|
|
/// <summary>
|
|
/// Gets the rating level.
|
|
/// </summary>
|
|
/// <param name="rating">The rating.</param>
|
|
/// <param name="countryCode">The optional two letter ISO language string.</param>
|
|
/// <returns><see cref="ParentalRatingScore" /> or <c>null</c>.</returns>
|
|
ParentalRatingScore? GetRatingScore(string rating, string? countryCode = null);
|
|
|
|
/// <summary>
|
|
/// Gets the localized string.
|
|
/// </summary>
|
|
/// <param name="phrase">The phrase.</param>
|
|
/// <param name="culture">The culture.</param>
|
|
/// <returns><see cref="string" />.</returns>
|
|
string GetLocalizedString(string phrase, string culture);
|
|
|
|
/// <summary>
|
|
/// Gets the localized string.
|
|
/// </summary>
|
|
/// <param name="phrase">The phrase.</param>
|
|
/// <returns>System.String.</returns>
|
|
string GetLocalizedString(string phrase);
|
|
|
|
/// <summary>
|
|
/// Gets the localization options.
|
|
/// </summary>
|
|
/// <returns><see cref="IEnumerable{LocalizationOption}" />.</returns>
|
|
IEnumerable<LocalizationOption> GetLocalizationOptions();
|
|
|
|
/// <summary>
|
|
/// Returns the correct <see cref="CultureDto" /> for the given language.
|
|
/// </summary>
|
|
/// <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);
|
|
}
|