Magento : Traductions multilingues dans un même fichier

Voici un code qui vous permettra de traduire un template dans l’ensemble des langues du site dans une seule fonction.
C’est pratique notamment pour l’envoi de contenus emails traduits.

Dans le snippet ci-dessous la langue du template sera basé sur le store_id de la commande

foreach ( $orders as $order ) {
 
//Pour bien gérer la traduction on change le store en fonction de la commande
Mage::app()->setCurrentStore($order->getStoreId());  //Changement de store
$locale  = Mage::getModel('core/locale')->getLocaleCode(); // Récupération de la locale du store
Mage::app()->getTranslator()->setLocale($locale); // Définition de la locale pour la traduction
Mage::app()->getTranslator()->init('frontend', true);   //Réinitialisation du cache  de traduction
 
//Création du block qui sera traduit dans la  langue du store et stockage de son contenu dans une variable
$layout = Mage::getSingleton('core/layout');
$contenu =  $layout->createBlock('core/block')
->setTemplate('order.phtml'

Magento : Traductions multilingues dans un même fichier Lire la suite »