Сайт страны ISO в URL - PullRequest
       18

Сайт страны ISO в URL

0 голосов
/ 12 октября 2011

Я создал сайт с несколькими языками в sitecore ... В редакторе контента (system> languages) я указал три языка (голландский, английский и немецкий).Нет, у меня 2 проблемы.

Когда у элемента есть, например: английская версия, но нет немецкой и голландской версии, и я набираю адрес на немецком сайте: www.testsite.com/de Я получаю немецкийсайт, но без содержания.В этом случае я хочу, чтобы страница 404 отображалась.

Другая проблема - когда я перехожу на язык, который не указан в system> language, а также на элементе по-прежнему остается пустой сайт.В этом случае я также хочу показать страницу 404.Sitecore показывает страницу, если она является действительным ISO-кодом.

Я использую Sitecore 6.4

У кого-нибудь есть решение этих проблем?

Заранее спасибо!

mrtentje

Мой LinkManager указан в Web.config следующим образом:

<add name="sitecore" type="Sitecore.Links.LinkProvider, Sitecore.Kernel" addAspxExtension="true" alwaysIncludeServerUrl="false" encodeNames="true" languageEmbedding="asNeeded" languageLocation="filePath" shortenUrls="true" useDisplayName="false"/>

Ответы [ 2 ]

0 голосов
/ 15 ноября 2011

Возможно, вы захотите взглянуть на модуль Language Fallback в библиотеке общих ресурсов Sitecore.Как он охватывает некоторые из ваших сценариев.

http://trac.sitecore.net/LanguageFallback

0 голосов
/ 12 октября 2011

К сожалению, вы должны управлять обоими этими сценариями вручную в Sitecore, они оба имеют довольно простые решения, но потребуют некоторой разработки с вашей стороны.

Для первого (доступ к страницам без переводов), я думаю, вам нужно будет расширить текущий ItemResolver внутри Sitecore и явно проверить, существует ли версия для выбранного языка. Я не реализовал это сам, но вот как я бы смотрел на это.

Второй (только для определенных языков) - это то, что я обработал, и меня очень беспокоило, что Sitecore не может справиться сам (хотя, возможно, это происходит, и я пропустил это). Для этого я сразу после LanguageResolver создал шаг в конвейере с именем PermissableLanguageChecker. Это проверяет, является ли текущий язык запроса одним из определенных допустимых значений, и если это не так, устанавливает язык обратно на язык по умолчанию, или в вашем случае выдает 404.

Для "допустимых значений" я прочитал их из конфигурации сайта с новым свойством там:

<site name="website" ... permissableLanguages="pl-PL,en" language="pl-PL" ... />

Это свойство permissableLanguages ​​удобно, поскольку мы также можем использовать его позже на сайте при представлении пользователю элемента управления выбором языка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...