From 22b0d92fac794d5439c4dfad4754c755ba12f6e8 Mon Sep 17 00:00:00 2001 From: WEBXOSS Date: Sun, 9 Apr 2017 20:22:48 +0800 Subject: [PATCH] rebuild card info translations --- DeckEditor/index.html | 2 - Localize.js | 114 +- index.html | 2 - lang/CardInfo_en.json | 17632 +++++++++++++++++++++++++++++++++++++ lang/CardInfo_ko.json | 16263 ++++++++++++++++++++++++++++++++++ lang/CardInfo_ru.json | 16232 ++++++++++++++++++++++++++++++++++ lang/CardInfo_zh_CN.json | 1 + webxoss.appcache | 6 +- 8 files changed, 50222 insertions(+), 30 deletions(-) create mode 100644 lang/CardInfo_en.json create mode 100644 lang/CardInfo_ko.json create mode 100644 lang/CardInfo_ru.json create mode 100644 lang/CardInfo_zh_CN.json diff --git a/DeckEditor/index.html b/DeckEditor/index.html index 240184a..693cbba 100644 --- a/DeckEditor/index.html +++ b/DeckEditor/index.html @@ -8,8 +8,6 @@ global = window; - - diff --git a/Localize.js b/Localize.js index e4af8eb..83c2f93 100644 --- a/Localize.js +++ b/Localize.js @@ -1,8 +1,75 @@ 'use strict'; window.Localize = (function () { +// Load translations +(function () { + function get(url, succ, err) { + var xhr = new XMLHttpRequest(); + xhr.responseType = 'json'; + xhr.onload = function () { + if (xhr.status === 200) { + succ(xhr.response); + } else { + if (err) err(xhr); + } + } + xhr.onerror = function () { + if (err) err(xhr); + }; + xhr.open('GET', url, true); + xhr.send(); + } + window.CardInfo_jp = Object.create(CardInfo); + window.CardInfo_zh = Object.create(CardInfo); + window.CardInfo_en = Object.create(CardInfo); + window.CardInfo_ko = Object.create(CardInfo); + window.CardInfo_ru = Object.create(CardInfo); + window.CardInfo_it = Object.create(CardInfo); + var dir = location.pathname.match(/\/DeckEditor\/?$/) ? '../lang/' : './lang/' + get(dir + 'CardInfo_en.json', function (translation) { + for (var pid in translation) { + var tran = translation[pid]; + var info = Object.create(CardInfo_jp[pid]); + for (var prop in tran) { + info[prop] = tran[prop]; + } + window.CardInfo_en[pid] = info; + window.CardInfo_it[pid] = info; + } + }) + get(dir + 'CardInfo_zh_CN.json', function (translation) { + for (var pid in translation) { + var tran = translation[pid]; + var info = Object.create(CardInfo_jp[pid]); + for (var prop in tran) { + info[prop] = tran[prop]; + } + window.CardInfo_zh[pid] = info; + } + }) + get(dir + 'CardInfo_ru.json', function (translation) { + for (var pid in translation) { + var tran = translation[pid]; + var info = Object.create(CardInfo_jp[pid]); + for (var prop in tran) { + info[prop] = tran[prop]; + } + window.CardInfo_ru[pid] = info; + } + }) + get(dir + 'CardInfo_ko.json', function (translation) { + for (var pid in translation) { + var tran = translation[pid]; + var info = Object.create(CardInfo_jp[pid]); + for (var prop in tran) { + info[prop] = tran[prop]; + } + window.CardInfo_ko[pid] = info; + } + }) +})(); + var map_zh_CN = { - suffix: '_zh_CN', common: { 'OK': '确定', 'CANCEL': '取消', @@ -368,7 +435,6 @@ var map_zh_CN = { }; var map_en = { - suffix: '_en', common: { 'OK': 'OK', 'CANCEL': 'CANCEL', @@ -734,7 +800,6 @@ var map_en = { }; var map_jp = { - suffix: '', common: { 'OK': 'OK', 'CANCEL': 'キャンセル', @@ -1121,7 +1186,6 @@ var map_jp = { }; var map_ru = { - suffix: '_ru', common: { 'OK': 'OK', 'CANCEL': 'Отмена', @@ -1489,7 +1553,6 @@ var map_ru = { }; var map_it = { - suffix: '_en', common: { 'OK': 'OK', 'CANCEL': 'CANCEL', @@ -1855,7 +1918,6 @@ var map_it = { }; var map_ko = { - suffix: '_ko', common: { 'OK': '확인', 'CANCEL': '캔슬', @@ -2281,28 +2343,36 @@ Localize.getLanguage = function () { Localize.setLanguage = function (lang) { if (lang === 'zh_CN') { Localize.map = map_zh_CN; + CardInfo = CardInfo_zh; localStorage.setItem('language',lang); } else if (lang === 'zh_TW') { Localize.map = map_zh_TW; + CardInfo = CardInfo_zh; localStorage.setItem('language',lang); } else if (lang === 'en') { Localize.map = map_en; + CardInfo = CardInfo_en; localStorage.setItem('language',lang); } else if (lang === 'jp') { Localize.map = map_jp; + CardInfo = CardInfo_jp; localStorage.setItem('language',lang); } else if (lang === 'ko') { Localize.map = map_ko; + CardInfo = CardInfo_ko; localStorage.setItem('language',lang); } else if (lang === 'ru') { Localize.map = map_ru; + CardInfo = CardInfo_ru; localStorage.setItem('language',lang); } else if (lang === 'it') { Localize.map = map_it; + CardInfo = CardInfo_it; localStorage.setItem('language',lang); } else { debugger; Localize.map = map_en; + CardInfo = CardInfo_jp; } }; @@ -2329,10 +2399,6 @@ Localize.traditionalize = function (str) { return newStr; }; -Localize.suffix = function (str) { - return str + Localize.map.suffix; -}; - Localize.index = Localize.bind(Localize,'index'); Localize.editor = Localize.bind(Localize,'editor'); @@ -2415,7 +2481,7 @@ Localize.color = function (color) { }; Localize.cardName = function (info) { - return Localize.traditionalize(info[Localize.suffix('name')]); + return Localize.traditionalize(info['name']); }; Localize.cardType = function (info) { @@ -2425,7 +2491,7 @@ Localize.cardType = function (info) { Localize.effectTexts = function (info) { info = CardInfo[info.cid]; // 额外 - var texts = concat(info[Localize.suffix('extraTexts')] || []); + var texts = concat(info['extraTexts'] || []); // 防御 if (info.guardFlag) { texts.push(Localize('_misc','GUARD_DESCRIPTION')); @@ -2450,12 +2516,12 @@ Localize.effectTexts = function (info) { texts.push(Localize('_misc','CROSS_RIGHT',toNames(info.crossRight))); } // 魔法技艺 - [Localize.suffix('spellEffectTexts'),Localize.suffix('artsEffectTexts')].forEach(function (prop) { + ['spellEffectTexts','artsEffectTexts'].forEach(function (prop) { if (!info[prop]) return; texts.push(info[prop][0]); },this); // 常出起 - [Localize.suffix('constEffectTexts'),Localize.suffix('startUpEffectTexts'),Localize.suffix('actionEffectTexts')].forEach(function (prop) { + ['constEffectTexts','startUpEffectTexts','actionEffectTexts'].forEach(function (prop) { if (!info[prop]) return; texts = texts.concat(info[prop]); },this); @@ -2464,8 +2530,8 @@ Localize.effectTexts = function (info) { Localize.burstEffectTexts = function (info) { info = CardInfo[info.cid]; - if (!info[Localize.suffix('burstEffectTexts')]) return '-'; - return Localize.traditionalize(info[Localize.suffix('burstEffectTexts')][0]); + if (!info['burstEffectTexts']) return '-'; + return Localize.traditionalize(info['burstEffectTexts'][0]); }; Localize.guard = function (info) { @@ -2526,15 +2592,15 @@ Localize.desc = function (desc) { if (!info) { debugger; return desc; - } + }ƒ var map = { - 'const': info[Localize.suffix('constEffectTexts')], - 'spell': info[Localize.suffix('spellEffectTexts')], - 'arts': info[Localize.suffix('artsEffectTexts')], - 'burst': info[Localize.suffix('burstEffectTexts')], - 'startup': info[Localize.suffix('startUpEffectTexts')], - 'action': info[Localize.suffix('actionEffectTexts')], - 'attached': info[Localize.suffix('attachedEffectTexts')] + 'const': info['constEffectTexts'], + 'spell': info['spellEffectTexts'], + 'arts': info['artsEffectTexts'], + 'burst': info['burstEffectTexts'], + 'startup': info['startUpEffectTexts'], + 'action': info['actionEffectTexts'], + 'attached': info['attachedEffectTexts'] }; if (!map[type] || !map[type][idx]) { debugger; diff --git a/index.html b/index.html index 0631573..0137259 100644 --- a/index.html +++ b/index.html @@ -255,8 +255,6 @@ - -