Я пытаюсь создать реализацию IStringLocalizer в asp.net core 1.1, чтобы использовать один файл ресурсов для каждого языка для всего моего проекта (вместо одного на страницу на язык ...). И я не могу найти, как получить здесь язык запросов, чтобы вернуть ценности с хорошей культурой.Как получить культуру запросов из реализации IStringLocalizer
Возможно, я потерял способ реализовать его, но документация очень бедна по этому вопросу. Кто-то может сказать мне, как получить хорошую культуру (один эк язык запроса пользователя пользователя) здесь, пожалуйста:
public class CustomLocalizer : IStringLocalizer
{
private readonly CultureInfo _currentCulture;
public IEnumerable<LocalizedString> GetAllStrings(bool includeParentCultures)
{
ResourceManager rm = new ResourceManager(typeof(MyResources));
foreach(DictionaryEntry value in rm.GetResourceSet(_currentCulture, false, true))
{
yield return new LocalizedString((string)value.Key, (string)value.Value);
}
}
public CustomLocalizer(CultureInfo culture = null)
{
_currentCulture = culture ?? CultureInfo.DefaultThreadCurrentUICulture;
}
public IStringLocalizer WithCulture(CultureInfo culture)
{
return new CustomLocalizer(culture);
}
LocalizedString IStringLocalizer.this[string name]
{
get
{
ResourceManager rm = new ResourceManager(typeof(MyResources));
return new LocalizedString(name, rm.GetString(name, _currentCulture));
}
}
LocalizedString IStringLocalizer.this[string name, params object[] arguments]
{
get
{
ResourceManager rm = new ResourceManager(typeof(MyResources));
return new LocalizedString(name, rm.GetString(name, _currentCulture));
}
}
}