63 lines
1.5 KiB
JavaScript
63 lines
1.5 KiB
JavaScript
// 国际化工具函数
|
|
export const i18nUtils = {
|
|
// 切换语言
|
|
changeLanguage(locale) {
|
|
// 保存到本地存储
|
|
uni.setStorageSync('language', locale)
|
|
|
|
// 如果在页面中,可以通过 getCurrentPages 获取当前页面实例
|
|
const pages = getCurrentPages()
|
|
if (pages.length > 0) {
|
|
const currentPage = pages[pages.length - 1]
|
|
if (currentPage.$vm && currentPage.$vm.$i18n) {
|
|
currentPage.$vm.$i18n.locale = locale
|
|
}
|
|
}
|
|
|
|
// 显示切换成功提示
|
|
uni.showToast({
|
|
title: '语言切换成功',
|
|
icon: 'success'
|
|
})
|
|
},
|
|
|
|
// 获取当前语言
|
|
getCurrentLanguage() {
|
|
return uni.getStorageSync('language') || 'zh'
|
|
},
|
|
|
|
// 获取系统语言
|
|
getSystemLanguage() {
|
|
let language = 'zh'
|
|
|
|
try {
|
|
const systemInfo = uni.getSystemInfoSync()
|
|
language = systemInfo.language
|
|
|
|
// 处理语言代码
|
|
if (language.indexOf('zh') !== -1) {
|
|
language = 'zh'
|
|
} else if (language.indexOf('en') !== -1) {
|
|
language = 'en'
|
|
} else if (language.indexOf('pt') !== -1) {
|
|
language = 'pt'
|
|
} else {
|
|
language = 'zh' // 默认中文
|
|
}
|
|
} catch (e) {
|
|
console.log('获取系统语言失败:', e)
|
|
}
|
|
|
|
return language
|
|
},
|
|
|
|
// 获取语言显示名称
|
|
getLanguageName(code) {
|
|
const languageMap = {
|
|
'zh': '中文',
|
|
'en': 'English',
|
|
'pt': 'Português'
|
|
}
|
|
return languageMap[code] || '中文'
|
|
}
|
|
} |