mirror of
https://gitee.com/niucloud-team/niucloud.git
synced 2026-07-21 22:57:42 +00:00
31 lines
899 B
TypeScript
31 lines
899 B
TypeScript
import i18n, { language } from "./i18n"
|
|
import useAppStore from '@/stores/modules/app'
|
|
import { resolveLangFile, resolveRouteAddon, resolveRouteView, inferAddonFromPath } from '@/utils/addon-lang'
|
|
import { getCurrentInstance } from 'vue'
|
|
import { useRoute } from 'vue-router'
|
|
|
|
function currentRoute() {
|
|
if (getCurrentInstance()) {
|
|
return useRoute()
|
|
}
|
|
return useAppStore().route as Parameters<typeof resolveRouteAddon>[0]
|
|
}
|
|
|
|
const t = (message: string) => {
|
|
const route = currentRoute()
|
|
let app = resolveRouteAddon(route)
|
|
const path = resolveRouteView(route)
|
|
if (!app) app = inferAddonFromPath(path)
|
|
const file = resolveLangFile(app, path)
|
|
const key = `${file}.${message}`
|
|
return i18n.global.t(key) != key ? i18n.global.t(key) : i18n.global.t(message)
|
|
}
|
|
|
|
export { language, t }
|
|
|
|
export default {
|
|
install(app: any) {
|
|
app.use(i18n);
|
|
}
|
|
};
|