我在我的DataObject中使用公共函数fieldLabels()来翻译所有字段标签(以及$summary_fields的标签).这适用于所有字段,除了具有从函数返回的值的字段(而不是从数据库中提取的值).
static $summary_fields = array(
'Label' => 'Label',
'Type' => 'Type',
'getrequiredLabel' => 'required'
);
FieldLabels
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,并在顶部列中保留已翻译的标签吗?
解决方法:
将$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;
}
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;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。