// import Vue from 'vue'
|
import store from '../../store'
|
// import en from '../../locale/en.json'
|
import {currentLang} from '@/components/lang'
|
var _currentLang = currentLang();
|
let app;
|
|
function $ts(key, toLower) {//是否将后面的所有文字转小写
|
if (key === undefined || key === null) {
|
return '';
|
}
|
if (Array.isArray(key)) {
|
return ts_arr(key, toLower);
|
}
|
if (_currentLang == "zh-cn"){
|
return key;
|
}
|
|
return store.getters.local()[key] || key;
|
}
|
//按模板翻译,如:'值只能在[{$ts}]'
|
function $tst(key, templateVal) {
|
if (key === undefined || key === null) {
|
return '';
|
}
|
//替换模板
|
return $ts(key).replace('{$ts}', templateVal);
|
}
|
let ts_arr = function (arr, toLower) {
|
if (_currentLang == "zh-cn") return arr.join('');
|
let ts_string = '';
|
for (let index = 0; index < arr.length; index++) {
|
//toLower除了第一个,其他转小写
|
if (toLower) {
|
ts_string = ts_string + " " + ((store.getters.local()[arr[index]] || arr[index]).toLocaleLowerCase());
|
} else {
|
ts_string = ts_string + " " + (store.getters.local()[arr[index]] || arr[index]);
|
}
|
}
|
return ts_string;
|
};
|
function $loadSource() {
|
let langType = localStorage.getItem(lang_storage_key);
|
if (!langType) {
|
// if (navigator.language == "zh-cn") {
|
langType = "zh-cn";
|
// } else {
|
// langType = "en";
|
// }
|
}
|
|
$changeSource(langType, true);
|
}
|
|
function $changeSource(langType, isInit, source) {
|
if (_currentLang == langType && !isInit) {
|
return;
|
}
|
_currentLang = langType;
|
// switch (_currentLang) {
|
// case "zh-cn":
|
// source = { "登录": "登录" }; //中文
|
// break;
|
// case 'en':
|
// source = en; //捷克语
|
// break;
|
// default:
|
// source = en; //其他的默认英语
|
// break;
|
// }
|
localStorage.setItem(lang_storage_key, langType);
|
|
app.config.globalProperties.isCN = _currentLang == 'zh-cn';
|
//store.commit("setLocal", source);
|
}
|
import http from "@/../src/api/http.js";
|
|
function loadLangScript () {
|
if (_currentLang== 'zh-cn') {
|
return
|
}
|
|
window.global_lang = {}
|
http.ajax({
|
url: 'lang/' + _currentLang + '.js?' + Math.random(),
|
json: false,
|
type: 'get',
|
headers: { Authorization: "" },
|
async: false,
|
success: function (_lang) {
|
store.commit("setLocal", JSON.parse(_lang));
|
// var _script = document.createElement('script')
|
// _script.language = 'javascript'
|
// _script.type = 'text/javascript'
|
// try {
|
// _script.appendChild(document.createTextNode(_lang))
|
// document.head.appendChild(_script)
|
// } catch (ex) {
|
// alert('Load language error')
|
// }
|
}
|
})
|
}
|
export default {
|
init(_app) {
|
loadLangScript();
|
app = _app;
|
app.config.globalProperties.$ts = $ts;
|
app.config.globalProperties.$tst = $tst;
|
$loadSource();
|
app.config.globalProperties.$changeSource = $changeSource;
|
}
|
|
}
|