我正在开发一个使用本地化的 dotnet 应用程序。我一直在理解我的
.resx
文件应该存放在哪里。
当前的文件结构如下所示:
- Root
- Views
- Home
- Home.cshtml
- Resources
- Views.Home.Home.es.resx
看起来效果很好。
但是,我正在尝试为区域中的视图添加资源文件:
- Root
- Areas
- Myarea
- Views
- Home
- Home.cshtml
- Views
- Home
- Home.cshtml
- Resources
- Views.Home.Home.es.resx
这就是我陷入困境的地方。我不知道 a) 我的 resx 文件应该放在上面结构中的什么位置以及 b) 它应该如何命名。
dotnet 中的 resx 文件似乎有点“魔法”……只要您正确命名它们并将它们放在正确的位置,应用程序就会找到它们。但是,我找不到有关在区域内使用它们的任何明确信息。
根据我尝试过的网上各种建议:
Resources
目录并将其放在那里对于“本地化资源文件位于何处以便 dotnet 应用程序中的区域找到它们?”是否有正确/具体的答案
来自资源文件命名、
资源以其类的完整类型名称减去程序集名称来命名。
类
LocalizationWebsite.Web.Controllers.HomeController
的资源将被命名为Controllers.HomeController.fr.resx。
假设我们将
ResourcesPath
设置为“资源”,与 Views/Home/About.cshtml 视图关联的资源文件可以是以下任一:
资源/视图/主页/About.fr.resx
资源/视图.Home.About.fr.resx
通过检查“Myarea”区域中razor页面/控制器文件的命名空间,命名空间应为:
<Your Web application assembly name>.Areas.MyArea.Controllers
因此,该区域的资源文件名应采用以下格式:
<Area Name>.Views.<Controller name/View directory>.<Action name>.<locale>.resx
文件名为:
Myarea.Views.Home.Home.es.resx
您的网络应用程序的目录和文件如下:
- Root
- Areas
- Myarea
- Views
- Home
- Home.cshtml
- Views
- Home
- Home.cshtml
- Resources
- Views.Home.Home.es.resx
- Myarea.Views.Home.Home.es.resx