我目前正在将我的cake-php-webapp国际化,这是非常好的。 一切都被翻译,但形成了输入:
echo $this->Form->input('name', array('class' => 'form-control'));
这会生成一个标签
<label for="UserName">Name</label>
如何指定“姓名”也应该翻译?
我认为这是迄今为止我所知道的最佳方式:
echo $this->Form->input('name', array('class' => 'form-control', 'label'=>__('field_name')));
但有没有指定标签的方法?
答案 0 :(得分:1)
在CakePHP 2.3中,如果你看一下内置的FormHelper类:
public function label($fieldName = null, $text = null, $options = array()) {
...
if ($text === null) {
if (strpos($fieldName, '.') !== false) {
$fieldElements = explode('.', $fieldName);
$text = array_pop($fieldElements);
} else {
$text = $fieldName;
}
if (substr($text, -3) === '_id') {
$text = substr($text, 0, -3);
}
$text = __(Inflector::humanize(Inflector::underscore($text)));
}
...
}
在我看来,如果你没有设置标签文本,它会从字段名称中获取标签文本,然后在其上调用translate函数。
您是否尝试过在不指定标签文本的情况下创建输入,然后为相应的.po文件中为该输入标签自动生成的文本保存翻译?