大家好,我参与了一个本地化项目。我们正在与地区合作,我们需要为支持的语言创建资源文件。默认结构(Resources / Controllers / controllername.culture.resx)可以像Microsoft docs一样正常工作。我们想知道其余区域的目录结构。我们已经寻找了一些文档,但没有找到。致敬
C#对象(而非视图)的资源文件由namespace
它们所在的文件解析。它们ResourcePath
在MVC本地化初始化期间与集合相对。
假设您已将中的设置ResourcesPath
为“资源”
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项目。