我是Prestashop的新手。在学习时,我发现了这个
{l s='Accept PayPal' mod='paypal'}
我很好奇上面声明中的s是什么意思。我知道l代表语言,但我不知道s的含义。
s
表示字符串,是要翻译的字符串。
l()
是我们在PrestaShop中添加的自定义Smarty函数,用于使模板(.tpl文件)可翻译。
我们在 86 行的/config/smarty.config.inc.php
中注册了它:
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文档中找到更多信息 此处.
s"的意思是"字符串","l"是"语言",那么为什么不使用"m"而不是"mod";)