13 lines
508 B
TypeScript
13 lines
508 B
TypeScript
import { camelCase, getPropByPath, isDef, isFunction } from '../common/util'
|
|
import Locale from '../../locale'
|
|
|
|
export const useTranslate = (name?: string) => {
|
|
const prefix = name ? camelCase(name) + '.' : ''
|
|
const translate = (key: string, ...args: unknown[]) => {
|
|
const currentMessages = Locale.messages()
|
|
const message = getPropByPath(currentMessages, prefix + key)
|
|
return isFunction(message) ? message(...args) : isDef(message) ? message : `${prefix}${key}`
|
|
}
|
|
return { translate }
|
|
}
|