.NET Localized Citemap из базы данных?
-
24-09-2019 - |
Вопрос
У меня есть пользовательский сайтemOppider, который загружает страницы из базы данных.
Страницы (PageID, FK_PageID (родитель), заголовок, URL, SHOW_IN_MENU)
Я хотел бы глобалить / локализовать title
страницы. Какой самый лучший метод?
Решение
Когда вы создаете свои объекты Sitemapnode, используйте конструктор, который позволяет вам указать неявные / явные клавиши ресурсов. Я бы порекомендовал идти с явными ключами ресурсов.
http://msdn.microsoft.com/en-us/library/ms150104.aspx.
«Чтобы программно указать ресурсы для локализации, либо устанавливайте значение implicesourcekekekekeke к уникальному имени, которое будет использоваться для идентификации локализованных ресурсов для узла или установки expliTresourcekeseys к коллекции namevalueCollection of name / values, в котором название имена свойство узла или пользовательский атрибут Для локализации и значения содержат значения локализации для свойства узла или пользовательского атрибута. Локализованные значения могут быть установлены в соответствующих файлах .resx. Для получения дополнительной информации о том, как локализовать заголовок, описание и любые пользовательские свойства объекта Sitemapnode, Посмотрите, как: локализовать данные на карте сайта. Для требований синтаксиса в коллекции explicesourcekekeyseys см. НазваниеValueCollection. "
Обычно для локализации статической карты сайта вы будете использовать выражение ресурсов, как следующее: "$Resources:<ClassName>,<KeyName>,<DefaultValue>"
.
Вместо этого добавьте <ClassName>
, <KeyName>
, а также <DefaultValue>
Значения для explicesourcekekey namevaluecollection в том порядке, в котором они появляются в выражении, все добавлено, используя один и тот же ключ.
Так что если бы ваше выражение было бы "$Resources:SiteMapResourceFileOrClass,RootNode.Title,My Root Node"
, вместо этого сделайте следующее:
explicitResourceKeys.Add("Title", "SiteMapResourceFileOrClass")
explicitResourceKeys.Add("Title", "RootNode.Title")
explicitResourceKeys.Add("Title", "My Root Node")
Вы можете сделать то же самое для описания.