用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.
标签:php,localization,cakephp,cakephp-3-0,internationalization 来源: https://codeday.me/bug/20190823/1694992.html