初始上传
This commit is contained in:
97
addon/pc/source/os/utils/lang.js
Executable file
97
addon/pc/source/os/utils/lang.js
Executable file
@@ -0,0 +1,97 @@
|
||||
const langList = ["zh-cn", "en-us"]
|
||||
|
||||
var locale = "zh-cn" //设置语言,uni.getStorageSync('lang') ||
|
||||
|
||||
export default {
|
||||
langList: ["zh-cn", "en-us"],
|
||||
/**
|
||||
* 解析多语言
|
||||
* @param {Object} field 字段
|
||||
* @param {Object} route 路由对象
|
||||
*/
|
||||
lang(field, route) {
|
||||
let name = "",
|
||||
module = ""
|
||||
if (route) {
|
||||
name = route.name
|
||||
module = route.meta.module
|
||||
if (route.path == "/" || route.name == "index") {
|
||||
name = "index"
|
||||
module = "index"
|
||||
}
|
||||
} else {
|
||||
name = vue.$route.name
|
||||
module = vue.$route.meta.module
|
||||
}
|
||||
|
||||
if (!name || !module) return
|
||||
|
||||
var value = ""
|
||||
try {
|
||||
// 公共语言包
|
||||
var lang = require("../lang/" + locale + "/common.js").lang
|
||||
|
||||
// 当前页面语言包
|
||||
let currentViewLang = require("../lang/" + locale + "/" + module + "/" + name + ".js").lang
|
||||
|
||||
Object.assign(lang, currentViewLang)
|
||||
|
||||
var arr = field.split(".")
|
||||
if (arr.length > 1) {
|
||||
for (let i in arr) {
|
||||
var next = parseInt(i) + 1
|
||||
if (next < arr.length) {
|
||||
value = lang[arr[i]][arr[next]]
|
||||
}
|
||||
}
|
||||
} else {
|
||||
value = lang[field]
|
||||
}
|
||||
} catch (e) {
|
||||
value = field
|
||||
}
|
||||
|
||||
if (arguments.length > 1) {
|
||||
//有参数,需要替换
|
||||
for (var i = 1; i < arguments.length; i++) {
|
||||
value = value.replace("{" + (i - 1) + "}", arguments[i])
|
||||
}
|
||||
}
|
||||
|
||||
if (value == undefined || (value == "title" && field == "title")) value = "" // field
|
||||
return value
|
||||
},
|
||||
//切换语言
|
||||
change(value) {
|
||||
if (!vue) return
|
||||
|
||||
vue.$store.commit("lang", value)
|
||||
locale = vue.$store.state.lang //设置语言
|
||||
this.refresh()
|
||||
},
|
||||
//刷新标题
|
||||
refresh(route) {
|
||||
window.document.title = this.lang("title", route)
|
||||
},
|
||||
// 获取语言包列表
|
||||
list() {
|
||||
var list = []
|
||||
try {
|
||||
//公共语言包
|
||||
for (var i = 0; i < langList.length; i++) {
|
||||
let item = require("../lang/" + langList[i] + "/common.js").lang
|
||||
list.push({
|
||||
name: item.common.name,
|
||||
value: langList[i]
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
// "没有找到语言包:", '../../lang/' + locale + '/common.js'
|
||||
}
|
||||
return list
|
||||
},
|
||||
// 获取字段语言展示
|
||||
getLangField(field, route) {
|
||||
return this.lang(field, route) || ""
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user