Reputation: 2233
I am trying to translate a DataObject
using the _t()
method.
I have been using it on Pages without a problem, but it doesn't seem to work on data objects.
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;
}
}
mysite/lang/de.yml
de:
SliderItem:
Title: 'I want to change this'
Summary: 'And this..'
Why does this example not work?
Upvotes: 3
Views: 63
Reputation: 15794
Make sure to define the variable name in the FormField
constructor as the first parameter and the translatable title as the second parameter.
This:
TextField::create(_t('SliderItem.Title', 'Title'))
Should be this:
TextField::create('Title', _t('SliderItem.Title', 'Title'))
Your getCMSFields
function should look something like this:
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;
}
Upvotes: 5