Что означает ‘s’ в {l s = ‘Accept PayPal’ mod = ‘paypal’}

#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» 😉