feat: 更新 @riwa/api-types 依赖地址,优化语言加载逻辑

This commit is contained in:
2025-12-20 04:44:13 +07:00
parent 37ddeb1a07
commit 82fe8e8f6f
5 changed files with 36 additions and 10 deletions

View File

@@ -1,4 +1,5 @@
import type { Locale } from "vue-i18n";
import { client, safeClient } from "@/api";
export interface Language {
code: Locale;
@@ -10,7 +11,7 @@ export interface Language {
* 语言管理组合式函数
*/
export function useLanguage() {
const { locale, availableLocales } = useI18n();
const { locale, availableLocales, mergeLocaleMessage } = useI18n();
const language = useStorage<Locale>("app-language", locale.value);
// 可用的语言列表
@@ -38,6 +39,13 @@ export function useLanguage() {
function setLanguage(langCode: Locale) {
locale.value = langCode;
language.value = langCode;
loadRemoteLanguage();
}
function loadRemoteLanguage() {
safeClient(client.api.error_messages({ lang: language.value }).get()).then((res) => {
mergeLocaleMessage(locale.value, res.data.value);
});
}
/**
@@ -46,6 +54,7 @@ export function useLanguage() {
function loadSavedLanguage() {
if (language.value && availableLocales.includes(language.value)) {
locale.value = language.value;
loadRemoteLanguage();
}
}