Вариант создания шаблона письма- уведомления о заказе для мультиязычного сайта(xslt). — различия между версиями
Материал из Umicms
Williwaw (обсуждение | вклад) |
Vitaliks (обсуждение | вклад) |
||
(не показано 10 промежуточных версий 2 участников) | |||
Строка 1: | Строка 1: | ||
− | [[category:Верстка в XSLT]] | + | [[category:Верстка в XSLT]][[Категория:Модуль Интернет магазин]] |
+ | '''Актуально для версии 18.''' | ||
==Задача:== | ==Задача:== | ||
Строка 15: | Строка 16: | ||
Константы записывается таким образом: | Константы записывается таким образом: | ||
− | <source lang=" | + | <source lang="xml"> |
<!ENTITY "имя константы" " значение константы"> | <!ENTITY "имя константы" " значение константы"> | ||
</source> | </source> | ||
− | Шаблон письма-уведомления находится в файле default.xsl , расположенном в ~/templates/%имя%/xslt/mail/emarket/. | + | :Шаблон письма-уведомления находится в файле default.xsl , расположенном в ~/templates/%имя%/xslt/mail/emarket/. |
− | Необходимо создать для отдельных фрагментов текста письма языковые константы с разными значениями в соответсвующих файлах constants.%префикс%.dtd и вывести их в шаблоне письма, обрамив нужными html-тегами, т.е. сам шаблон будет намного короче и система сама будет передавать в константы язык, в зависимости от выбранной пользователем версии. | + | :Необходимо создать для отдельных фрагментов текста письма языковые константы с разными значениями в соответсвующих файлах constants.%префикс%.dtd и вывести их в шаблоне письма, обрамив нужными html-тегами, т.е. сам шаблон будет намного короче и система сама будет передавать в константы язык, в зависимости от выбранной пользователем версии. |
Например: | Например: | ||
− | русская версия <!ENTITY spasibo-zakaz "Спасибо за Ваш заказ"> | + | русская версия |
− | + | <source lang="xml"> | |
− | английская версия <!ENTITY spasibo-zakaz "Thank you for your order"> | + | <!ENTITY spasibo-zakaz "Спасибо за Ваш заказ"> |
+ | </source> | ||
+ | английская версия | ||
+ | <source lang="xml"> | ||
+ | <!ENTITY spasibo-zakaz "Thank you for your order"> | ||
+ | </source> | ||
Вызываем в шаблоне например таким образом: | Вызываем в шаблоне например таким образом: | ||
+ | <source lang="xml"> | ||
+ | <p> &spasibo-zakaz;</p> | ||
+ | </source> | ||
− | + | :Теперь, при появлении новой языковой версии, нужно будет только добавить соответствующие константы в файл constants.%префикс%.dtd | |
− | + | :С помощью механизма констант можно также создать в шаблоне ссылку на личный кабинет в соответсвующей языковой версии. | |
− | |||
− | С помощью механизма констант можно также создать в шаблоне ссылку на личный кабинет в соответсвующей языковой версии. | ||
Создаем константы для языковых префиксов: | Создаем константы для языковых префиксов: | ||
− | + | <source lang="xml"> | |
<!ENTITY lang "ru"> | <!ENTITY lang "ru"> | ||
<!ENTITY lang "en"> | <!ENTITY lang "en"> | ||
− | <!ENTITY lang | + | <!ENTITY lang "fr"> |
+ | </source> | ||
Далее, создаем в шаблоне переменную и присваиваем ей значение константы. | Далее, создаем в шаблоне переменную и присваиваем ей значение константы. | ||
Например так: | Например так: | ||
− | + | <source lang="xml"> | |
<xsl:variable name="la"> | <xsl:variable name="la"> | ||
Строка 53: | Строка 61: | ||
</xsl:variable> | </xsl:variable> | ||
+ | </source> | ||
Записываем переменную в тег ссылки вместо языкового префикса | Записываем переменную в тег ссылки вместо языкового префикса | ||
− | + | <source lang="xml"> | |
<a href="http://{$domain}/{$la}/emarket/personal">&personal-account;</a> | <a href="http://{$domain}/{$la}/emarket/personal">&personal-account;</a> | ||
− | + | </source> | |
В качестве текста ссылки также используем константу для различных языковых версий. | В качестве текста ссылки также используем константу для различных языковых версий. |
Текущая версия на 15:04, 4 июня 2018
Актуально для версии 18.
Задача:
- Необходимо создать единый шаблон письма- уведомления покупателю на сайте с несколькими языковыми версиями.
Решение:
- Интернационализация шаблонов осуществляется при помощи специальных языковых констант. Файлы, в которые необходимо вносить изменения - 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>⟨</xsl:text>
</xsl:variable>
Записываем переменную в тег ссылки вместо языкового префикса
<a href="http://{$domain}/{$la}/emarket/personal">&personal-account;</a>
В качестве текста ссылки также используем константу для различных языковых версий.