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)
    };
}
