Phalcon - Soporte multilingüe

Phalcon incluye un componente Phalcon\Translate que proporciona soporte multilingüe y es muy útil para crear páginas web, que se traducen en varios idiomas.

Incluye un adaptador que ayuda a enlazar matrices y ayuda a leer los mensajes de traducción.

Ejemplo

Creemos una salida con la ayuda del componente Traducir en Phalcon, que ayudará a mostrar la salida según el idioma sugerido.

Step 1- Phalcon da libertad a cada desarrollador para organizar cadenas de traducción. Considere mantener dos archivos diferentes a saber:en.php (para cadenas en inglés) y fr.php (para cuerdas francesas).

El archivo contendrá una matriz de pares clave-valor, donde las claves son únicas y los valores diferirán según la traducción necesaria.

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 - En una aplicación, cree un UserController que tomará parámetros sobre qué archivo se debe utilizar para la traducción.

<?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(); 
   } 
}

Para el método predeterminado, se toman dos parámetros, el primero es el nombre y el segundo es la canción favorita del usuario. Más tarde, la funcióngetMessageTranslation se está llamando que devuelve la salida deseada.

Por ahora, queremos la salida en inglés.

Step 3 - El asociado code view demo\app\views\User\index.volt incluirá el siguiente código:

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

Si queremos que la salida completa se muestre en francés, solo necesitamos cambiar el nombre del archivo.

require "fr.php";

A continuación se muestra la salida en francés.