2012-04-04 4 views
0

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

Как я могу отправить всех пользователей разных языков в американскую версию? Для каждой языковой версии мы имеем язык в URL т.е. ..

нас/ИмяСтраницы тх/ИмяСтраницы ча/ИмяСтраницы

ответ

2

язык запасной вариант позволит решить эту проблему для вас? У вас есть два варианта:

  • используйте альтернативный вариант модуля, который падает обратно на другой язык, если элемент не существует в версии
  • Используйте «частичный» язык резервный модуль, который будет падать обратно поля данных, не заселены на другой язык. В этом случае вам просто нужно создать пустую языковую версию на каждом целевом языке.

http://trac.sitecore.net/LanguageFallback

0

Мне нравится идея поставщика базового языка, который в основном делает любое поле, которое не имеет значения в определенном языке, Откат к другому (например, английский).

Другой вариант заключается в создании процессора пользовательского HttpRequest трубопровода вблизи LanguageResolver искать предметы в этом разделе сайта и разрешения на английском языке для них:

  1. Создать класс, который наследуется от HttpRequestProcessor
  2. Реализовать public override void Process(HttpRequestArgs args) с кодом, чтобы проверить, находитесь ли вы в этом разделе сайта, и если да, установите Context.Language на английский.

Это просто идея, я не пробовал. Если вы хотите посмотреть, как работает текущий LanguageResolver, декомпилируйте Sitecore.Kernel с ILSpy и посмотрите на Sitecore.Pipelines.HttpRequest.LanguageResolver

Смежные вопросы