上下文
我想用法语和英语翻译我的应用程序。我完全遵循了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
。