0

我正在尝试让 CakePHP 的i18n 组件工作。我已提取字符串以app/Locale/default.pot使用 i18n 控制台任务。然后我将其复制到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 的许多不同帖子中,我已经看到密钥fre可以互换使用fra,有区别吗?

4

1 回答 1

1

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');

更重要的是:在我们的 cakePHP 应用程序中,由于缓存,我必须在更改文件后重新启动 apache 网络服务器以获取新字符串。也许您也必须这样做,但我不太确定,因为我们通过 POEdit 设置从 .po 生成 .mo 文件。我不认为你是被迫这样做的,因为cookboke 没有说明这一点(或者我现在没有找到它:D)。

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

于 2013-08-15T05:06:48.173 回答