🏠

OGame: Localization

OGame: stores localization data on the client

此脚本不应直接安装,它是一个供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.greasyfork.org/scripts/4442/14625/OGame%3A%20Localization.js

提问、发表评价,或者 举报这个脚本
// ==UserScript==
// @name OGame: Localization
// @namespace https://greasyfork.org/users/4668-black-cat
// @description OGame: stores localization data on the client
// @version 5.4
// @creator Black Cat
// @include http://*.ogame.gameforge.com/game/index.php?page=overview*
// ==/UserScript==
var strFunc = (function(){
var ogTime = parseInt(document.querySelector("meta[name=ogame-timestamp]").getAttribute("content"));
var xmlTime = parseInt(localStorage.getItem("localization.time") || "0");
var language = document.querySelector("meta[name=ogame-language]").getAttribute("content");
var xmlLang = localStorage.getItem("localization.language");
if (language != xmlLang) {
xmlTime = 0;
}
if (ogTime > xmlTime + 86400) {
$.get(
"/api/localization.xml?language="+language,
function (xml) {
var data = {};
localStorage.setItem("localization.language", language);
var loc = xml.childNodes[0];
xmlTime = loc.getAttribute("timestamp");
localStorage.setItem("localization.time", xmlTime);
var parts = loc.childNodes;
for (var i=0; i<parts.length; i++) {
var tag = parts[i].tagName;
data[tag] = {};
var names = parts[i].childNodes;
for (var j=0; j<names.length; j++) {
var id = names[j].getAttribute("id");
data[tag][id] = names[j].textContent;
}
}
localStorage.setItem("localization.data", JSON.stringify(data));
},
"xml"
);
}
}).toString();
if (!document.getElementById("localization_script")) {
var script = document.createElement("script");
script.id = "localization_script";
script.setAttribute("type","text/javascript");
script.text = "(" + strFunc + ")();";
document.body.appendChild(script);
}