From c64ded8078c55292ba11e61666db0d7db3f2e57a Mon Sep 17 00:00:00 2001 From: Qiuxia Fan Date: Thu, 31 Mar 2022 11:14:44 +0800 Subject: [PATCH] update language --- src/components/Selector.vue | 2 +- src/constants/data.ts | 5 +++++ src/locales/index.ts | 5 ++--- src/views/Settings.vue | 23 ++++++++++------------- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/src/components/Selector.vue b/src/components/Selector.vue index a925bb27..2501195f 100644 --- a/src/components/Selector.vue +++ b/src/components/Selector.vue @@ -49,7 +49,7 @@ interface Option { const emit = defineEmits(["change", "query"]); const props = defineProps({ options: { - type: Array as PropType<(Option & { disabled: boolean })[]>, + type: Array as PropType<(Option & { disabled?: boolean })[]>, default: () => [], }, value: { diff --git a/src/constants/data.ts b/src/constants/data.ts index b2f62e37..162d3a01 100644 --- a/src/constants/data.ts +++ b/src/constants/data.ts @@ -19,3 +19,8 @@ export enum TimeType { HOUR_TIME = "HOUR", DAY_TIME = "DAY", } + +export const Languages = [ + { label: "English", value: "en" }, + { label: "Chinese", value: "zh" }, +]; diff --git a/src/locales/index.ts b/src/locales/index.ts index 137c8955..4480c941 100644 --- a/src/locales/index.ts +++ b/src/locales/index.ts @@ -23,13 +23,12 @@ const messages = { zh, }; -const savedLanguage = window.localStorage.getItem("lang"); +const savedLanguage = window.localStorage.getItem("language"); let language = navigator.language.split("-")[0]; if (!savedLanguage) { - window.localStorage.setItem("lang", language); + window.localStorage.setItem("language", language); } language = savedLanguage ? savedLanguage : language; - const i18n = createI18n({ locale: language, messages, diff --git a/src/views/Settings.vue b/src/views/Settings.vue index 85f78e50..fd71c902 100644 --- a/src/views/Settings.vue +++ b/src/views/Settings.vue @@ -16,12 +16,13 @@ limitations under the License. -->
{{ t("language") }} -
@@ -72,12 +73,14 @@ import { ref, reactive } from "vue"; import { useI18n } from "vue-i18n"; import { useAppStoreWithOut } from "@/store/modules/app"; import timeFormat from "@/utils/timeFormat"; +import { Languages } from "@/constants/data"; +import Selector from "@/components/Selector.vue"; const { t, locale } = useI18n(); const state = reactive<{ timer: ReturnType | null }>({ timer: null, }); -const lang = ref(locale.value === "zh" ? false : true); +const lang = ref(locale.value || "en"); const autoTime = ref(6); const auto = ref(false); const appStore = useAppStoreWithOut(); @@ -119,13 +122,8 @@ const changeAutoTime = () => { } }; const setLang = (): void => { - if (lang.value) { - locale.value = "en"; - window.localStorage.setItem("lang", "en"); - } else { - locale.value = "zh"; - window.localStorage.setItem("lang", "zh"); - } + locale.value = lang.value; + window.localStorage.setItem("language", lang.value); }; const setUTCHour = () => { if (utcHour.value < -12) { @@ -180,7 +178,6 @@ const setUTCMin = () => { .settings { color: #222; - font-family: inherit; font-size: 14px; padding: 20px;