cakehp.po文件未被使用


cakephp .po files not being used

我正在尝试让CakePHP的i18n组件正常工作。我已经使用i18n控制台任务将字符串提取到app/Locale/default.pot。然后,我将其复制到app/Locale/eng/LC_MESSAGES/default.poapp/Locale/fra/LC_MESSAGES/default.po中,以确保更改扩展名。我使用了Virtaal程序(类似于Poedit)来翻译一些字符串。

在我的app/Config/core.php中,我用Configure::write('Config.language', 'eng');将默认语言设置为英语。如果我将其更改为Configure::write('Config.language', 'fra');,我希望看到新翻译的字符串,但没有任何更改。我也尝试在会话中设置Config.language键,但它没有起到任何作用。打印出配置值和会话值,我可以看到它们正在被设置。

我是不是遗漏了什么?在我读到的关于CakePHP中i18n的许多不同帖子中,我也看到密钥frefra可以互换使用,这有区别吗?

之后http://book.cakephp.org/1.3/en/The-Manual/Common-Tasks-With-CakePHP/Internationalization-Localization.html法语应该是fre

// locale path
/app/locale/fre/LC_MESSAGES/default.po (French)
// To change or set the language for your application, all you need to do is the following:
Configure::write('Config.language', 'fre');
// To set the language for the current user, store the setting in the Session object, like this:
$this->Session->write('Config.language', 'fre');

除此之外:在我们的cakeHP应用程序中,由于缓存的原因,我必须在更改文件后重新启动apache Web服务器以获得新的字符串。也许您也必须这样做,但我不太确定,因为我们通过POEdit设置从.po生成.mo文件。我不认为你是被迫这样做的,因为厨师对此只字未提(或者我现在没有发现:D)。

编辑:看起来cake使用的是法语的bibliographic代码,而德语的terminology代码。这很令人困惑:/:http://www.loc.gov/standards/iso639-2/php/code_list.php