OGame: Localization

OGame: stores localization data on the client

이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greatest.deepsurf.us/scripts/4442/14625/OGame%3A%20Localization.js을(를) 사용하여 포함하는 라이브러리입니다.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name OGame: Localization
// @namespace https://greatest.deepsurf.us/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);
}