use*_*068 9 localization razor asp.net-core
我Resources
在ASP.NET Core解决方案中创建了一个文件夹,并创建了用于翻译的resx文件.我有模型,页面和控制器的resx文件.我想知道Resource
当pagemodel中有inputmodel时,在res 文件放在s文件夹中的哪个位置?
小智 7
这是一个老问题,也许现在不相关了,但是我也遇到了同样的问题,并且能够解决,所以我将添加对我有用的东西。
这实际上只是一个小细节。如果我们需要页面模型的资源,则可以使用Resources\Pages\IndexModel.en.resx
,对于该页面模型内部的类,可以添加+InnerModel
,最后以Resources\Pages\IndexModel+InnerModel.en.resx
我在这里创建了一个带有工作示例的GitHub存储库-> https://github.com/joaofbantunes/AspNetCoreRazorPagesInnerModelLocalizationSample
Laz*_*iya -1
假设我们在pages文件夹下有一个razor页面,如下所示:
页面/MyPage.cshtml
及其模型页面:
页面/MyPage.cshtml.cs
您的资源文件夹位于项目根目录中 Pages 文件夹旁边,如下所示:
项目根
-- 页面
- 资源
MyPages 默认输入模型为:
我的页面模型
资源文件的命名根据您的startup.cs文件中的视图本地化设置而有所不同,
点命名:
如果您使用带有“后缀”选项的每个视图资源文件:
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddViewLocalization(LanguageViewLocationExpanderFormat.Suffix);
Run Code Online (Sandbox Code Playgroud)
那么你必须遵循资源文件的点命名:
Resources/Pages.MyPage.en-US.resx // 视图的本地化资源
Resources/Pages.MyPageModel.en-US.resx // 输入模型的本地化资源
子文件夹命名
如果您使用带有“子文件夹”选项的每个视图资源文件:
services.AddMvc()
.SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
.AddViewLocalization(LanguageViewLocationExpanderFormat.SubFolder);
Run Code Online (Sandbox Code Playgroud)
然后您必须为资源文件创建类似于视图文件夹结构的文件夹结构:
Resources/Pages/MyPage.en-US.resx // 视图的本地化资源
Resources/Pages/MyPageModel.en-US.resx // 输入模型的本地化资源
还有另一种选择,即使用共享资源文件,您可以为每种语言的所有视图仅创建一个资源文件,而不是为每种语言的每个视图创建一个资源,如果您有兴趣使用共享资源,您可以访问此博客页面:http ://www.ziyad.info/en/articles/10-Developing_Multiculture_Web_Application
归档时间: |
|
查看次数: |
1307 次 |
最近记录: |