appointment_system/utils/tabbar-i18n.js

44 lines
1.0 KiB
JavaScript

// TabBar 页面路径列表
const TAB_BAR_PAGES = ['pages/index/index', 'pages/appointment/appointment-page', 'pages/me/me-page']
// 检查当前是否在 TabBar 页面
const isTabBarPage = () => {
const pages = getCurrentPages()
if (pages.length === 0) return false
const currentPage = pages[pages.length - 1]
const currentRoute = currentPage.route || ''
return TAB_BAR_PAGES.includes(currentRoute)
}
// TabBar 国际化工具
export const updateTabBarI18n = (vm) => {
if (!vm || !vm.$t) return
// 只在 TabBar 页面才更新
if (!isTabBarPage()) return
try {
uni.setTabBarItem({
index: 0,
text: vm.$t('tabbar.home')
})
uni.setTabBarItem({
index: 1,
text: vm.$t('tabbar.appointment')
})
uni.setTabBarItem({
index: 2,
text: vm.$t('tabbar.me')
})
} catch (e) {
console.error('更新 TabBar 国际化失败:', e)
}
}
// 混入对象,用于在页面中自动更新 TabBar
export const tabBarI18nMixin = {
onShow() {
updateTabBarI18n(this)
}
}