【发布时间】:2019-05-15 08:44:34
【问题描述】:
我从事本地化项目,无法从资源文件中读取本地值。
我有一个示例解决方案如下:
1. Web API project
2. Resources Project.
- In resources project, I have 3 resource files de-DE, fr-FR, and en-US.
我正在从资源文件中读取资源键“名称”,我可以通过如下设置文化值从 de-DE 和 en-US 获取值。
[HttpGet]
public ActionResult<IEnumerable<string>> Get()
{
Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");
Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR");
var name = Employees.Name;
return new string[] { name };
}
但是,当我尝试读取 fr-FR local 的键时,它给出了英文值。 唯一的区别是,法语资源文件存在于文件夹中,而其他资源文件存在于项目级别。
【问题讨论】:
-
你得到了什么,你到底期望得到什么?这真的是特定于文化的吗?为什么在访问属性时将当前线程的文化设置为当前线程上的
fr-FR?看到“原样”不同文化特定数据的示例也会很有趣 -
我在所有资源文件中都有一个带有“名称”的键。我想根据用户发送的文化返回名称值。例如:如果他发送 de-DE,我们需要发送德语文件中的值。如果他发送 fr-FR,我们需要发送法语文件中的值。
标签: c# asp.net-web-api asp.net-core localization internationalization