From 334ee0d40d830188401d76f60cefa2695bc2fba5 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期四, 28 十一月 2024 21:28:28 +0800
Subject: [PATCH] !162 feat: i18n $t方法支持ts类型提示 Merge pull request !162 from 玲娜贝er/dev

---
 src/lang/index.ts |   52 ++++++++++++++++++++--------------------------------
 1 files changed, 20 insertions(+), 32 deletions(-)

diff --git a/src/lang/index.ts b/src/lang/index.ts
index 1048211..4f8e74c 100644
--- a/src/lang/index.ts
+++ b/src/lang/index.ts
@@ -1,45 +1,33 @@
 // 鑷畾涔夊浗闄呭寲閰嶇疆
 import { createI18n } from 'vue-i18n';
 
-// 鏈湴璇█鍖�
-import enLocale from './en';
-import zhCnLocale from './zh-cn';
-
-const messages = {
-	'zh-cn': {
-		...zhCnLocale
-	},
-	en: {
-		...enLocale
-	}
-};
+import { LanguageEnum } from '@/enums/LanguageEnum';
+import zh_CN from '@/lang/zh_CN';
+import en_US from '@/lang/en_US';
 
 /**
- * 鑾峰彇褰撳墠绯荤粺浣跨敤璇█瀛楃涓�
- *
+ * 鑾峰彇褰撳墠璇█
  * @returns zh-cn|en ...
  */
-export const getLanguage = () => {
-	// 鏈湴缂撳瓨鑾峰彇
-	let language = localStorage.getItem('language');
-	if (language) {
-		return language;
-	}
-	// 娴忚鍣ㄤ娇鐢ㄨ瑷�
-	language = navigator.language.toLowerCase();
-	const locales = Object.keys(messages);
-	for (const locale of locales) {
-		if (language.indexOf(locale) > -1) {
-			return locale;
-		}
-	}
-	return 'zh-cn';
+export const getLanguage = (): LanguageEnum => {
+  const language = useStorage<LanguageEnum>('language', LanguageEnum.zh_CN);
+  if (language.value) {
+    return language.value;
+  }
+  return LanguageEnum.zh_CN;
 };
 
 const i18n = createI18n({
-	legacy: false,
-	locale: getLanguage(),
-	messages: messages
+  globalInjection: true,
+  allowComposition: true,
+  legacy: false,
+  locale: getLanguage(),
+  messages: {
+    zh_CN: zh_CN,
+    en_US: en_US
+  }
 });
 
 export default i18n;
+
+export type LanguageType = typeof zh_CN;

--
Gitblit v1.9.3