2016-07-30 114 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