Phalcon 多语言支持
Phalcon包含一个提供多语言支持的组件Phalcon\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 // 应用程序/消息/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() { // 请求最好的语言 // 以所需语言显示输出 require "en.php"; // 返回翻译对象 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: 视图 demo\appviews\User\index.volt 将包含以下代码:
<p><?php echo $t->_("hello-name", ["name" => $name]); ?></p> <p><?php echo $t->_("song", ["song" => $song]); ?></p>
如果我们希望以法语显示完整的输出,我们只需要更改文件名。
require "fr.php";
以下是法语的输出。