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.