Phalcon - Suporte Multi-Lingual

Phalcon inclui um componente Phalcon\Translate que fornece suporte multilíngue e é muito útil para criar páginas da web, que são traduzidas em vários idiomas.

Inclui um adaptador que ajuda a vincular matrizes e auxilia na leitura de mensagens de tradução.

Exemplo

Vamos criar uma saída com a ajuda do componente Translate do Phalcon, que ajudará a mostrar a saída conforme o idioma sugerido.

Step 1- O Phalcon dá liberdade a cada desenvolvedor para organizar strings de tradução. Considere manter dois arquivos diferentes, a saber:en.php (para strings em inglês) e fr.php (para strings francesas).

O arquivo conterá uma matriz de par de valores-chave, onde as chaves são únicas e os valores serão diferentes de acordo com a tradução necessária.

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 - Em um aplicativo, crie um UserController que terá parâmetros de qual arquivo deve ser usado para tradução.

<?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 o método padrão, dois parâmetros são considerados, o primeiro é o nome e o segundo é a música favorita do usuário. Mais tarde, a funçãogetMessageTranslation está sendo chamado, o que retorna a saída desejada.

Por enquanto, queremos a saída em inglês.

Step 3 - O associado code view demo\app\views\User\index.volt incluirá o seguinte código -

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

Se quisermos que a saída completa seja exibida em francês, precisamos apenas alterar o nome do arquivo.

require "fr.php";

A seguir está a saída em francês.