2017-05-22 44 views
0

我有這樣的數據表: enter image description here翻譯按鈕JQuery的數據表內

正如你所看到的,有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方式創建的。

你能幫我嗎?謝謝:)

--progress REPORT--

正如我一直在研究,使用columns.render()(而不是defaultContent)是這裏的關鍵。我試圖返回一個基於當前語言環境的函數,但我不確定渲染函數是如何工作的。

感謝您的努力。

+0

您需要自己使用變量而不是硬代碼文本 – charlietfl

+0

嗨@charlietfl,感謝您的幫助。我對Datatables很陌生,能否詳細說明你的評論/回答? :) – wickedchild

回答

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(其中,正如其名國中,只有作爲一個靜態值,據我所知)。

  • 使用帶有「render」屬性的函數,該函數根據活動語言環境返回具有不同HTML值的按鈕。

  • 沖洗並重復。