如何在prestashop控制器中使用翻译?
问题描述:
通常模板具有这样的聪明功能:{l s="string"}
而模块只使用$this->l('string');
。在控制器上,l()函数似乎不可用,那么如果我想设置一些要从后台翻译的文本?如何在prestashop控制器中使用翻译?
答
在这两种情况下都使用来自Translate
等的方法,例如,对于模块转换Translate::getModuleTranslation(...)
,您可以检查classes/Transalte.php
并找到静态方法getAdminTranslation(...)
和AdminController子类可用l()
使用它的方法。
答
它在控制器中可用您只需添加模块对象即可。
你应该这样做
$this->module->l('Your string to translate', 'file_name');
例如,如果你在validation.php
你'file_name'
应该只是'validation'
所以完整的例子看起来像这样
$this->module->l('Your string to translate', 'validation');
嗯,而是前端什么控制器? – Stratboy
我只是不知道为什么你需要翻译前端控制器中的东西,为什么不只是例如将需要的“字符串”分配给控制器中的smarty变量,然后在模板中分配“{l s =”string“}”?默认情况下我没有办法做到这一点 –
如果我们要求,我们开发人员总是需要:)在这种情况下,我需要以编程方式基于多个变量构建字符串(仅),然后将它们分配给smarty变量。尽管如此,我看不到方法。我认为你是对的,我们不能。但是很奇怪:我没有看到让l()函数可用于模块,而不适用于前端控制器。两个都分配smarty变量,所以都需要它。 Bah ... – Stratboy