翻译JQuery Datatable中的按钮

时间:2017-05-22 11:55:18

标签: javascript jquery datatable

我有这个数据表: enter image description here

正如您所看到的,每行有2个按钮,如下所示:

columns:[  
   {  
      data:"numPoliza"
   },
   {  
      data:"primaAnual",
      render:$.fn.dataTable.render.number(',', '.',0,'',' €')
   },
   {  
      data:"producto"
   },
   {  
      data:"mediador"
   },
   {  
      data:"fechaEfecto",
      "render":function(data){  
         var locale = $locale.id; 
         return (moment(data).isValid()) ? moment(data).locale(locale).format("L"):"-"         ;
      }
   },
   {  
      data:"estado"
   },
   {  
      data:"varPlan",
      "defaultContent":"<a href='' class='btn btn-default' style='width: 100%'><i>Ver condiciones</i></a>"
   },
   {  
      data:null,
      "defaultContent":"<a href='' class='btn btn-default' style='width: 100%'><i>Ver detalles</i></a>"
   }
]

现在,我想要做的是将这个按钮翻译成我们的webapp(西班牙语,葡萄牙语和英语)中的3种语言。我试图通过“data-translate ='XXX'”参数,没有运气。此外,我试图修改语言属性,也没有去。

AFAIK在Datatables中有i18n option来实现这一点,但提供的示例不适合我的按钮,因为它们是以HTML方式创建的。

你能帮帮我吗?谢谢:))

- 进展报告 -

正如我一直在研究的那样,使用columns.render()(而不是defaultContent)是关键。我正在尝试返回基于当前语言环境的函数,但我不确定渲染函数是如何工作的。

感谢您的努力。

1 个答案:

答案 0 :(得分:0)

解决了,而不是确定的最合适的方法,但在我们执行一些优化之前必须这样做。为了有用,这就是我所做的:

{  
   data:"varPlan",
   "orderable":false,
   "searchable":false,
   "render":function(){  
      var locale = $locale.id; 
      if (locale === 'es'){  
         return "<a href='' id='terms' class='btn btn-default' style='width:100%'><i>Ver condiciones</i></a>"
      }else if (locale === 'pt-pt')      {  
         return "<a href='' id='terms' class='btn btn-default' style='width:100%'><i>Ver condições</i></a>"
      }else{  
         return "<a href='' id='terms' class='btn btn-default' style='width:100%'><i>Show terms</i></a>"
      }
   }
}
  • 替换了defaultContent(正如名称所示,仅作为静态值AFAIK)。

  • 使用&#34;渲染&#34; property,根据活动的区域设置返回具有不同HTML值的按钮。

  • 冲洗并重复。