php – SilverStripe $summary_field interupts标签翻译

我在我的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,并在顶部列中保留已翻译的标签吗?

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

你也可以在这里使用布尔修饰符尼斯来达到同样的效果.

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

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...