gpt4 book ai didi

php - SilverStripe $summary_field 中断标签翻译

转载 作者:可可西里 更新时间:2023-10-31 23:02:06 27 4
gpt4 key购买 nike

我在我的 DataObject 中使用 public function fieldLabels() 来翻译所有字段标签(以及 $summary_fields 的标签)。这适用于所有字段,但具有从函数返回值(而不是从数据库中提取的值)的字段除外。

摘要字段

static $summary_fields = array(
'Label' => 'Label',
'Type' => 'Type',
'getRequiredLabel' => 'Required'
);

字段标签

public function fieldLabels($includerelations = true) {
$labels = parent::fieldLabels(true);

$labels['Label'] = _t('UserForm.Label', 'Label');
$labels['Type'] = _t('UserForm.Type', 'Type');
$labels['Required'] = _t('UserForm.Required', 'Required');

return $labels;
}

除了 Required 之外,所有字段都通过 fieldLabels() 巧妙地转换,因为它具有来自函数而不是数据的自定义值。将 getRequiredLabel 更改为 Required 可以解决此问题。

有什么方法可以保留记录字段的值 getRequiredLabel 并将翻译后的标签放在顶栏中?

enter image description here

最佳答案

$summary_fields getRequiredLabel 变量设置为 RequiredLabel 并使用 $field_labels 设置字段标签。

private static $summary_fields = array(
'Label',
'Type',
'RequiredLabel'
);

private static $field_labels = array(
'RequiredLabel' => 'Required'
);

然后在 fieldLabels 中,应该使用 $labels['RequiredLabel'] 访问 RequiredLabel 列。

public function fieldLabels($includerelations = true) {
$labels = parent::fieldLabels(true);

$labels['Label'] = _t('UserForm.Label', 'Label');
$labels['Type'] = _t('UserForm.Type', 'Type');
$labels['RequiredLabel'] = _t('UserForm.Required', 'Required');

return $labels;
}

你也可以在这里使用Boolean修饰符Nice来达到同样的效果。

private static $summary_fields = array(
'Label',
'Type',
'Required.Nice'
);

private static $field_labels = array(
'Required.Nice' => 'Required'
);

public function fieldLabels($includerelations = true) {
$labels = parent::fieldLabels(true);

$labels['Label'] = _t('UserForm.Label', 'Label');
$labels['Type'] = _t('UserForm.Type', 'Type');
$labels['Required.Nice'] = _t('UserForm.Required', 'Required');

return $labels;
}

关于php - SilverStripe $summary_field 中断标签翻译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38678640/

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