首次完整推送,
V:1.20240808.006
This commit is contained in:
100
lang/i18n.js
Normal file
100
lang/i18n.js
Normal file
@ -0,0 +1,100 @@
|
||||
import langEn from './en'
|
||||
import zhHans from './zh-Hans'
|
||||
import _app_Config from '../app.config.js'
|
||||
const {
|
||||
i18n: {
|
||||
enable: i18nEnable
|
||||
}
|
||||
} = _app_Config
|
||||
const messages = {
|
||||
'en': langEn,
|
||||
'zh-Hans': zhHans
|
||||
}
|
||||
let currentLang
|
||||
if (i18nEnable) {
|
||||
currentLang = uni.getStorageSync('CURRENT_LANG')
|
||||
} else {
|
||||
currentLang = "zh-Hans"
|
||||
}
|
||||
// console.log(uni.getStorageSync('CURRENT_LANG'),currentLang);
|
||||
if (!currentLang) {
|
||||
if (uni.getLocale) {
|
||||
console.log('获取应用语言:', uni.getLocale());
|
||||
let language = 'en'
|
||||
if (uni.getLocale() != 'en') {
|
||||
language = 'zh-Hans'
|
||||
}
|
||||
uni.setStorageSync('CURRENT_LANG', language)
|
||||
currentLang = language
|
||||
} else {
|
||||
uni.getSystemInfo({
|
||||
success: function(res) {
|
||||
console.log('获取设备信息:', res);
|
||||
let language = 'zh-Hans'
|
||||
if (res.language == 'en') {
|
||||
language = 'en'
|
||||
}
|
||||
uni.setStorageSync('CURRENT_LANG', language)
|
||||
currentLang = language
|
||||
},
|
||||
fail: (err) => {
|
||||
console.error(err)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
let i18nConfig = {
|
||||
locale: currentLang, // set locale
|
||||
messages // set locale messages
|
||||
}
|
||||
|
||||
// #ifdef VUE2
|
||||
import Vue from 'vue'
|
||||
import VueI18n from 'vue-i18n'
|
||||
Vue.use(VueI18n)
|
||||
const i18n = new VueI18n(i18nConfig)
|
||||
// #endif
|
||||
|
||||
// #ifdef VUE3
|
||||
import {
|
||||
createI18n
|
||||
} from 'vue-i18n'
|
||||
const i18n = createI18n(i18nConfig)
|
||||
// #endif
|
||||
|
||||
export default i18n
|
||||
|
||||
|
||||
if (i18nEnable) {
|
||||
console.log(`
|
||||
你已开启多语言国际化,将自动根据语言获取【lang/en.js】或【lang/en.js】文件中配置的tabbar的值,
|
||||
覆盖你在pages.json中的tabbar的值
|
||||
如果你不需要多语言国际化,请打开配置文件app.config.js找到 -> i18n -> enable把值设置为false
|
||||
`);
|
||||
let initLanguageAfter = () => {
|
||||
function $i18n(e) {
|
||||
// #ifdef VUE3
|
||||
return i18n.global.messages[i18n.global.locale][e]
|
||||
// #endif
|
||||
return i18n.messages[i18n.locale][e]
|
||||
}
|
||||
setTimeout(function() {
|
||||
//底部tabbar更新
|
||||
$i18n('tabbar').split(',').forEach((text, index) => {
|
||||
// console.log(text);
|
||||
uni.setTabBarItem({
|
||||
index,
|
||||
text,
|
||||
complete: e => {
|
||||
// console.log("e: " + JSON.stringify(e));
|
||||
}
|
||||
})
|
||||
})
|
||||
}, 1)
|
||||
}
|
||||
initLanguageAfter()
|
||||
uni.$on('changeLanguage', e => {
|
||||
console.log('changeLanguage', e);
|
||||
initLanguageAfter(e)
|
||||
})
|
||||
}
|
Reference in New Issue
Block a user