gpt4 book ai didi

asp.net-mvc - 如何本地化 MvcSiteMapProvider

转载 作者:行者123 更新时间:2023-12-02 03:12:01 25 4
gpt4 key购买 nike

我尝试以几乎任何方式本地化 MvcSiteMapProvider,但我不明白。正如我发现的,当您使用 app_globalresources 文件夹时它可以工作,但如果您使用 MVC,则这不是一个选项,因为 MVC 不支持它们(至少发布功能不发布文件)。

目前,我的网站资源文件位于一个名为“words.resx”(和“words.de-DE.resx”)的文件中,该文件位于名为“Resources”的新文件夹下。我已将构建操作设置为“嵌入资源”、“始终复制”,并将工具更改为 PublicResXFileCodeGenerator。

对于站点地图,我不在乎它是隐式还是显式本地化......我尝试了这两种方法,并使用了不同的 resx 文件命名和自定义工具的不同设置,但它们都不起作用。

有人让它工作吗?

亲切的问候安迪

最佳答案

NOTE: An alternative approach to putting your resources in the App_GlobalResources folder (which isn't supported very well by MVC) would be to implement IStringLocalizer.

本地化与 Microsoft 的 SiteMapProvider 基本保持不变,MvcSiteMapProvider 最初是基于 Microsoft 的 SiteMapProvider。对于本地化,您仍然可以按照 How to: Localize Site-Map Data大部分内容为文档。

启用本地化是在 appSettings 中的 MvcSiteMapProvider_EnableLocalization 设置中完成的,或者如果使用外部 DI,您可以通过将该设置传递给 SiteMapBuilderSet 的 enableLocalization 构造函数参数来在 DI 配置中进行设置。默认情况下启用。

我建议使用显式本地化,如隐式本地化 requires some hoops开始工作,并且可能会在未来版本中发生变化。

可本地化的字段有:

  • 标题
  • 描述
  • 图片网址
  • 属性(字符串数据类型)

这是来自 MvcMusicStore demo 的显式本地化示例,它在某些节点上使用了本地化。

<mvcSiteMapNode title="$resources:SiteMapLocalizations,BrowseGenresTitle" controller="Store" action="Index"/>

它引用 App_GlobalResources 文件夹中名为 SiteMapLocalizations.resx 的文件(以及名为 BrowseGenresTitle 的项目)。

或者,您可以使用multiple sitemaps in the same application对于每个区域设置,这使得每个区域设置都有不同的站点结构(和不同的 URL)。

关于asp.net-mvc - 如何本地化 MvcSiteMapProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20328189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com