Учебники

Phalcon – многоязычная поддержка

Phalcon включает в себя компонент Phalcon \ Translate, который обеспечивает многоязычную поддержку, и это очень полезно для создания веб-страниц, которые переводятся на несколько языков.

Он включает в себя адаптер, который помогает связывать массивы и помогает читать сообщения перевода.

пример

Давайте создадим вывод с помощью компонента Translate в Phalcon, который поможет отобразить вывод в соответствии с предлагаемым языком.

Шаг 1 – Phalcon дает свободу каждому разработчику в организации строк перевода. Попробуйте сохранить два разных файла, а именно: en.php (для английских строк) и fr.php (для французских строк).

Файл будет содержать массив пар ключ-значение, где ключи уникальны, а значения будут отличаться в зависимости от необходимости перевода.

В файле 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%", 
]; 

Шаг 2 – В приложении создайте UserController, который будет принимать параметры относительно того, какой файл должен использоваться для перевода.

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

Для метода по умолчанию используются два параметра: первый – имя, а второй – любимая песня пользователя. Позже вызывается функция getMessageTranslation , которая возвращает желаемый результат.

Сейчас мы хотим вывод на английском языке.

Шаг 3Демо связанного представления кода \ app \ views \ User \ index.volt будет включать следующий код –

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

Индекс

Если мы хотим, чтобы весь вывод отображался на французском языке, нам нужно только изменить имя файла.

require "fr.php"; 

Ниже приводится вывод на французском языке.