上下文
我想用法语和英语翻译我的应用程序。我完全遵循了CakePHP 3 documentation但它不起作用。
我到目前为止所做的
对于我的开发,我使用了一个vagrant框来轻松地启动和运行cakephp 3。此框命名为vagrant-chef
/config/bootstrap.php配置
我修改了第100行,将法语作为默认语言。

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

/src/控制器/页面控制器
我将此方法添加到默认页控制器
public function initialize() {
    I18n::locale('en');
}

/src/template/pages/home.ctp
我加了这两行
    <?php echo __('Hey, bonjour'); ?>
    <?php echo __('Je teste la traduction'); ?>

.pot文件生成
从终端输入这个命令。cakephp在bin/cake i18n extract中创建了两个文件。这些文件是/src/Locale/cake.pot。我把default.pot文件翻译成这样:
...
msgid "Hey, bonjour"
msgstr "Hey, hello"
...

locales目录结构
default.pot文件现在如下所示:
/en
   /default.pot

尽管我试图翻译我的应用程序,但我没有得到任何工作。我想这是一个缓存问题,所以我删除了/src/Locale中的文件。
谢谢。

最佳答案

.pot生成的cake i18n extract是模板文件。每种语言的文件必须.po。因此,根据您的示例,应该是src/Locale/en/default.po

10-04 21:41