import type { StrapiLocale } from '@nuxtjs/strapi'; import type { Language as ElementLanguage } from 'element-plus/es/locale'; import zhCn from 'element-plus/es/locale/lang/zh-cn'; import en from 'element-plus/es/locale/lang/en'; // Strapi本地化映射 export const strapiLocales: Record = { zh: 'zh-CN', en: 'en', }; // Element Plus本地化映射 export const elementPlusLocales: Record = { zh: zhCn, en: en, }; export const useLocalizations = () => { const { locale } = useI18n(); // 获取Strapi本地化代码 const getStrapiLocale = (nuxtLocale?: string): StrapiLocale => { const currentLocale = nuxtLocale || locale.value; return strapiLocales[currentLocale] || 'zh-Hans'; }; // 获取Element Plus本地化 const getElementPlusLocale = (nuxtLocale?: string) => { const currentLocale = nuxtLocale || locale.value; const elementPlusLocale = elementPlusLocales[currentLocale] || elementPlusLocales['zh']; return elementPlusLocale; }; return { locale: readonly(locale), getStrapiLocale, getElementPlusLocale, }; };