@tplc/wot
Version:
24 lines (21 loc) • 784 B
text/typescript
/*
* @Author: weisheng
* @Date: 2024-01-25 23:06:48
* @LastEditTime: 2024-01-26 14:00:48
* @LastEditors: weisheng
* @Description:
* @FilePath: \wot-design-uni\src\uni_modules\wot-design-uni\components\composables\useTranslate.ts
* 记得注释
*/
import { camelCase, getPropByPath, isFunction } from '../common/util'
// eslint-disable-next-line import/no-named-as-default
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) : message) || key
}
return { translate }
}