我正在努力使ASP.NET Core 2.0应用程序成为多语言。我在名为“Resource.it.resx”的文件夹“Resources”下创建了一个资源文件。我将其访问修饰符设置为Public,将其Namespace设置为Resources。
在(重新)构建解决方案后,我无法在cshtml代码中的C#代码中看到此命名空间。
还有其他一些步骤吗?
答案 0 :(得分:1)
首先检查您的资源命名空间是否在控制器中可见, 比如Resources.Resource。
我没有,在这种情况下我创建了emtpy资源类,例如。我的资源名称是ServiceResources.en-US.resx,在同一文件夹中我也有ServiceResources.cs空类。
使用IStringLocalizer类检查是否已在_ViewImports.cshtml中正确导入了命名空间。
答案 1 :(得分:1)
您需要考虑两件事:
Resource.resx
生成命名空间,特定于文化的资源(如Resource.it.resx
)不会生成命名空间。这是预期的行为。IStringLocalizer
查找本地化字符串。 我建议您阅读ASP.NET核心本地化in the official MSDN guide的基础知识。在那里,您将找到在控制器,视图和您需要的位置本地化字符串的示例。