feat: 添加加载保存语言的功能,优化语言管理逻辑

This commit is contained in:
2025-12-20 04:23:36 +07:00
parent 3774ac8a2a
commit 37ddeb1a07
2 changed files with 7 additions and 6 deletions

View File

@@ -1,6 +1,8 @@
<script setup lang="ts"> <script setup lang="ts">
const { initializeWallet } = useWalletStore(); const { initializeWallet } = useWalletStore();
const { locale } = useLanguage(); const { locale, loadSavedLanguage } = useLanguage();
loadSavedLanguage();
onMounted(() => { onMounted(() => {
initializeWallet(); initializeWallet();

View File

@@ -11,6 +11,7 @@ export interface Language {
*/ */
export function useLanguage() { export function useLanguage() {
const { locale, availableLocales } = useI18n(); const { locale, availableLocales } = useI18n();
const language = useStorage<Locale>("app-language", locale.value);
// 可用的语言列表 // 可用的语言列表
const languages: Language[] = [ const languages: Language[] = [
@@ -36,17 +37,15 @@ export function useLanguage() {
*/ */
function setLanguage(langCode: Locale) { function setLanguage(langCode: Locale) {
locale.value = langCode; locale.value = langCode;
// 持久化到 localStorage language.value = langCode;
localStorage.setItem("app-language", langCode);
} }
/** /**
* 从 localStorage 加载保存的语言 * 从 localStorage 加载保存的语言
*/ */
function loadSavedLanguage() { function loadSavedLanguage() {
const saved = localStorage.getItem("app-language") as Locale; if (language.value && availableLocales.includes(language.value)) {
if (saved && availableLocales.includes(saved)) { locale.value = language.value;
locale.value = saved;
} }
} }