112 lines
3.8 KiB
Vue
112 lines
3.8 KiB
Vue
/* Copyright© 2000 - 2020 SuperMap Software Co.Ltd. All rights reserved.*/
|
|
|
|
|
|
//目前只支持中英文
|
|
window.initI18N= function (callback){
|
|
var path = getCommonScriptPath();
|
|
Localization.initializeI18N(path, function () {
|
|
if (window.isSite) {
|
|
localize();
|
|
}
|
|
$('html').attr("lang", utils.getLanguage());
|
|
Localization.localize();
|
|
onLoadCallBack(); //设置标题栏当前语言
|
|
callback && callback();
|
|
});
|
|
$('.icl-header').on('click', '.lang-option', function () {
|
|
var value = $(this).data('lang');
|
|
utils.setLanguage(value);
|
|
$('#lang').html($(this).html());
|
|
i18next.changeLanguage(value);
|
|
if (window.isSite) {
|
|
localize();
|
|
return;
|
|
}
|
|
window.location.reload();
|
|
});
|
|
}
|
|
|
|
function onLoadCallBack() {
|
|
var lan = utils.getLanguage();
|
|
var lang_text = $("[data-lang=" + lan + "]").html() || "中文";
|
|
$('#lang').html(lang_text);
|
|
|
|
setCurrentVersion();
|
|
resetCurrentVersionLink();
|
|
}
|
|
|
|
//设置头部版本号
|
|
function setCurrentVersion() {
|
|
var version = getVersion();
|
|
if (!version && window.preRelease) {
|
|
version = window.preRelease;
|
|
}
|
|
var versionText = version ? "" + version : " ";
|
|
$('#version').html(versionText);
|
|
}
|
|
|
|
function getVersion() {
|
|
var pathname = window.location.pathname.replace("/en/", "/");
|
|
var match = pathname.match(/^\/(dev|(?:\d+\.)+\d)\/.*/);//匹配版本:dev|9.0.0
|
|
return match && match[1] ? match[1] : null;
|
|
}
|
|
|
|
|
|
//重置当前版本链接,不带版本号
|
|
function resetCurrentVersionLink() {
|
|
if (!window.version) {
|
|
return;
|
|
}
|
|
|
|
var version = window.version;
|
|
version = version.toString();
|
|
$(".icl-nav-version").each(function (key, item) {
|
|
if (item.href) {
|
|
var reg = new RegExp("(.*)\/(" + version + ")(\/.*)");
|
|
var match = item.href.match(reg);
|
|
if (match && match[1] && match[3]) {
|
|
item.href = match[1] + match[3];
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function localize() {
|
|
var lang = utils.getLanguage();
|
|
var pathname = window.location.pathname.replace("/en/", "/");
|
|
var hash = window.location.hash;
|
|
var href = window.location.origin + pathname;
|
|
if (lang === "en-US") {
|
|
if (getVersion()) {
|
|
href = window.location.origin + pathname.replace(/([^\/]*\/){1}([^\/]*)/, '$1$2/en');
|
|
//href = window.location.origin + pathname.replace(/([^\/]*\/){2}([^\/]*)/, '/$1$2/en');
|
|
} else if (window.isLocal) {
|
|
href = window.location.origin + pathname.replace(/(([^\/]*\/){3})([^\/]*)/, '$1$3/en')
|
|
} else {
|
|
href = window.location.origin + pathname.replace(/([^\/]*\/){1}([^\/]*)/, '/en/$2');
|
|
//href = window.location.origin + pathname.replace(/([^\/]*\/){1}([^\/]*)/, '/$2/en');
|
|
}
|
|
|
|
}
|
|
if ((window.location.origin + window.location.pathname + hash) === href + hash) {
|
|
return;
|
|
}
|
|
window.location = href + hash;
|
|
}
|
|
|
|
function getCommonScriptPath() {
|
|
var r = new RegExp("(^|(.*?\\/))(common\.js)(\\?|$)"),
|
|
s = document.getElementsByTagName('script'), relativePath;
|
|
for (var i = 0; i < s.length; i++) {
|
|
var src = s[i].getAttribute('src');
|
|
if (src) {
|
|
var m = src.match(r);
|
|
if (m) {
|
|
relativePath = m[1] ? m[1].replace("js/", "") : "./";
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return relativePath;
|
|
}
|