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.