大家好,我正在参与一个本地化项目。我们正在处理不同的区域,需要为支持的语言创建资源文件。 默认结构(Resources/Controllers/controllername.culture.resx)与微软文档一样工作得很好。 我们想知道其余区域的目录结构。我们查阅了一些文档,但没有找到相关内容。 感谢大家。
大家好,我正在参与一个本地化项目。我们正在处理不同的区域,需要为支持的语言创建资源文件。 默认结构(Resources/Controllers/controllername.culture.resx)与微软文档一样工作得很好。 我们想知道其余区域的目录结构。我们查阅了一些文档,但没有找到相关内容。 感谢大家。
对于C#对象(而不是视图)的资源文件,它们的解析是通过其所在的命名空间
进行的。它们相对于MVC本地化初始化期间设置的ResourcePath
。
假设您已将ResourcesPath
设置为“ Resources”,则您可以这样设置:
services.AddLocalization(s => s.ResourcesPath = "Resources");
并且您有一个没有领域的HomeController
,如下所示:
namespace WebApp.Controllers
{
public class HomeController : Controller
{
...
}
}
如果您的资源文件位于文件夹 Resources>Controllers>HomeController.{culture}.resx
中,则将选择它们。
对于区域中的控制器,您可以像这样更改不同的命名空间:
namespace WebApp.Admin.Controllers
{
[Area("admin")]
public class HomeController : Controller
{
...
}
}
HomeController
。Resources>Admin>Controllers>HomeController.{culture}.resx
或者可以具有以下命名:Admin.Controllers.HomeController.{culture}.resx
这适用于ASP.NET Core 1.1.0。我已经通过区域更新了AspNetCore.Identity.Localization项目。controllername.culture.resx
文件放在Controllers
目录中(确切地说是与controllername.cs
文件相同的位置,不要在任何地方创建“Resources”目录)。controllername.resx
)进行测试。如果可以正常工作,再扩展为controllername.culture.resx
文件。也许这个答案有点晚了,但我还是想参与一下。首先,将主路径设置为 Resource 是不足以进行配置的。如果你有区域,必须按照以下步骤操作: