gpt4 book ai didi

silverstripe - 使用 _t() 方法转换 DataObject?

转载 作者:行者123 更新时间:2023-12-01 11:24:33 26 4
gpt4 key购买 nike

我正在尝试使用 _t() 方法翻译一个 DataObject

我一直在 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;
}
}

mysite/lang/de.yml

de:
SliderItem:
Title: 'I want to change this'
Summary: 'And this..'

为什么这个例子不起作用?

最佳答案

确保在 FormField constructor 中定义变量名作为第一个参数,可翻译标题作为第二个参数。

这个:

TextField::create(_t('SliderItem.Title', 'Title'))

应该是这样的:

TextField::create('Title', _t('SliderItem.Title', 'Title'))

您的 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;
}

关于silverstripe - 使用 _t() 方法转换 DataObject?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38711516/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com