feat: 更新 @riwa/api-types 依赖地址,优化语言加载逻辑
This commit is contained in:
@@ -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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user