2016-11-15 84 views
0

我已經創建了一個覆蓋AdminProductController.php並創建一個新的bulk_action的模塊。PrestaShop:翻譯overrided控制器

<?php 
class AdminProductsController extends AdminProductsControllerCore 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $this->bulk_actions['setprice'] = array(
      'text' => $this->l('Set a price for selected'), 
      'icon' => 'icon-price', 
     ); 
    } 
} 

現在我需要翻譯動作文本並將該翻譯與模塊分發。 問題是我看不到模塊翻譯中的原文,而是在後臺翻譯中可見。

那麼,有沒有辦法將這個字符串添加到模塊翻譯而不是後臺翻譯? 。

回答

1

的主要問題描述我在這裏找到:How to get translation from other module in PrestaShop?

這是因爲翻譯控制器使用正則表達式在模塊文件夾內掃描$ this-> l((。*))並將可翻譯字符串添加到文件中 因此,我們應該在模塊中做類似下面的操作:

class MyModule extends Module 
{ 

    public static $l = null; 
    public function __construct() 
    { 
     parent::__construct(); 
     $this::$l = $this->l('Set a price for selected'); 
    } 
} 

比控制器,我們可以做什麼建議由@TheDrot:

class AdminProductsController extends AdminProductsControllerCore 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $module = Module::getInstanceByName('modulename'); 
     $this->bulk_actions['setprice'] = array(
      'text' => $module->l('Set a price for selected'), 
      'icon' => 'icon-price', 
     ); 
    } 
} 
1

您可以通過創建你想要的翻譯是在一個模塊的情況下做到這一點

class AdminProductsController extends AdminProductsControllerCore 
{ 
    public function __construct() 
    { 
     parent::__construct(); 
     $module = Module::getInstanceByName('modulename'); 
     $this->bulk_actions['setprice'] = array(
      'text' => $module->l('Set a price for selected'), 
      'icon' => 'icon-price', 
     ); 
    } 
} 
+0

到目前爲止它沒有幫助。該短語從後臺選項卡中消失,但未出現在模塊選項卡中 – 1099511627776

0

嘗試在地方的這 - $> 1使用下面的代碼(「設置一個價格選擇了」)

Translate :: getModuleTranslation(YOUR_MODULE_NAME,'爲所選的設置價格',FILE_NAME);