/* * @Author: wei.li * @Date: 2022-08-30 12:01:43 * @LastEditors: levi7754 levi7754@163.com * @LastEditTime: 2024-06-27 10:22:29 * @Description: file content */ import { VxeUI } from 'vxe-table'; import { useI18n } from 'vue-i18n'; import { useRoute } from 'vue-router'; import { watch, onBeforeMount, type Ref } from 'vue'; import { useNav } from './useNav'; export function useTranslationLang(ref?: Ref) { const { $storage, setDocumentTitle, handleResize } = useNav(); const { locale, t } = useI18n(); const route = useRoute(); function translationCh() { $storage.locale = { locale: 'zh' }; locale.value = 'zh'; VxeUI.setLanguage('zh-CN'); ref && handleResize(ref.value); } function translationEn() { $storage.locale = { locale: 'en' }; locale.value = 'en'; VxeUI.setLanguage('en-US'); ref && handleResize(ref.value); } watch( () => locale.value, () => { setDocumentTitle(); } ); onBeforeMount(() => { locale.value = $storage.locale?.locale ?? 'zh'; }); return { t, route, locale, translationCh, translationEn }; }