From 4aa85e71711d07afbf19631191d8c22c83ac1a8f Mon Sep 17 00:00:00 2001 From: Aisen60 Date: Fri, 19 Jan 2024 10:55:25 +0800 Subject: [PATCH] feat: reinit i18n --- .vscode/settings.json | 11 ++++++----- src/enums/localeEnum.ts | 6 +++++- src/locales/en.json | 3 --- src/locales/index.ts | 14 +++++++------- src/locales/lang/en-US.ts | 3 +++ src/locales/lang/zh-CN.ts | 3 +++ src/locales/zh.json | 3 --- src/stores/modules/locale.ts | 4 ++-- src/types/locale.ts | 2 +- 9 files changed, 27 insertions(+), 22 deletions(-) delete mode 100644 src/locales/en.json create mode 100644 src/locales/lang/en-US.ts create mode 100644 src/locales/lang/zh-CN.ts delete mode 100644 src/locales/zh.json diff --git a/.vscode/settings.json b/.vscode/settings.json index 69b34ad9..88517bf0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -9,12 +9,13 @@ "README.md": "README.md,README.zh-CN.md" }, - "i18n-ally.localesPaths": "src/locales", + "i18n-ally.localesPaths": ["src/locales/lang"], "i18n-ally.enabledFrameworks": ["vue"], - "i18n-ally.sourceLanguage": "zh", - "i18n-ally.displayLanguage": "zh", - "i18n-ally.enabledParsers": ["ts", "json", "js"], + "i18n-ally.sourceLanguage": "zh-CN", + "i18n-ally.displayLanguage": "zh-CN", + "i18n-ally.enabledParsers": ["ts", "json"], "i18n-ally.extract.keyMaxLength": 100, "i18n-ally.namespace": true, - "i18n-ally.keystyle": "nested" + "i18n-ally.keystyle": "nested", + "i18n-ally.extract.keygenStyle": "camelCase" } diff --git a/src/enums/localeEnum.ts b/src/enums/localeEnum.ts index b838612b..e1a42f8f 100644 --- a/src/enums/localeEnum.ts +++ b/src/enums/localeEnum.ts @@ -1,3 +1,7 @@ export enum localeEnum { - APP_LOCALE = 'APP_LOCALE' + APP_LOCALE = 'APP_LOCALE', + 'ZH_CN' = 'zh-CN', + 'EN_US' = 'en-US', + 'ZH_CN_TEXT' = '中文', + 'EN_US_TEXT' = 'English' } diff --git a/src/locales/en.json b/src/locales/en.json deleted file mode 100644 index ca9bea8e..00000000 --- a/src/locales/en.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "hello": "Hello Vue" -} \ No newline at end of file diff --git a/src/locales/index.ts b/src/locales/index.ts index 52f61647..85bcae2c 100644 --- a/src/locales/index.ts +++ b/src/locales/index.ts @@ -1,11 +1,11 @@ import { createI18n } from 'vue-i18n'; import { localeEnum } from '@/enums'; -import zh from './zh.json'; -import en from './en.json'; +import zhCN from './lang/zh-CN'; +import enUS from './lang/en-US'; // 获取浏览器界面语言,默认语言 // https://developer.mozilla.org/zh-CN/docs/Web/API/Navigator/language -let currentLanguage = navigator.language.replace(/-(\S*)/, ''); +let currentLanguage = navigator.language; // 如果本地缓存记录了语言环境,则使用本地缓存 const lsLocale = localStorage.getItem(localeEnum.APP_LOCALE) || ''; @@ -14,8 +14,8 @@ if (lsLocale) { } export const langs = [ - { key: 'zh', title: '中文' }, - { key: 'en', title: 'English' } + { key: localeEnum.ZH_CN, label: localeEnum.ZH_CN_TEXT }, + { key: localeEnum.EN_US, label: localeEnum.EN_US_TEXT } ]; export default createI18n({ @@ -23,7 +23,7 @@ export default createI18n({ legacy: false, // 修复组件引入i18n时vite脚手架报错的问题 globalInjection: true, // 全局注册 $t messages: { - zh, - en + 'zh-CN': zhCN, + 'en-US': enUS } }); diff --git a/src/locales/lang/en-US.ts b/src/locales/lang/en-US.ts new file mode 100644 index 00000000..d3a9f30b --- /dev/null +++ b/src/locales/lang/en-US.ts @@ -0,0 +1,3 @@ +export default { + hello: 'Hello Vant Theme' +}; diff --git a/src/locales/lang/zh-CN.ts b/src/locales/lang/zh-CN.ts new file mode 100644 index 00000000..998ab453 --- /dev/null +++ b/src/locales/lang/zh-CN.ts @@ -0,0 +1,3 @@ +export default { + hello: '你好 Vant Theme' +}; diff --git a/src/locales/zh.json b/src/locales/zh.json deleted file mode 100644 index fa49e326..00000000 --- a/src/locales/zh.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "hello": "你好 Vue" -} \ No newline at end of file diff --git a/src/stores/modules/locale.ts b/src/stores/modules/locale.ts index 3bb0531b..b531f397 100644 --- a/src/stores/modules/locale.ts +++ b/src/stores/modules/locale.ts @@ -11,10 +11,10 @@ import type { NLocale, NDateLocale } from 'naive-ui'; export const useLocaleStore = defineStore('localeStore', () => { const locale = ref(useStorage(localeEnum.APP_LOCALE, i18n.global.locale.value)); - const naiveLocale = computed(() => (locale.value === 'zh' ? zhCN : null)); + const naiveLocale = computed(() => (locale.value === 'zh-CN' ? zhCN : null)); const naiveDateLocale = computed(() => - locale.value === 'zh' ? dateZhCN : null + locale.value === 'zh-CN' ? dateZhCN : null ); const setLocale = (lang: Locale) => { diff --git a/src/types/locale.ts b/src/types/locale.ts index fb23aa03..09f04cb6 100644 --- a/src/types/locale.ts +++ b/src/types/locale.ts @@ -1 +1 @@ -export type Locale = 'zh' | 'en'; +export type Locale = 'zh-CN' | 'en-US';