用CakePHP 3翻译i18n

ric*_*ere 3 php localization cakephp internationalization cakephp-3.0

上下文

我想用法语和英语翻译我的应用程序.我完全遵循CakePHP 3文档,但它无法正常工作.

到目前为止我做了什么

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

/config/bootstrap.php

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

ini_set('intl.default_locale', 'fr_CA');
Run Code Online (Sandbox Code Playgroud)

/ SRC /控制器/ PagesController

我将此方法添加到默认的PagesController

public function initialize() {
    I18n::locale('en');
}
Run Code Online (Sandbox Code Playgroud)

/src/Template/Pages/home.ctp

我添加了这两行

    <?php echo __('Hey, bonjour'); ?>
    <?php echo __('Je teste la traduction'); ?>
Run Code Online (Sandbox Code Playgroud)

.pot文件生成

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

...
msgid "Hey, bonjour"
msgstr "Hey, hello"
...
Run Code Online (Sandbox Code Playgroud)

Locales目录结构

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

/en
   /default.pot
Run Code Online (Sandbox Code Playgroud)

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

谢谢.

ADm*_*mad 7

.pot所产生cake i18n extract的模板文件.您的每种语言文件都需要.po.所以按照你的例子应该如此src/Locale/en/default.po.