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.