Phalcon - Supporto multilingue

Phalcon include un componente Phalcon\Translate che fornisce supporto multilingue ed è molto utile per creare pagine web, che vengono tradotte in più lingue.

Include un adattatore che aiuta a legare array e aiuta a leggere i messaggi di traduzione.

Esempio

Creiamo un output con l'aiuto del componente Translate in Phalcon, che ci aiuterà a visualizzare l'output secondo la lingua suggerita.

Step 1- Phalcon dà la libertà a ogni sviluppatore di organizzare le stringhe di traduzione. Considera l'idea di conservare due file diversi, ovvero:en.php (per archi inglesi) e fr.php (per archi francesi).

Il file conterrà un array di coppie chiave-valore, in cui le chiavi sono univoche e i valori differiranno a seconda della traduzione necessaria.

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 - In un'applicazione, crea un file UserController che prenderà i parametri su quale file dovrebbe essere usato per la traduzione.

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

Per il metodo predefinito, vengono presi due parametri, il primo è il nome e il secondo è la canzone preferita dell'utente. Successivamente, la funzionegetMessageTranslation viene chiamato che restituisce l'output desiderato.

Per ora, vogliamo l'output in inglese.

Step 3 - Gli associati code view demo\app\views\User\index.volt includerà il seguente codice -

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

Se vogliamo che l'output completo venga visualizzato in francese, dobbiamo solo cambiare il nome del file.

require "fr.php";

Di seguito è riportato l'output in francese.