微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用CakePHP 3翻译i18n

上下文

我想用法语和英语翻译我的应用程序.我完全遵循CakePHP 3 documentation,但它不起作用.

到目前为止我做了什么

对于我的开发,我正在使用一个流浪盒来轻松启动并运行CakePHP 3.此框名为vagrant-chef

/config/bootstrap.PHP

修改了第100行,使用法语作为认语言.

ini_set('intl.default_locale', 'fr_CA');

/ SRC /控制器/ PagesController

我将此方法添加认的PagesController

public function initialize() {
    I18n::locale('en');
}

/src/Template/Pages/home.ctp

添加了这两行

    <?PHP echo __('hey, bonjour'); ?>
    <?PHP echo __('Je teste la Traduction'); ?>

.pot文件生成

从终端,我输入这个命令bin / cake i18n extract. CakePHP在/ src / Locale /中创建了2个文件.这些文件是cake.pot和default.pot.我翻译了default.pot文件

...
msgid "hey, bonjour"
msgstr "hey, hello"
...

Locales目录结构

/ src / Locale文件现在看起来像这样:

/en
   /default.pot

尽管我试图翻译我的应用程序,但我没有得到任何工作.我认为这是一个Cache问题,所以我删除了/ tmp / cache / persistent /中的文件.

谢谢.

解决方法:

蛋糕i18n提取生成的.pot是模板文件.您的每种语言文件需要为.po.因此,根据您的示例,它应该是src / Locale / en / default.po.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐