如何设置ag-grid headerName进行翻译

时间:2018-06-02 10:26:16

标签: ag-grid angular-translate

当我使用" $ filter('翻译')(' HostName')"设置headerName或displayName时,如下所示

export default (($filter, modalHelper, $translate) => [{
    displayName:$filter('translate')('HostName'),
    headerCellFilter: 'translate',
    headerFilter:'translate',
    field: 'name',
    width: 130,
    filter: 'text'}]


const en = {
    'HEADLINE': 'This is a test',
    'HostName': 'This is Host Name',
    'IPAddress': 'IP Address'}

export default {
   en
}


const cn = {
    'HEADLINE': '这是一个测试',
    'HostName': '主机名',
    'IPAddress': 'IP 地址'
}

export default {
   cn
}

headerName只能显示一次,无法动态更改,当我运行changeLanguage函数时,如下文

function changeLanguage() {
  $translate.use($scope.lang)
  })
}
$scope.langs = ['English', '中文(简体)'];
$scope.lang = '中文(简体)';

$translateProvider.translations('English', translateEN.en)
  .translations('中文(简体)', translateCN.cn)
  .preferredLanguage('中文(简体)') // 默认 EN

如果有任何解决方案可以修复它? 谢谢。

2 个答案:

答案 0 :(得分:1)

Seems可以用headerValueGetter

完成
  

使用headerValueGetter代替colDef.headerName来允许动态标头名称。

headerValueGetter函数中,您可以处理翻译

答案 1 :(得分:0)

您可能需要手动更改headerName

有一个名为refreshHeader()here's an example from the docs的函数。

或者,如果更容易,您可以重新加载整个列定义with setColumnDefs()