如何在prestashop控制器中使用翻译?

如何在prestashop控制器中使用翻译?

问题描述:

通常模板具有这样的聪明功能:{l s="string"}而模块只使用$this->l('string');。在控制器上,l()函数似乎不可用,那么如果我想设置一些要从后台翻译的文本?如何在prestashop控制器中使用翻译?

在这两种情况下都使用来自Translate等的方法,例如,对于模块转换Translate::getModuleTranslation(...),您可以检查classes/Transalte.php并找到静态方法getAdminTranslation(...)和AdminController子类可用l()使用它的方法。

+0

嗯,而是前端什么控制器? – Stratboy

+0

我只是不知道为什么你需要翻译前端控制器中的东西,为什么不只是例如将需要的“字符串”分配给控制器中的smarty变量,然后在模板中分配“{l s =”string“}”?默认情况下我没有办法做到这一点 –

+1

如果我们要求,我们开发人员总是需要:)在这种情况下,我需要以编程方式基于多个变量构建字符串(仅),然后将它们分配给smarty变量。尽管如此,我看不到方法。我认为你是对的,我们不能。但是很奇怪:我没有看到让l()函数可用于模块,而不适用于前端控制器。两个都分配smarty变量,所以都需要它。 Bah ... – Stratboy

它在控制器中可用您只需添加模块对象即可。

你应该这样做

$this->module->l('Your string to translate', 'file_name'); 

例如,如果你在validation.php'file_name'应该只是'validation'

所以完整的例子看起来像这样

$this->module->l('Your string to translate', 'validation');