Script can update language version
This commit is contained in:
@@ -528,7 +528,8 @@ config = {
|
|||||||
res_language_download_failed: "语言下载失败:{0}",
|
res_language_download_failed: "语言下载失败:{0}",
|
||||||
res_language_dialog_tip: "找不到你的语言?欢迎贡献翻译:<br><a href=>https://github.com/StageGuard/SkyAutoPlayerScript</a>",
|
res_language_dialog_tip: "找不到你的语言?欢迎贡献翻译:<br><a href=>https://github.com/StageGuard/SkyAutoPlayerScript</a>",
|
||||||
res_language_failed_fetch_online_list: "无法获取在线语言列表",
|
res_language_failed_fetch_online_list: "无法获取在线语言列表",
|
||||||
res_language_dialog_title: "选择语言"
|
res_language_dialog_title: "选择语言",
|
||||||
|
res_language_update_needed: "语言需要更新,请前往设置界面重新点击当前语言来更新"
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
||||||
@@ -543,6 +544,19 @@ config = {
|
|||||||
var content = JSON.parse(files.read(langPath + langs[i]));
|
var content = JSON.parse(files.read(langPath + langs[i]));
|
||||||
this.languages[content.code] = content.content;
|
this.languages[content.code] = content.content;
|
||||||
listener(String.format(this.languages[content.code].res_use_language, content.name));
|
listener(String.format(this.languages[content.code].res_use_language, content.name));
|
||||||
|
threads.start(function() {
|
||||||
|
config.fetchRepoFile("source/language_list.json", null, function(body) {
|
||||||
|
var onlineList = JSON.parse(body.string()).list;
|
||||||
|
for(var i in onlineList) {
|
||||||
|
if(onlineList[i].code == content.code) {
|
||||||
|
if(onlineList[i].version > content.version) {
|
||||||
|
toast(config.languages[config.values.lang].res_language_update_needed);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, null);
|
||||||
|
})
|
||||||
return;
|
return;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
listener(new Error("加载 " + code + " 语言时出错:" + e))
|
listener(new Error("加载 " + code + " 语言时出错:" + e))
|
||||||
@@ -561,12 +575,12 @@ config = {
|
|||||||
|
|
||||||
updateStaticUIText: function() {
|
updateStaticUIText: function() {
|
||||||
//一些静态文字的修改(我最会写垃圾代码了.jpg)
|
//一些静态文字的修改(我最会写垃圾代码了.jpg)
|
||||||
gui.main.views[0].title = config.languages[config.values.lang].page_lc_title,
|
gui.main.views[0].title = config.languages[config.values.lang].page_lc_title;
|
||||||
gui.main.views[0].navigation_title = config.languages[config.values.lang].page_lc_navigation_title
|
gui.main.views[0].navigation_title = config.languages[config.values.lang].page_lc_navigation_title;
|
||||||
gui.main.views[1].title = config.languages[config.values.lang].page_sc_title,
|
gui.main.views[1].title = config.languages[config.values.lang].page_sc_title;
|
||||||
gui.main.views[1].navigation_title = config.languages[config.values.lang].page_sc_navigation_title
|
gui.main.views[1].navigation_title = config.languages[config.values.lang].page_sc_navigation_title;
|
||||||
gui.main.views[2].title = config.languages[config.values.lang].page_lc_title,
|
gui.main.views[2].title = config.languages[config.values.lang].page_lc_title;
|
||||||
gui.main.views[2].navigation_title = config.languages[config.values.lang].page_setting_navigation_title
|
gui.main.views[2].navigation_title = config.languages[config.values.lang].page_setting_navigation_title;
|
||||||
gui.run(function(){
|
gui.run(function(){
|
||||||
global_prompt_contentView.setText(android.text.Html.fromHtml(config.languages[config.values.lang].launch_tip_in_content));
|
global_prompt_contentView.setText(android.text.Html.fromHtml(config.languages[config.values.lang].launch_tip_in_content));
|
||||||
});
|
});
|
||||||
@@ -2258,6 +2272,7 @@ gui = {
|
|||||||
type: "item",
|
type: "item",
|
||||||
name: content.name,
|
name: content.name,
|
||||||
code: content.code,
|
code: content.code,
|
||||||
|
version: content.version,
|
||||||
local: true,
|
local: true,
|
||||||
content: content.content
|
content: content.content
|
||||||
});
|
});
|
||||||
@@ -2323,39 +2338,51 @@ gui = {
|
|||||||
onItemClick: function(parent, view, pos, id) {
|
onItemClick: function(parent, view, pos, id) {
|
||||||
var item = listAdapterController.get(pos);
|
var item = listAdapterController.get(pos);
|
||||||
if(item.type == "item") {
|
if(item.type == "item") {
|
||||||
if(item.local) {
|
var fetchOnline = function() {
|
||||||
config.languages[item.code] = item.content;
|
config.fetchRepoFile("resources/language_pack/" + item.code + ".json", null, function(body) {
|
||||||
config.values.lang = config.save("language", item.code);
|
var lf = android.os.Environment.getExternalStorageDirectory() + "/Documents/SkyAutoPlayer/lang/" + item.code + ".json";
|
||||||
toast(String.format(config.languages[config.values.lang].res_use_language, item.name));
|
files.create(lf)
|
||||||
gui.main.__internal_dismiss();
|
files.writeBytes(lf, body.bytes());
|
||||||
gui.suspension.show();
|
var lang = JSON.parse(files.read(lf));
|
||||||
config.updateStaticUIText();
|
config.languages[lang.code] = lang.content;
|
||||||
gui.utils.value_animation("Float", 1.0, 0, 125, new android.view.animation.DecelerateInterpolator(), function(anim) {
|
config.values.lang = config.save("language", lang.code);
|
||||||
langDialog.setAlpha(anim.getAnimatedValue());
|
toast(String.format(config.languages[config.values.lang].res_use_language, lang.name));
|
||||||
if(anim.getAnimatedValue() == 1) gui.winMgr.removeView(langDialog);
|
gui.main.__internal_dismiss();
|
||||||
});
|
gui.suspension.show();
|
||||||
} else {
|
config.updateStaticUIText();
|
||||||
threads.start(function() {
|
gui.utils.value_animation("Float", 1.0, 0, 125, new android.view.animation.DecelerateInterpolator(), function(anim) {
|
||||||
config.fetchRepoFile("resources/language_pack/" + item.code + ".json", null, function(body) {
|
langDialog.setAlpha(anim.getAnimatedValue());
|
||||||
var lf = android.os.Environment.getExternalStorageDirectory() + "/Documents/SkyAutoPlayer/lang/" + item.code + ".json";
|
if(anim.getAnimatedValue() == 1) gui.winMgr.removeView(langDialog);
|
||||||
files.create(lf)
|
|
||||||
files.writeBytes(lf, body.bytes());
|
|
||||||
var lang = JSON.parse(files.read(lf));
|
|
||||||
config.languages[lang.code] = lang.content;
|
|
||||||
config.values.lang = config.save("language", lang.code);
|
|
||||||
toast(String.format(config.languages[config.values.lang].res_use_language, lang.name));
|
|
||||||
gui.main.__internal_dismiss();
|
|
||||||
gui.suspension.show();
|
|
||||||
config.updateStaticUIText();
|
|
||||||
gui.utils.value_animation("Float", 1.0, 0, 125, new android.view.animation.DecelerateInterpolator(), function(anim) {
|
|
||||||
langDialog.setAlpha(anim.getAnimatedValue());
|
|
||||||
if(anim.getAnimatedValue() == 1) gui.winMgr.removeView(langDialog);
|
|
||||||
});
|
|
||||||
}, function(msg) {
|
|
||||||
toast(String.format(config.languages[config.values.lang].res_language_download_failed, msg));
|
|
||||||
});
|
});
|
||||||
|
}, function(msg) {
|
||||||
|
toast(String.format(config.languages[config.values.lang].res_language_download_failed, msg));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(item.local) {
|
||||||
|
var isOutdateVersion = false;
|
||||||
|
for(var i in onlineList) {
|
||||||
|
if(onlineList[i].code == item.code) {
|
||||||
|
if(onlineList[i].version > item.version) isOutdateVersion = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(isOutdateVersion) {
|
||||||
|
threads.start(fetchOnline);
|
||||||
|
} else {
|
||||||
|
config.languages[item.code] = item.content;
|
||||||
|
config.values.lang = config.save("language", item.code);
|
||||||
|
toast(String.format(config.languages[config.values.lang].res_use_language, item.name));
|
||||||
|
gui.main.__internal_dismiss();
|
||||||
|
gui.suspension.show();
|
||||||
|
config.updateStaticUIText();
|
||||||
|
gui.utils.value_animation("Float", 1.0, 0, 125, new android.view.animation.DecelerateInterpolator(), function(anim) {
|
||||||
|
langDialog.setAlpha(anim.getAnimatedValue());
|
||||||
|
if(anim.getAnimatedValue() == 1) gui.winMgr.removeView(langDialog);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
threads.start(fetchOnline);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
@@ -2372,9 +2399,10 @@ gui = {
|
|||||||
baseLayout.addView(prompt);
|
baseLayout.addView(prompt);
|
||||||
var langDialog = gui.dialogs.showDialog(baseLayout, -2, -2, null, true);
|
var langDialog = gui.dialogs.showDialog(baseLayout, -2, -2, null, true);
|
||||||
|
|
||||||
|
var onlineList = [];
|
||||||
threads.start(function() {
|
threads.start(function() {
|
||||||
config.fetchRepoFile("source/language_list.json", null, function(body) {
|
config.fetchRepoFile("source/language_list.json", null, function(body) {
|
||||||
var onlineList = JSON.parse(body.string()).list;
|
onlineList = JSON.parse(body.string()).list;
|
||||||
gui.run(function() {
|
gui.run(function() {
|
||||||
var __listArray = listAdapterController.getArray();
|
var __listArray = listAdapterController.getArray();
|
||||||
var loadingProgress = __listArray[__listArray.length - 1].v_prog
|
var loadingProgress = __listArray[__listArray.length - 1].v_prog
|
||||||
@@ -2390,6 +2418,7 @@ gui = {
|
|||||||
type: "item",
|
type: "item",
|
||||||
name: onlineList[i].name,
|
name: onlineList[i].name,
|
||||||
code: onlineList[i].code,
|
code: onlineList[i].code,
|
||||||
|
version: onlineList[i].version,
|
||||||
local: false,
|
local: false,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user