ASP Net core - 如何实现后台服务本地化?
ASP Net core - How to implement background services localization?
在 中发布了一个问题,询问有关在 ASP NET 核心应用程序中删除非活动用户的最佳实现。 Ian Kemp 为此建议了后台服务,我真的很喜欢这个。
现在我想知道如何将定位器实现到后台服务中(我需要通知他们他们的帐户很快就会被删除)?我可以存储有关用户在浏览我的应用程序时正在使用的文化的信息。我看到了 IStringLocalizer< SomeClass > - WithCulture 的函数,其中 returns 一个具有请求文化的新 IStringLocalizer。但它表明它已被弃用。有没有其他方法如何将 Localizer 实现到后台服务(同时在数据库中使用存储的用户文化)?
如果您有语言代码,那么您可以设置 CultureInfo.CurrentUICulture
以通过 stringLocalizer
获取本地化字符串。
public class ResourceProvider
{
private readonly IStringLocalizer stringLocalizer;
public ResourceProvider(IStringLocalizerFactory localizerFactory)
{
stringLocalizer = localizerFactory.Create("ResourceStrings", System.Reflection.Assembly.GetExecutingAssembly().GetName().Name);
}
public string GetLocalizedString(string resourceKey, string languageCode)
{
CultureInfo.CurrentUICulture = new CultureInfo(languageCode);
var localizedString = stringLocalizer[resourceKey].Value;
return localizedString;
}
}
在
现在我想知道如何将定位器实现到后台服务中(我需要通知他们他们的帐户很快就会被删除)?我可以存储有关用户在浏览我的应用程序时正在使用的文化的信息。我看到了 IStringLocalizer< SomeClass > - WithCulture 的函数,其中 returns 一个具有请求文化的新 IStringLocalizer。但它表明它已被弃用。有没有其他方法如何将 Localizer 实现到后台服务(同时在数据库中使用存储的用户文化)?
如果您有语言代码,那么您可以设置 CultureInfo.CurrentUICulture
以通过 stringLocalizer
获取本地化字符串。
public class ResourceProvider
{
private readonly IStringLocalizer stringLocalizer;
public ResourceProvider(IStringLocalizerFactory localizerFactory)
{
stringLocalizer = localizerFactory.Create("ResourceStrings", System.Reflection.Assembly.GetExecutingAssembly().GetName().Name);
}
public string GetLocalizedString(string resourceKey, string languageCode)
{
CultureInfo.CurrentUICulture = new CultureInfo(languageCode);
var localizedString = stringLocalizer[resourceKey].Value;
return localizedString;
}
}