понедельник, 3 сентября 2012 г.

Создание многоязычного сайта в Composite C1 CMS (4). Переключение языка

Если вы добавили дополнительные языки на сайт, и перевели на них страницы, то для того, чтобы увидеть это все в действии, вам нужно установить пакет расширения Language Switcher (т.е. "переключатель языков").

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


В зависимости от настроек функции переключения языков, посетитель определенной страницы сможет выбрать ее язык, либо попасть на главную страницу сайта на выбранном языке. Кроме того, вы можете  выбрать способ представления пунктов этого меню выбора языков на страницах (буквенный код языка, название на языке оригинала, графическое представление и т.п.).


Если вы пользуетесь стартовыми сайтами, то пакет Language Switcher уже установлен на вашем сайте,  а его функция выбора языка добавлена на все страницы. Пункты меню выбора языка появятся на сайте, как только вы переведете главную страницу сайта на дополнительный язык.

Установка пакета

Установка пакета Language Switcher ничем не отличается от установки любого другого пакета с сервера пакетов Composite C1 CMS.

Пакет относится к группе Composite.Navigation и его полное название Composite.Navigation.LanguageSwitcher.XSLT (созданный с помощью XSLT) и Composite.Navigation.LanguageSwitcher.Razor (созданный с помощью Razor).

По функции эти пакеты одинаковы, и прозрачны с точки зрения пользователя. Однако для работы Razor-варианта вам понадобится еще установить пакет поддержки Razor в Composite c1 CMS - CompositeC1Contrib.RazorFunctions. Razor-вариант используется на Razor-версии Стартового сайта.  Но вы можете использовать Razor-пакет на HTML/XSLT сайтах, а XSLT-пакет на Razor-сайтах.

Добавление меню выбора языка на страницы

Так как меню выбора языка обычно должно находится на всех страницах, то лучше всего его добавить в шаблоны используемых страниц, или в функцию, которая используется во всех шаблонах (или подобным образом).

На стартовом сайте на основе XSLT, например, меню добавлено в функцию Layout.Header, которая в свою  очередь добавлена в функцию Layout.MasterTemplate, а та используется во всех шаблонах стартового сайта.

Мы воспользуемся более простым способом и добавим функцию Composite.Navigation.LanguageSwitcher, которая и отвечает за меню выбора языка, непосредственно в шаблон страницы. (этот подход используется в стартовом сайте на основе HTML.)
  1. В разделе Макет, откройте шаблон на редактирование и разместите курсор там, куда вы хотите вставить функцию.
  2. В меню Добавить, выберите Код функции и в окне выбора функции выберите функцию Composite.Navigation.LanguageSwitcher.
  3. В Свойствах функции  в параметре Mode выберите режим переключения на другой язык:
    • HomePages:  Меню выбора языка будет появляться на  всех страницах и при переключении на другой язык, будет открываться главная страница сайта
    • TranslatedPages: Меню выбора языка будет появляться только на переведенных страницах, и переключать только на них
    • TranslatedOrHomePages: Меню выбора языка будет появляться на  всех страницах и переключаться на переведенные страницы, если они есть, или на главную страницу сайта если  их нет.
  4. В параметре Format выберите формат отображения пунктов меню выбора языка:
    • DisplayName: Полное название языка на языке локализированной версии .NET Framework. То есть если  .NET Framework  на сервере английский, то пункт меню  для русского языка будет "russian", если русский -  то "русский".
    • EnglishName: Пункты меню  будут даны по-английски ("russian").
    • Name: Буквенный код для культуры и языка ("ru-ru").
    • NativeName: Название языка на языке оригинала (для русского - "русский").
    • ThreeLetterISOLanguageName: Трех-буквенный код в формате ISO 639-2 для языка ("rus").
    • ThreeLetterWindowsLanguageName:  Трех-буквенный код определенный в Windows API для языка ("rus"). 
    • TwoLetterISOLanguageName:  Двух-буквенный код в формате ISO 639-2 для языка ("ru"). Это параметр по умолчанию.
    • Image: Графическое представление языка в виде флага. Для этого формата нужно установить дополнительный пакет (см. ниже).
    • Empty: Ничего не показывает (для использования своего собственного формата.)
  5. Настройте другие параметры, если нужно:
    • ShowCurrent: Показывает ссылку на текущий язык страницы/сайта (включено по умолчанию).
    • NavigationId: Значение атрибута Id используемого в элементе <div> в меню  выбора языка. Понадобиться вам, для обращения к элементу этого меню.
    • Description: Текст, который появится рядом с пунктами выбора меню (например, "Сменить язык: ". По умолчанию этого текста нет.
    • IncludeQuery:  Сохранять часть URL'а, которая относится к параметрам запроса (например ?Id=a3522d3c-45be-42df-b31f-ea508bc137ba) при переключении на другой язык. По умолчанию включено.
Отображение пунктов меню в виде флагов

Чтобы пункты меню отображались в виде флагов, вам нужно установить дополнительный пакет - Composite.Navigation.LanguageSwitcher.Flags. Он содержит графические файлы - изображения флагов, а также CSS для их представления и форматирования.

Пакет содержит приличное количество флагов для многих языков. Однако для некоторых языков они могут отсутствовать. Поэтом если при использовании этого формата, флаг не появился в меню, убедитесь что он существует для этого конкретного языка.

(продолжение)

Предыдущие сообщения:


Читайте также:

Комментариев нет:

Отправить комментарий