Phalcon - Support multilingue

Phalcon comprend un composant Phalcon\Translate qui fournit un support multilingue et il est très utile de créer des pages Web, qui sont traduites en plusieurs langues.

Il comprend un adaptateur qui aide à lier les tableaux et aide à lire les messages de traduction.

Exemple

Créons une sortie à l'aide du composant Translate dans Phalcon, qui aidera à afficher la sortie selon la langue suggérée.

Step 1- Phalcon donne à chaque développeur la liberté d'organiser les chaînes de traduction. Pensez à conserver deux fichiers différents à savoir:en.php (pour les chaînes anglaises) et fr.php (pour les chaînes françaises).

Le fichier contiendra un tableau de paires clé-valeur, où les clés sont uniques et les valeurs différeront selon la traduction nécessaire.

en.php

<?php  

// app/messages/en.php 

$messagesContent = [ 
   "bye"     => "Good Bye", 
   "hi-name" => "Hello %name%", 
   "song"    => "Your favorite song is %song%", 
];

fr.php

<?php 

// app/messages/fr.php 

$messagesContent = [ 
   "bye"        => "Au revoir", 
   "hello-name" => "Bonjour %name%", 
   "song"       => "Votre chanson préférée est %song%", 
];

Step 2 - Dans une application, créez un UserController qui prendra des paramètres quant au fichier à utiliser pour la traduction.

<?php 

use Phalcon\Translate\Adapter\NativeArray; 

class UserController extends \Phalcon\Mvc\Controller {  
   protected function getMessageTransalation() { 
      // Ask for the best language 
      // Display the output in desired language 
      require "en.php";   
      
      // Return a translation object 
      return new NativeArray( ["content" => $messagesContent,]); 
   }  
   public function indexAction() { 
      $this->view->name = "Radhika"; 
      $this->view->song= "Ton sourire m'ensorcelle Je suis fou de toi Le désir coule dans mes veines Guidé par ta voix"; 
      $this->view->t    = $this->getMessageTransalation(); 
   } 
}

Pour la méthode par défaut, deux paramètres sont pris, le premier est le nom et le second est la chanson préférée de l'utilisateur. Plus tard, la fonctiongetMessageTranslation est appelé qui renvoie la sortie souhaitée.

Pour l'instant, nous voulons la sortie en anglais.

Step 3 - Les associés code view demo\app\views\User\index.volt inclura le code suivant -

<p><?php echo $t->_("hello-name", ["name" => $name]); ?></p> 
<p><?php echo $t->_("song", ["song" => $song]); ?></p>

Si nous voulons que la sortie complète soit affichée en français, il suffit de changer le nom du fichier.

require "fr.php";

Voici la sortie en français.