#prestashop #prestashop-1.7 #smarty3
#prestashop #prestashop-1.7 #smarty3
Вопрос:
Я новичок в Prestashop. Во время обучения я обнаружил это
{l s='Accept PayPal' mod='paypal'}
Мне любопытно, что означает s в приведенном выше утверждении. Я знаю, что l для языка, но я не знаю значения s.
Ответ №1:
s
означает строку и является строкой, подлежащей переводу.
l()
это пользовательская функция Smarty, которую мы добавили в PrestaShop, чтобы сделать шаблоны (файлы .tpl) переводимыми.
Мы зарегистрировали его в /config/smarty.config.inc.php
строке 86:
smartyRegisterFunction($smarty, 'function', 'l', 'smartyTranslate', false);
А затем добавил его в configsmartyfront.config.inc.php
и configsmartyadmin.config.inc.php
:
function smartyTranslate($params, $smarty)
Вы можете использовать следующие параметры:
mod
Используется только в файлах шаблонов модулей (.tpl) с именем соответствующего модуля
Пример: {l s='My module text' mod='mymodulename'}
js
Для использования в блоках кода JavaScript переведенный контент будет экранирован
Пример: var my_var = '{l s='Delete' d='Admin.Actions' js=1}';
pdf
Используется для ссылки на файл pdf
Пример: {l s='Note' d='Shop.Pdf' pdf='true'}
d
Для использования в качестве ссылки на конкретный файл перевода
Пример: {l s='No menu' d='Admin.Advparameters.Feature'}
sprintf
Будет использоваться, если у вас есть переменные внутри переведенной строки
Пример: {l s='My variable is %s' sprintf=[$my_var|escape:'html':'UTF-8']}
Вы можете найти более подробную информацию в документации PrestaShop 1.7 здесь.
Ответ №2:
«s» означает просто «строка», а «l» — это «язык», так почему бы не использовать «m» вместо «mod» 😉