mirror of
https://github.com/Prowlarr/Prowlarr
synced 2025-12-31 21:03:38 +01:00
parent
5207527716
commit
166038a3b8
1 changed files with 26 additions and 5 deletions
|
|
@ -45,14 +45,14 @@ public LocalizationService(IConfigService configService,
|
|||
|
||||
public Dictionary<string, string> GetLocalizationDictionary()
|
||||
{
|
||||
var language = IsoLanguages.Get((Language)_configService.UILanguage).TwoLetterCode;
|
||||
var language = GetSetLanguageFileName();
|
||||
|
||||
return GetLocalizationDictionary(language);
|
||||
}
|
||||
|
||||
public string GetLocalizedString(string phrase)
|
||||
{
|
||||
var language = IsoLanguages.Get((Language)_configService.UILanguage).TwoLetterCode;
|
||||
var language = GetSetLanguageFileName();
|
||||
|
||||
return GetLocalizedString(phrase, language);
|
||||
}
|
||||
|
|
@ -66,7 +66,7 @@ public string GetLocalizedString(string phrase, string language)
|
|||
|
||||
if (language.IsNullOrWhiteSpace())
|
||||
{
|
||||
language = IsoLanguages.Get((Language)_configService.UILanguage).TwoLetterCode;
|
||||
language = GetSetLanguageFileName();
|
||||
}
|
||||
|
||||
if (language == null)
|
||||
|
|
@ -84,6 +84,19 @@ public string GetLocalizedString(string phrase, string language)
|
|||
return phrase;
|
||||
}
|
||||
|
||||
private string GetSetLanguageFileName()
|
||||
{
|
||||
var isoLanguage = IsoLanguages.Get((Language)_configService.UILanguage);
|
||||
var language = isoLanguage.TwoLetterCode;
|
||||
|
||||
if (isoLanguage.CountryCode.IsNotNullOrWhiteSpace())
|
||||
{
|
||||
language = string.Format("{0}_{1}", language, isoLanguage.CountryCode);
|
||||
}
|
||||
|
||||
return language;
|
||||
}
|
||||
|
||||
private Dictionary<string, string> GetLocalizationDictionary(string language)
|
||||
{
|
||||
if (string.IsNullOrEmpty(language))
|
||||
|
|
@ -109,9 +122,17 @@ private async Task<Dictionary<string, string>> GetDictionary(string prefix, stri
|
|||
var dictionary = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||
|
||||
var baseFilenamePath = Path.Combine(prefix, baseFilename);
|
||||
|
||||
var alternativeFilenamePath = Path.Combine(prefix, GetResourceFilename(culture));
|
||||
|
||||
await CopyInto(dictionary, baseFilenamePath).ConfigureAwait(false);
|
||||
|
||||
if (culture.Contains("_"))
|
||||
{
|
||||
var languageBaseFilenamePath = Path.Combine(prefix, GetResourceFilename(culture.Split('_')[0]));
|
||||
await CopyInto(dictionary, languageBaseFilenamePath).ConfigureAwait(false);
|
||||
}
|
||||
|
||||
await CopyInto(dictionary, alternativeFilenamePath).ConfigureAwait(false);
|
||||
|
||||
return dictionary;
|
||||
|
|
@ -145,11 +166,11 @@ private async Task CopyInto(IDictionary<string, string> dictionary, string resou
|
|||
|
||||
private static string GetResourceFilename(string culture)
|
||||
{
|
||||
var parts = culture.Split('-');
|
||||
var parts = culture.Split('_');
|
||||
|
||||
if (parts.Length == 2)
|
||||
{
|
||||
culture = parts[0].ToLowerInvariant() + "-" + parts[1].ToUpperInvariant();
|
||||
culture = parts[0].ToLowerInvariant() + "_" + parts[1].ToUpperInvariant();
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in a new issue