【发布时间】:2013-05-01 12:44:28
【问题描述】:
我的应用程序在 app/models/contact.php 中有联系人模型。我已经使用 _construct 在数组中添加了一些列表,其值应该使用 _('some text',true) 进行翻译,如下所示:
class Contact extends AppModel{
var $sex;
function __construct($id = false, $table = null, $ds = null) {
parent::__construct($id, $table, $ds);
$this->sex =array(
'U' => __('Choose Sex', true),
'M' => __('Male', true),
'F' => __('Female', true)
);
}
}
上面提到的 $sex 变量用于填充 HTML 选择,如下所示:
// From contacts controller index function
function index(){
$this->set('sex', $this->Contact->sex);
.....
}
// From index view index.ctp
<?php echo $form->input('sex', array('type' => 'select', 'options' => $sex)); ?>
运行 cake i18n 后,使用 Poedit 版本 1.5.5 翻译字符串并删除 app/tmp/cache 中的文件,我发现列表中的字符串仍然没有翻译。
如何使用模型中的翻译字符串解决这个问题?
一般说明:
- CakePHP 1.2.10 版
- Windows7 64 位上的 XAMPP AMP 包
【问题讨论】:
-
对于这样的枚举,我建议使用类常量 - 以及像 dereuromark.de/2010/06/24/… 这样的方法你也可以使用这个枚举来烘焙你的文件,比如支持。但是你的代码本身对我来说看起来不错。如果对象被构造,它应该翻译这些字符串。 PS:顺便推荐升级到2.x。
-
@mark 很遗憾,目前无法升级。
标签: php cakephp internationalization cakephp-1.2 poedit