import { ref } from 'vue';

// 从构建时配置获取语言，默认为英文
const buildLocale = import.meta.env.DASHBOARD_LOCALE || 'en';

// 当前语言（从构建配置获取，不可切换）
const currentLocale = ref(buildLocale);
// 翻译数据：构建时 Vite 插件已直接替换静态文本，这里只处理动态翻译
const translations = ref({});

/**
 * 翻译函数
 * @param {string} key - 翻译键（通常是英文原文）
 * @param {object} params - 参数对象，用于替换占位符
 * @returns {string} 翻译后的文本
 */
export function t(key, params = {}) {
	if (!key || typeof key !== 'string') return key;
	
	// 从翻译字典中获取翻译，如果没有则返回原文
	let translated = translations.value[key] || key;
	
	// 支持参数替换，如 t('Hello {name}', { name: 'John' })
	if (params && typeof params === 'object' && Object.keys(params).length > 0) {
		Object.keys(params).forEach((paramKey) => {
			const regex = new RegExp(`\\{${paramKey}\\}`, 'g');
			translated = translated.replace(regex, String(params[paramKey]));
		});
	}
	
	return translated;
}

/**
 * 获取当前语言（构建时配置的语言）
 * @returns {string} 当前语言代码
 */
export function getLocale() {
	return currentLocale.value;
}

/**
 * 初始化 i18n
 * 使用构建时配置的语言
 */
export async function initI18n() {
	const locale = buildLocale.split('-')[0] || 'en'; // 处理 'en-US' -> 'en'
	document.documentElement.lang = locale;
}

// 导出响应式状态（供 composable 使用）
export { currentLocale };

