gpt4 book ai didi

c# - 如何从 IStringLocalizer 实现中获取请求文化

转载 作者:行者123 更新时间:2023-11-30 21:42:42 25 4
gpt4 key购买 nike

我尝试在 asp.net core 1.1 中创建 IStringLocalizer 的实现,以便为我的整个项目使用每种语言的单个资源文件(而不是每种语言每页一个...)。而且我在这里找不到如何获取请求语言以返回具有良好文化的值。

我可能迷失了实现它的方式,但关于这个主题的文档非常少。有人可以在这里告诉我如何获得良好的文化(用户的一种 eq 请求用户语言):

    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));
}
}
}

最佳答案

终于找到了错误的地方(在我的 startup.cs 中,在 Configure 方法中我在设置本地化选项之前使用了 AddMvc ...)。如果它可以帮助某人,在其他情况下,我会删除这篇文章。

关于c# - 如何从 IStringLocalizer 实现中获取请求文化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42366046/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com