Переглянути джерело

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

WooLNinesun 8 роки тому
батько
коміт
8eb07af09a
2 змінених файлів з 67 додано та 30 видалено
  1. 62 29
      src/i18n.js
  2. 5 1
      src/option.js

+ 62 - 29
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': '畫質',
+    }
 };

+ 5 - 1
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;
 };