From 8eb07af09a2caf2f392adf166127b0c4b4745c2d Mon Sep 17 00:00:00 2001 From: WooLNinesun Date: Tue, 29 Aug 2017 15:58:14 +0800 Subject: [PATCH] src/options: Browser langage support IE6 ~ IE8 use lowercase to prevent case typo from user src/i18n.js: Use language-code to support more language trans --- src/i18n.js | 91 +++++++++++++++++++++++++++++++++++---------------- src/option.js | 6 +++- 2 files changed, 67 insertions(+), 30 deletions(-) diff --git a/src/i18n.js b/src/i18n.js index 326d749..04d94b4 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -1,37 +1,70 @@ -const tranZH = { - 'Danmaku is loading': '弹幕加载中', - 'Top': '顶部', - 'Bottom': '底部', - 'Rolling': '滚动', - 'Input danmaku, hit Enter': '输入弹幕,回车发送', - 'About author': '关于作者', - 'DPlayer feedback': '播放器意见反馈', - 'About DPlayer': '关于 DPlayer 播放器', - 'Loop': '洗脑循环', - 'Speed': '速度', - 'Opacity for danmaku': '弹幕透明度', - 'Normal': '正常', - 'Please input danmaku content!': '要输入弹幕内容啊喂!', - 'Set danmaku color': '设置弹幕颜色', - 'Set danmaku type': '设置弹幕类型', - 'Danmaku': '弹幕', - 'This video fails to load': '视频加载失败', - 'Switching to': '正在切换至', - 'Switched to': '已经切换至', - 'quality': '画质', - 'FF to': '快进至', - 'REW to': '快退至', - 'Volume': '音量' -}; +/* +W3C def language codes is : + language-code = primary-code ( "-" subcode ) + primary-code ISO 639-1 ( the names of language with 2 code ) + subcode ISO 3166 ( the names of countries ) + +NOTE: use lowercase to prevent case typo from user! +Use this as shown below..... */ module.exports = function (lang) { this.lang = lang; this.tran = (text) => { - if (this.lang === 'en') { + if (this.lang === 'en-us') { return text; } - else if (this.lang === 'zh') { - return tranZH[text]; - } + else if ( + // add language-code list here + this.lang === 'zh-cn' || + this.lang === 'zh-tw' + ) { return tranTxt[this.lang][text]; } }; +}; + +// add translation text here +const tranTxt = { + "zh-cn" : { + 'Danmaku is loading': '弹幕加载中', + 'Top': '顶部', + 'Bottom': '底部', + 'Rolling': '滚动', + 'Input danmaku, hit Enter': '输入弹幕,回车发送', + 'About author': '关于作者', + 'DPlayer feedback': '播放器意见反馈', + 'About DPlayer': '关于 DPlayer 播放器', + 'Loop': '洗脑循环', + 'Speed': '速度', + 'Opacity for danmaku': '弹幕透明度', + 'Normal': '正常', + 'Please input danmaku content!': '要输入弹幕内容啊喂!', + 'Set danmaku color': '设置弹幕颜色', + 'Set danmaku type': '设置弹幕类型', + 'Danmaku': '弹幕', + 'This video fails to load': '视频加载失败', + 'Switching to': '正在切换至', + 'Switched to': '已经切换至', + 'quality': '画质', + }, + "zh-tw" : { + 'Danmaku is loading': '彈幕加載中', + 'Top': '頂部', + 'Bottom': '底部', + 'Rolling': '滾動', + 'Input danmaku, hit Enter': '輸入彈幕,Enter 發送', + 'About author': '關於作者', + 'DPlayer feedback': '播放器意見反饋', + 'About DPlayer': '關於 DPlayer 播放器', + 'Loop': '循環播放', + 'Speed': '速度', + 'Opacity for danmaku': '彈幕透明度', + 'Normal': '正常', + 'Please input danmaku content!': '請輸入彈幕内容啊!', + 'Set danmaku color': '設置彈幕顏色', + 'Set danmaku type': '設置彈幕類型', + 'Danmaku': '彈幕', + 'This video fails to load': '視頻加載失敗', + 'Switching to': '正在切換至', + 'Switched to': '已經切換至', + 'quality': '畫質', + } }; \ No newline at end of file diff --git a/src/option.js b/src/option.js index c1f5f66..4645df0 100644 --- a/src/option.js +++ b/src/option.js @@ -13,7 +13,7 @@ module.exports = (option) => { autoplay: false, theme: '#b7daff', loop: false, - lang: navigator.language.indexOf('zh') !== -1 ? 'zh' : 'en', + lang: (navigator.language || navigator.browserLanguage).toLowerCase().indexOf('zh-cn') !== -1 ? 'zh-cn' : 'en-us', screenshot: false, hotkey: true, preload: 'auto', @@ -53,5 +53,9 @@ module.exports = (option) => { option.video.url = [option.video.quality[option.video.defaultQuality].url]; } + if (option.lang) { + option.lang.toLowerCase(); + } + return option; }; \ No newline at end of file