2016-07-30 112 views
4

我在我的DataObject中使用public function 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; 
} 

所有字段通过fieldLabels()整齐翻译除了要求,因为这具有的功能,而不是从数据的自定义值。更改getRequiredLabel需要修复此问题。

任何方式我可以保留价值getRequiredLabel为记录字段和翻译标签在顶部列?

enter image description here

+0

请问您可以分享您的fieldLabels代码吗? – 3dgoo

+0

添加了FieldLabels。 – Faloude

回答

4

设置$summary_fieldsgetRequiredLabel变量RequiredLabel和使用$field_labels设置字段标签。

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

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

然后在fieldLabelsRequiredLabel柱应与$labels['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; 
} 
+0

这似乎并不奇怪。如果我将所有内容重新命名为*必填*翻译工作正常,但会出现新问题。必需的字段是一个布尔值,并且我有一个名为** getRequiredLabel **(糟糕的函数命名,它不是一个标签)的函数,它将布尔值从0和1转换为更加用户友好的是和否 – Faloude

+1

嗯,有趣。我将不得不提供更多的测试。作为附注,我们可以在'$ summary_fields'中使用'Required.Nice'来使结果显示_Yes_和_No_。 – 3dgoo

+0

哈,我的getRequiredLabel函数似乎是不必要的然后。下面是整个代码,如果你想给它一个测试:http://www.sspaste.com/paste/show/579ddd716a48f – Faloude