feat: 添加加载保存语言的功能,优化语言管理逻辑
This commit is contained in:
@@ -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();
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user