ASP .NET核心应用程序的本地化为https://docs.microsoft.com/en-us/aspnet/core/fundamentals/localization。
所有字符串都使用默认语言进行本地化,其中包含 IStringLocalizer _localizer [“关于标题”] - 没有.resx文件。
现在我要添加一种新语言。
我可以自动生成所有资源文件吗?
示例我有
private readonly IStringLocalizer<SharedResource> _localizerG;
private readonly IStringLocalizer<HomeController> _localizerC;
_localizerG["Your contact page. (G)"]
_localizerC["Your contact page. (C)"]
我是否可以为填充字符串的新语言 uk-UA 生成(并在将来更新).resx文件
答案 0 :(得分:2)
作为选项,您可以通过创建自定义本地化程序来记录这些字符串。然后,您可以为这些字符串创建所需的资源。
例如,创建一个这样的本地化程序:
using Microsoft.Extensions.Localization;
public class MyStringLocalizer<T> : StringLocalizer<T>
{
public MyStringLocalizer(IStringLocalizerFactory factory) : base(factory)
{
}
public override LocalizedString this[string name]
{
get
{
//Log typeof(T) and name
return base[name];
}
}
public override LocalizedString this[string name, params object[] arguments]
{
get
{
//Log typeof(T) and name
return base[name, arguments];
}
}
}
然后在ConfigureServices
方法中注册本地化程序:
services.AddTransient(typeof(IStringLocalizer<>), typeof(MyStringLocalizer<>));