2016-11-15 1 views
0

Ich habe ein Modul erstellt, das eine AdminProductController.php überschreibt und eine neue Massenaktion ausführt.PrestaShop: Übersetzen übergeordneter Controller

Jetzt muss ich den Aktionstext übersetzen und diese Übersetzung mit Modul verteilen. Das Problem ist, dass ich nicht den ursprünglichen Text innerhalb der Module Übersetzung sehen, sondern es ist in Back-Office-Übersetzungen sichtbar.

Gibt es also eine Möglichkeit, diese Zeichenfolge den Modulübersetzungen und nicht den Backoffice-Übersetzungen hinzuzufügen? .

Antwort

1

Das Hauptproblem Beschreibung Ich habe hier gefunden: How to get translation from other module in PrestaShop?

Dies liegt daran, Übersetzungen Controller sucht nach $ this-> l ((. *)) innerhalb Modul Ordner mit Regex und fügt die übersetzbaren Zeichenfolgen zu einer Datei Also sollten wir in so etwas tun:

class MyModule extends Module 
{ 

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

als in Controller wir was tun kann, wurde von @TheDrot vorgeschlagen:

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

Sie können es tun, indem Sie eine Instanz eines Moduls Erstellen Sie die Übersetzung in sein wollen

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

Bisher hat es nicht geholfen. Der Ausdruck war von der Registerkarte "Backoffice" verschwunden, wurde jedoch nicht in der Registerkarte "Module" angezeigt – 1099511627776

0

Versuchen Sie, den folgenden Code anstelle von $ this-> l ('Set einen Preis für ausgewählte') mit

Übersetzen :: getModuleTranslation (YOUR_MODULE_NAME, 'Legen Sie einen Preis für ausgewählte', FILE_NAME);

Verwandte Themen