// translate router.meta.title, be used in breadcrumb sidebar tagsview
import i18n from '@/lang/index';
import { getLanguage } from '@/lang/index';

/**
 * 获取国际化路由，如果不存在则原生返回
 * @param title 路由名称
 * @returns {string}
 */
export const translateRouteTitle = (title: string): string => {
  const hasKey = i18n.global.te('route.' + title);
  if (hasKey) {
    const translatedTitle = i18n.global.t('route.' + title);
    return translatedTitle;
  }
  return title;
};

/**
 * 解析国际化JSON名称，根据当前语言环境返回对应的名称
 * @param name JSON格式的名称字符串，如 {"zh_CN":"菜单","en_US":"menu"}
 * @returns {string} 解析后的名称
 */
export const parseI18nName = (name: string | undefined): string => {
  if (!name) {
    return '';
  }
  try {
    const nameObj = JSON.parse(name);
    // 直接使用 i18n.global.locale.value 获取当前语言，确保响应式更新
    const currentLang = i18n.global.locale.value;
    // 根据当前语言返回对应的名称，如果没有则使用中文，最后使用原值
    return nameObj[currentLang] || nameObj.zh_CN || nameObj.en_US || name;
  } catch (e) {
    // 如果解析失败，直接返回原值
    return name;
  }
};
