我<?php echo __("this is my string"); ?>
在视图内部使用多种语言显示文本。我为德语创建了一个 .po 文件目录:
=> app/Locale/ger/LC_MESSAGES/default.po
msgstr "这是我的字符串"
msgstr "dies ist meine zeichenkette"
当我添加Configure::write('Config.language','ger');
到我的 AppController.php beforeFilter 函数时,文本仍然是“这是我的字符串”。即使我用不同的 msgstr 为英语创建了一个 .po,文本仍然保持不变。
我是否必须更改特定设置才能激活翻译?
我有一个后续问题:我添加Configure::write('Config.language','eng');
到core.php以设置我的默认语言,但现在我无法更改该值,即使我尝试在AppController.php beforeFilter 中覆盖它:
Configure::write('Config.language', 'deu'); //'de' also doesn't work
CakeSession::write('Config.language', 'deu'); //'de' also doesn't work
如果我更改 core.php 中的值,它可以正常工作,但一旦在 core.php 中设置,我就无法更改它。
已解决:啊,我忘了parent::beforeFilter();
在所有控制器的 beforeFilter 函数中添加。
附加信息:
- 如果你想定义一种默认语言(你通常会这样做),添加
Configure::write('Config.language', 'eng');
到core.php