24 lines
446 B
TypeScript
24 lines
446 B
TypeScript
|
import { useI18n as useOriginalI18n } from 'vue-i18n'
|
||
|
|
||
|
export function useI18n() {
|
||
|
const {
|
||
|
t,
|
||
|
d,
|
||
|
n,
|
||
|
...rest
|
||
|
} = useOriginalI18n()
|
||
|
|
||
|
return {
|
||
|
...rest,
|
||
|
t: wrapI18n(t),
|
||
|
d: wrapI18n(d),
|
||
|
n: wrapI18n(n),
|
||
|
} satisfies ReturnType<typeof useOriginalI18n>
|
||
|
}
|
||
|
|
||
|
export function wrapI18n<T extends (...args: any[]) => any>(t: T): T {
|
||
|
return <T>((...args: any[]) => {
|
||
|
return isHydrated.value ? t(...args) : ''
|
||
|
})
|
||
|
}
|