看板
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import configProvider from '../util/config-provider';
|
||||
|
||||
/**
|
||||
* 国际化 composable
|
||||
* 提供:
|
||||
* - currentLocale / locales 响应式引用
|
||||
* - t(key, replacements) 翻译方法
|
||||
* - setLocale(name) 切换语言
|
||||
* - initLocales(locales?, defaultName?) 初始化语言包
|
||||
*/
|
||||
export function useLocale(namespace?: string) {
|
||||
// 创建翻译函数,支持命名空间
|
||||
const createTranslateFunction = (ns?: string) => {
|
||||
return (key: string, replacements?: any, localeName?: string): string => {
|
||||
// 如果有命名空间,自动添加前缀
|
||||
const fullKey = ns ? `${ns}.${key}` : key;
|
||||
return configProvider.t(fullKey, replacements, localeName);
|
||||
};
|
||||
};
|
||||
|
||||
return {
|
||||
// 响应式引用
|
||||
currentLocale: configProvider.currentLocaleRef,
|
||||
locales: configProvider.localesRef,
|
||||
|
||||
// 方法
|
||||
t: createTranslateFunction(namespace),
|
||||
setLocale: (name: string) => configProvider.setLocale(name),
|
||||
getLocales: () => configProvider.getLocales(),
|
||||
getCurrentLocale: () => configProvider.getCurrentLocale(),
|
||||
initLocales: (locales?: any[], defaultLocaleName?: string, isForce?: boolean) =>
|
||||
configProvider.initLocales(locales, defaultLocaleName, isForce)
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user