我正在尝试DataObject使用该_t()方法翻译.
我一直在Pages上使用它没有问题,但它似乎不适用于数据对象.
class SliderItem extends DataObject {
private static $default_sort = 'Sort';
private static $db = array(
'Sort' => 'Int',
'Title' => 'Varchar(255)',
'Summary' => 'Text'
);
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldsToTab('Root.Main', array(
TextField::create(_t('SliderItem.Title', 'Title')),
TextareaField::create(_t('SliderItem.Summary', 'Summary'))
));
$fields->removeByName(array('HomePageID', 'Sort'));
return $fields;
}
}
Run Code Online (Sandbox Code Playgroud)
mysite的/郎/ de.yml
de:
SliderItem:
Title: 'I want to change this'
Summary: 'And this..'
Run Code Online (Sandbox Code Playgroud)
为什么这个例子不起作用?
确保在FormField构造函数中将变量名称定义为第一个参数,将可翻译标题定义为第二个参数.
这个:
TextField::create(_t('SliderItem.Title', 'Title'))
Run Code Online (Sandbox Code Playgroud)
应该是这样的:
TextField::create('Title', _t('SliderItem.Title', 'Title'))
Run Code Online (Sandbox Code Playgroud)
你的getCMSFields功能应该是这样的:
public function getCMSFields() {
$fields = parent::getCMSFields();
$fields->addFieldsToTab('Root.Main', array(
TextField::create('Title', _t('SliderItem.Title', 'Title')),
TextareaField::create('Summary', _t('SliderItem.Summary', 'Summary'))
));
$fields->removeByName(array('HomePageID', 'Sort'));
return $fields;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |