【发布时间】:2022-01-22 14:31:26
【问题描述】:
我正在尝试本地化托管服务以响应变量lang 中提供的运行时条件,该变量表示2 个字母的ISO 代码(例如'en'、'es'、...) .
我在我的 Startup.cs 中这样设置本地化服务:
services.AddLocalization(options => { options.ResourcesPath = "xresx"; });
在我的控制器中,我有以下代码:
Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(lang);
我知道这行得通,因为当我传入lang='es' 时:
var check = Thread.CurrentThread.CurrentCulture.TwoLetterISOLanguageName;
返回正确的值check = 'es'。
但是接下来的语句:
var msg = Resources.TestMsg
从我的英文资源文件Resource.resx而不是Resource.es.resx中获取我的值。
我做错了什么,我怎样才能让它发挥作用? 谢谢!
【问题讨论】:
-
看
IStringLocalizer -
但我想使用资源文件,
IStringLocalizer将如何帮助? -
你看过
IStringLocalizer吗?这适用于资源文件...
标签: c# asp.net .net localization resources