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