| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- 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) || ""
- }
- }
|