2016-11-15 14 views
0

AdminProductController.phpをオーバーライドして新しいbulk_actionを作成するモジュールを作成しました。PrestaShop:オーバーライドされたコントローラの翻訳

<?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?

これはあるのでtranslationsコントローラはregexを使って$ 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

ます$ this->リットルの代わりに次のコードを使用してみてください(「選択のための価格を設定してください」)

Translate :: getModuleTranslation(YOUR_MODULE_NAME、 '選択した価格を設定する'、FILE_NAME);

関連する問題