Вариант создания шаблона письма- уведомления о заказе для мультиязычного сайта(xslt). — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
Строка 38: Строка 38:
 
</source>
 
</source>
  
Теперь, при появлении новой языковой версии, нужно будет только добавить соответствующие константы в файл  constants.%префикс%.dtd
+
:Теперь, при появлении новой языковой версии, нужно будет только добавить соответствующие константы в файл  constants.%префикс%.dtd
  
С помощью механизма констант можно также создать в шаблоне ссылку на личный кабинет в соответсвующей языковой версии.
+
:С помощью механизма констант можно также создать в шаблоне ссылку на личный кабинет в соответсвующей языковой версии.
  
 
Создаем константы для языковых префиксов:
 
Создаем константы для языковых префиксов:
 
+
<source lang="html4strict">
 
<!ENTITY lang "ru">
 
<!ENTITY lang "ru">
  
Строка 49: Строка 49:
  
 
<!ENTITY lang  "fr">
 
<!ENTITY lang  "fr">
 +
</source>
  
 
Далее, создаем в шаблоне переменную и присваиваем ей значение константы.
 
Далее, создаем в шаблоне переменную и присваиваем ей значение константы.
  
 
Например так:
 
Например так:
 
+
<source lang="html4strict">
 
<xsl:variable name="la">
 
<xsl:variable name="la">
  
Строка 59: Строка 60:
  
 
</xsl:variable>
 
</xsl:variable>
 +
</source>
  
 
Записываем переменную в тег ссылки вместо языкового префикса
 
Записываем переменную в тег ссылки вместо языкового префикса

Версия 12:00, 4 июня 2013


Задача:

Необходимо создать единый шаблон письма- уведомления покупателю на сайте с несколькими языковыми версиями.


Решение:

Интернационализация шаблонов осуществляется при помощи специальных языковых констант. Файлы, в которые необходимо вносить изменения - constants.%префикс%.dtd, которые находятся в ~/templates/%имя%/xslt/i18n/
В них должен содержаться одинаковый набор констант, с разными значениями.

Константы записывается таким образом:

<!ENTITY "имя константы" " значение константы">
Шаблон письма-уведомления находится в файле default.xsl , расположенном в ~/templates/%имя%/xslt/mail/emarket/.
Необходимо создать для отдельных фрагментов текста письма языковые константы с разными значениями в соответсвующих файлах constants.%префикс%.dtd и вывести их в шаблоне письма, обрамив нужными html-тегами, т.е. сам шаблон будет намного короче и система сама будет передавать в константы язык, в зависимости от выбранной пользователем версии.

Например:

русская версия

 <!ENTITY spasibo-zakaz "Спасибо за Ваш заказ">

английская версия

 <!ENTITY spasibo-zakaz "Thank you for your order">

Вызываем в шаблоне например таким образом:

<p> &spasibo-zakaz;</p>
Теперь, при появлении новой языковой версии, нужно будет только добавить соответствующие константы в файл constants.%префикс%.dtd
С помощью механизма констант можно также создать в шаблоне ссылку на личный кабинет в соответсвующей языковой версии.

Создаем константы для языковых префиксов:

<!ENTITY lang "ru">

<!ENTITY lang "en">

<!ENTITY lang   "fr">

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

Например так:

<xsl:variable name="la">

<xsl:text>&lang;</xsl:text>

</xsl:variable>

Записываем переменную в тег ссылки вместо языкового префикса

<a href="http://{$domain}/{$la}/emarket/personal">&personal-account;</a>

В качестве текста ссылки также используем константу для различных языковых версий.