Phalcon - Çok Dilli Destek
Phalcon bir bileşen içerir Phalcon\Translate Bu, çok dilli destek sağlar ve birden çok dile çevrilen web sayfaları oluşturmak çok yararlıdır.
Dizileri bağlamaya yardımcı olan ve çeviri mesajlarının okunmasına yardımcı olan bir adaptör içerir.
Misal
Phalcon'daki Translate bileşeninin yardımıyla, çıktının önerilen dile göre görüntülenmesine yardımcı olacak bir çıktı oluşturalım.
Step 1Phalcon, her geliştiriciye çeviri dizilerini düzenleme özgürlüğü verir. İki farklı dosya tutmayı düşünün:en.php (İngilizce dizeler için) ve fr.php (Fransız dizeleri için).
Dosya, anahtarların benzersiz olduğu ve değerlerin gereken çeviriye göre farklılık göstereceği bir anahtar-değer çifti dizisi içerecektir.
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 - Bir uygulamada, bir UserController hangi dosyanın çeviri için kullanılması gerektiğine ilişkin parametreleri alacaktır.
<?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();
}
}
Varsayılan yöntem için iki parametre alınır, ilki isim ve ikincisi kullanıcının favori şarkısıdır. Daha sonra işlevgetMessageTranslation istenen çıktıyı döndüren çağrılıyor.
Şimdilik, çıktıyı İngilizce olarak istiyoruz.
Step 3 - İlişkili code view demo\app\views\User\index.volt aşağıdaki kodu içerecektir -
<p><?php echo $t->_("hello-name", ["name" => $name]); ?></p>
<p><?php echo $t->_("song", ["song" => $song]); ?></p>
Tam çıktının Fransızca görüntülenmesini istiyorsak, sadece dosya adını değiştirmemiz gerekir.
require "fr.php";
Fransızca çıktı aşağıdadır.