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

Создание многоязычного сайта в Composite C1 CMS (8). Автоматизация перевода строк в шаблонах и функциях

Итак, мы рассмотрели, как делать локализацию строк в XML-шаблонах и XSLT-функциях.

А что если у вас есть несколько шаблонов и много таких функций. Искать и заменять строки на ресурсные в таком случае будет долгим занятием.

Для автоматизации этого процесса есть пакет расширения Frontend Localizer. Что он делает?

Он сканирует все XML-шаблоны и XSLT-функции на предмет строк, создает запись в .resx-файле для каждой найденной строки, а саму строку в шаблоне или функции заменяет ссылкой на эту запись.  Точно то же, что вы делаете при локализации строк - только вручную.

В результате вы получаете .resx-файл со строками на языке сайта по умолчанию. И все, что вам осталось сделать - создать языковую копию этого файла и перевести строки в этой копии на нужный вам язык, используемый на сайте.

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

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

Пакет относится к группе Composite.Navigation и его полное название Composite.Navigation. FrontendLocalizer.

(Если вы используете одну из последних бета-версий Composite C1 CMS 4.0, то вам нужно будет заменить следующую строку в FrontendLocalizer.aspx после установки пакета:

foreach (var layout in DataFacade.GetData<IPageTemplate>())

IPageTemplate заменить на IXmlPageTemplate.

foreach (var layout in DataFacade.GetData<IXmlPageTemplate>()

Это связано с тем, что в версии 4.0 значительно расширена поддержка шаблонов на основе разных технологий и стандартный XML-шаблон теперь станет "одним из" стандартных шаблонов, поэтому он был переименован. А пакет Frontend Localizer пока еще не был обновлен под бета-версию.)

Автоматический перенос строк в ресурсные файлы

Чтобы осуществить локализацию существующих  XML-шаблонов и XSLT-функций:
  1. Откройте страницу http://<ваш_сайт>/FrontendLocalizer.aspx в вашем браузере.

  2. Если вас не устраивает имя файла по умолчанию, введите свое (по умолчанию, "Localization.resx")
  3. Нажмите Localize.

Файл локализации будет создан в папке ~/App_GlobalResources.

Перевод ресурсных строк

И теперь вы можете приступить у же к знакомой вам процедуре перевода строк в файлах локализации:
  1. Создайте языковую копию автоматически сгенерированного файла, например  Localization.ru-ru.resx.
  2. Переведите значения строк (поле Value) второй язык сайта (например, русский).
Напомню, что .resx-файлы удобно редактировать в Visual Studio.

Несколько замечаний:
  • Frontend Localizer   создает резервные копии измененных файлов в папке ~/App_Data/Backups/FrontendLocalizer и вы всегда можете "откатить" изменения.
  • Если у вас появились новые шаблоны или функции или новые строки в шаблонах и функциях без локализации, вам нужно будет повторить процедуру автоматического переноса строк в ресурсные файлы (см. выше). Но для этого вам нужно будет указать новое имя файла, так как существующий файл перезаписать нельзя.
  • Вы также можете вручную добавлять новые строки в автоматически сгенерированные файлы локализации.

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

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

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

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