Phalcon - wsparcie wielojęzyczne
Phalcon zawiera komponent Phalcon\Translate który zapewnia obsługę wielojęzyczną i jest bardzo pomocny w tworzeniu stron internetowych, które są tłumaczone na wiele języków.
Zawiera adapter, który pomaga w wiązaniu tablic i pomaga w czytaniu komunikatów tłumaczeniowych.
Przykład
Utwórzmy wyjście za pomocą komponentu Translate w Phalcon, który pomoże wyświetlić wyjście zgodnie z sugerowanym językiem.
Step 1- Phalcon daje każdemu programiście swobodę organizowania ciągów tłumaczeniowych. Rozważ przechowywanie dwóch różnych plików, a mianowicie:en.php (dla angielskich stringów) i fr.php (dla strun francuskich).
Plik będzie zawierał tablicę par klucz-wartość, w której klucze są unikalne, a wartości będą się różnić w zależności od potrzebnego tłumaczenia.
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 - W aplikacji utwórz plik UserController który przyjmie parametry określające, który plik powinien być użyty do tłumaczenia.
<?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();
}
}
W przypadku metody domyślnej przyjmowane są dwa parametry, pierwszy to nazwa, a drugi to ulubiona piosenka użytkownika. Później funkcjagetMessageTranslation jest wywoływana, co zwraca żądane wyjście.
Na razie chcemy, aby wynik był w języku angielskim.
Step 3 - Skojarzony code view demo\app\views\User\index.volt będzie zawierać następujący kod -
<p><?php echo $t->_("hello-name", ["name" => $name]); ?></p>
<p><?php echo $t->_("song", ["song" => $song]); ?></p>
Jeśli chcemy, aby wszystkie dane wyjściowe były wyświetlane w języku francuskim, wystarczy zmienić nazwę pliku.
require "fr.php";
Poniżej znajduje się wyjście w języku francuskim.