ASP Net核心-如何实现后台服务本地化?

问题描述

在发布的here中,有一个问题询问如何在ASP NET核心应用程序中删除不活动的用户的最佳实现。伊恩·坎普(Ian Kemp)为此建议了后台服务,我真的很喜欢。

现在,我想知道如何将本地化程序实现为后台服务(我需要通知他们,很快他们的帐户将被删除)?我可以存储有关在用户浏览我的应用程序时正在使用的cultrue的信息。我看到了 IStringLocalizer - WithCulture 函数,该函数返回具有所请求区域性的新IStringLocalizer。但是它表明它已被弃用。还有其他方法如何将Localizer实施到后台服务(在DB中使用用户存储的区域性时)?

解决方法

如果您有语言代码,则可以设置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;
        }
    }

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...