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";
Ниже приводится вывод на французском языке.