最新消息:文章中包含代码时,请遵守代码高亮规范!

symfony使用 Translation Component自定义输出文本【原创】

PHP Pota 558浏览 0评论

Translation Component 是symfony社区的一个第三方包,用于自定义不同语言环境下后台的返回数据的处理,想到的比较常用的功能应该就是中英文网站的内容切换。
安装方法

composer require symfony/translation

symfony官方文档地址https://symfony.com/doc/2.8/components/translation.html 从文档中可以看到自定义语言文件的格式上有很大的自由性,可以在多种情况下适用。下面为测试代码

 public function indexAction()
    {
        $translator = new Translator('ch_CN', new MessageSelector());
        $translator->addLoader('array', new ArrayLoader());
        $translator->addLoader('json', new JsonFileLoader());
        $translator->addResource('json', $this->rootDir . "/app/data/" . "trans.json", 'ch_CN');
        $translator->addResource('array', array(
            '%left% test %right%' => '%left% 测试 %right%',
            '%left% home %right%' => '%left% 首页 %right%',
        ), 'ch_CN');
        $translated = $translator->trans(
            '%left% test %right%',
            array('%right%' => '翻译',
                '%left%' => '结束')
        );
        var_dump($translated);
    }

上面的输出则为 “结束 测试 翻译” 可以看出这一方法可以对文本中某一字段进行自定义的翻译替换,

 $translator->addResource('json', $this->rootDir . "/app/data/" . "trans.json", 'ch_CN');

这句代码为在ch_CN中加载trans.json文件的语言配置,其中json中为数组形式的数据,用于定义定义自定义文本内容,区域设置大致指用户的语言和国家/地区。它可以是您的应用程序用于管理翻译和其他格式(例如货币格式)的任何字符串。建议使用ISO 639-1 语言代码,下划线(_),然后使用3166-1 alpha-2国家代码(例如ch_CN)。
当然目前说明的只是此第三方bundle的冰山一角,具体使用方法参考官方文档里面都有具体的方法

转载时请注明出处及相应链接,本文永久地址:http://blog.it985.com/19683.html


pay_weixin
pay_weixin
微信打赏
pay_weixin
支付宝打赏
感谢您对作者Pota的打赏,我们会更加努力!    如果您想成为作者,请点我

您必须 登录 才能发表评论!