正如您所看到的,每行有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)是关键。我正在尝试返回基于当前语言环境的函数,但我不确定渲染函数是如何工作的。
感谢您的努力。
答案 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值的按钮。
冲洗并重复。