CDN 数据表切换语言

CDN Datatables switch language

我在多语言应用程序中使用来自datatables.net的数据table。我知道如何通过简单地传递语言文件或自己自定义字符串来切换 table 的语言。

 "language": {
            "url": "//cdn.datatables.net/plug-ins/9dcbecd42ad/i18n/lang.json"
        }

但是是否可以根据用户浏览器设置更改语言?

不幸的是,langauge packages 是按语言名称命名的,而不是按语言代码命名的:

//cdn.datatables.net/plug-ins/1.10.7/i18n/Finnish.json
//cdn.datatables.net/plug-ins/1.10.7/i18n/French.json

等所以你必须建立一个将语言代码翻译成语言名称的地图:

var langMap = {
   'en' : 'English',
   'da' : 'Danish',
   'se' : 'Swedish'
   //etc, the languages you want to support
}

现在可以将正确的语言包URL传递给与当前浏览器语言对应的dataTables:

function getLanguage() {
    var lang = navigator.language || navigator.userLanguage; 
    return '//cdn.datatables.net/plug-ins/1.10.7/i18n/'+langMap[lang]+'.json'
}

var table = $('#example').DataTable({
    language : {
        url: getLanguage()
    }
});

演示 -> http://jsfiddle.net/3er6f4w6/