mirror of
https://github.com/Prowlarr/Prowlarr.git
synced 2025-09-17 17:14:18 +02:00
@@ -45,14 +45,14 @@ namespace NzbDrone.Core.Localization
|
|||||||
|
|
||||||
public Dictionary<string, string> GetLocalizationDictionary()
|
public Dictionary<string, string> GetLocalizationDictionary()
|
||||||
{
|
{
|
||||||
var language = IsoLanguages.Get((Language)_configService.UILanguage).TwoLetterCode;
|
var language = GetSetLanguageFileName();
|
||||||
|
|
||||||
return GetLocalizationDictionary(language);
|
return GetLocalizationDictionary(language);
|
||||||
}
|
}
|
||||||
|
|
||||||
public string GetLocalizedString(string phrase)
|
public string GetLocalizedString(string phrase)
|
||||||
{
|
{
|
||||||
var language = IsoLanguages.Get((Language)_configService.UILanguage).TwoLetterCode;
|
var language = GetSetLanguageFileName();
|
||||||
|
|
||||||
return GetLocalizedString(phrase, language);
|
return GetLocalizedString(phrase, language);
|
||||||
}
|
}
|
||||||
@@ -66,7 +66,7 @@ namespace NzbDrone.Core.Localization
|
|||||||
|
|
||||||
if (language.IsNullOrWhiteSpace())
|
if (language.IsNullOrWhiteSpace())
|
||||||
{
|
{
|
||||||
language = IsoLanguages.Get((Language)_configService.UILanguage).TwoLetterCode;
|
language = GetSetLanguageFileName();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (language == null)
|
if (language == null)
|
||||||
@@ -84,6 +84,19 @@ namespace NzbDrone.Core.Localization
|
|||||||
return phrase;
|
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)
|
private Dictionary<string, string> GetLocalizationDictionary(string language)
|
||||||
{
|
{
|
||||||
if (string.IsNullOrEmpty(language))
|
if (string.IsNullOrEmpty(language))
|
||||||
@@ -109,9 +122,17 @@ namespace NzbDrone.Core.Localization
|
|||||||
var dictionary = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
var dictionary = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||||
|
|
||||||
var baseFilenamePath = Path.Combine(prefix, baseFilename);
|
var baseFilenamePath = Path.Combine(prefix, baseFilename);
|
||||||
|
|
||||||
var alternativeFilenamePath = Path.Combine(prefix, GetResourceFilename(culture));
|
var alternativeFilenamePath = Path.Combine(prefix, GetResourceFilename(culture));
|
||||||
|
|
||||||
await CopyInto(dictionary, baseFilenamePath).ConfigureAwait(false);
|
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);
|
await CopyInto(dictionary, alternativeFilenamePath).ConfigureAwait(false);
|
||||||
|
|
||||||
return dictionary;
|
return dictionary;
|
||||||
@@ -145,11 +166,11 @@ namespace NzbDrone.Core.Localization
|
|||||||
|
|
||||||
private static string GetResourceFilename(string culture)
|
private static string GetResourceFilename(string culture)
|
||||||
{
|
{
|
||||||
var parts = culture.Split('-');
|
var parts = culture.Split('_');
|
||||||
|
|
||||||
if (parts.Length == 2)
|
if (parts.Length == 2)
|
||||||
{
|
{
|
||||||
culture = parts[0].ToLowerInvariant() + "-" + parts[1].ToUpperInvariant();
|
culture = parts[0].ToLowerInvariant() + "_" + parts[1].ToUpperInvariant();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user