Я уже немного касался локализации строк, которые появляются на страницах, в частности, из шаблонов и, вообще, из XSLT-функций.
Давайте вместе локализируем строки на конкретном примере.
Есть такой модуль расширения Composite.Lists.FAQ, который, как следует из названия, позволяет создать на сайте список часто задаваемых вопросов (ЧаВо).
Примечание. Имеется в виду Composite.Lists.FAQ версии 1.2.3, в котором не локализирована строка. На данный момент это последняя его версия.
Если вы его будет использовать на локализированной странице (напр, на русском языке), то ссылка, по которой можно вернуться с ответа на отдельный вопрос к списку вопросов будет называться "Back to FAQ". Но это легко исправимо.
Давайте локализируем эту строку, чтобы на англоязычной версии страницы - она читалась "Back to FAQ", а на русскоязычной версии - "К списку вопросов".
Предварительные требования
На нашем сайте:
Обратите внимание, где и как использовалось название файла и название строки в примере.
Подведем итоги
Итак:
Давайте вместе локализируем строки на конкретном примере.
Есть такой модуль расширения Composite.Lists.FAQ, который, как следует из названия, позволяет создать на сайте список часто задаваемых вопросов (ЧаВо).
Примечание. Имеется в виду Composite.Lists.FAQ версии 1.2.3, в котором не локализирована строка. На данный момент это последняя его версия.
Если вы его будет использовать на локализированной странице (напр, на русском языке), то ссылка, по которой можно вернуться с ответа на отдельный вопрос к списку вопросов будет называться "Back to FAQ". Но это легко исправимо.
Давайте локализируем эту строку, чтобы на англоязычной версии страницы - она читалась "Back to FAQ", а на русскоязычной версии - "К списку вопросов".
Предварительные требования
На нашем сайте:
- Установлено два языка - русский и английский.
- Установлен модуль расширения Composite.Lists.FAQ версии 1.2.3.
- Создана страница типа "FAQ page" (что добавит папку данных "FAQ" к странице и вставит на нее функцию "Composite.Lists.FAQ.LinksToDetails").
- Страница существует на обоих языках.
- Добавлено несколько вопросов в ЧаВо.
Файлы локализации строк
Начнем с создания файлов локализации.
- Открываем наш веб-сайт в Visual Studio.
- Убеждаемся, что на нашем сайте есть папка ~/App_GlobalResources. И если ее нет - создаем ее.
- Создаем ресурсный файл (.resx) в этой папке под названием "FaqStrings.resx": ~/App_GlobalResources/FaqStrings.resx
- Добавляем в него нашу строку по английски:
- Name: BackToFaq
- Value: Back to FAQ
- Теперь делаем копию этого файла, но добавляем в его название суффикс "ru-ru" для русского языка (или соответствующий суффикс для нужного языка): ~/App_GlobalResources/FaqStrings.ru-ru.resx
- Так как это - копия, то у нас уже имеется запись BackToFaq. Мы только переводим значение с английского на русский:
- Name: BackToFaq
- Value: К списку вопросов
Файлы локализации с нужной нам строкой - готовы. А теперь воспользуемся локализированной строкой.
Использование локализированых строк
Использование локализированых строк
Итак, мы помним, что название файла у нас "FaqStrings", а название нужной нам строки "BackToFaq". Эта информация нам сейчас будет нужна.
Сама нелокализированная строка находится в функции "Composite.Lists.FAQ.LinksToDetails"(которая добавлена на страницу), поэтому:
- В разделе "Функции", открываем XSLT-функцию "Composite.Lists.FAQ.LinksToDetails" на редактирование.
- На вкладке "Шаблон", находим строку Back to FAQ.
- И заменяем ее на такой элемент:
<lang:string key=”Resource, Resources.FaqStrings.BackToFaq” />
- Сохраняем функцию.
Обратите внимание, где и как использовалось название файла и название строки в примере.
Подведем итоги
Итак:
- Строки локализации нужно хранить в ресурсных файлах (.resx) в папке App_GlobalResources. Их удобнее всего создавать в Visual Studio, где есть нужный для этого редактор.
- Для языка по умолчанию название файла не включает в себя языковой суффикс. Для каждого языка на сайте нужно создать копию такого файла с суффиксом языка/культуры, напр., "ru-ru".
- Локализированные строки можно использовать, напр., в XML-коде - то есть в шаблонах страниц и XSLT-функциях.
- В XML-коде используется XML-элемент <lang:string/> (пространство имен xmlns:lang="http://www.composite.net/ns/localization/1.0" если что).
- В атрибуте key этого XML- элемента указывается "Resource, Resources." и дальше добавляется имя ресурсного файла (без расширения и суффикса), точка, имя строки в ресурсном файле (см. пример выше).
Комментариев нет:
Отправить комментарий