如何翻译控制器文件中的文本Prestashop

时间:2016-09-08 08:51:54

标签: php override translation prestashop prestashop-1.6

我覆盖了一个控制器文件(CartController)......我得到了产品条件(新)我将在法国网站上成为“Nouveau”。我使用以下代码,但它不起作用。我该如何解决这个问题?

/override/controllers/front/CartController.php中的

[...] 
$list_product = $cart_current->getProducts();
foreach ($list_product as $index => $product){
    $product_current = new ProductCore($product['id_product'],true);
    $result['label'] = $this->l($product_current->condition); /* Translation? */
}
[...]

3 个答案:

答案 0 :(得分:1)

首先我建议修改你的代码:

[...] 
$list_product = $cart_current->getProducts();
foreach ($list_product as $index => $product){
    $product_current = new Product($product['id_product'],true); // Product not ProductCore
    $result['label'] = $product_current->condition; // Translation not here in the 'controller' but we make in the 'view'
}
[...]

然后在'view'(cart.tpl / product.tpl)中:

[...]
/*
You have to comment this translations to avoid displaying. This is a workaround used also for the months.
{l s='New'} // {l s='New' mod='mymodule'} if you are in your module tpl
{l s='Used'} // Like above
*/
{l s='%s' sprintf=[$result['label']]}
[...]

答案 1 :(得分:0)

更好的做法是覆盖类/ Cart.php,函数getProducts 并添加查询

, p.`condition`

答案 2 :(得分:0)

您可以在任何模块翻译中添加“新建”的翻译文本后尝试使用以下内容

翻译:: getModuleTranslation()

取代

$这 - →1()