import { createApp } from "vue";
import { invoke } from "@tauri-apps/api/core";
import App from "./App.vue";
import "./styles/base.css";
import { createAppI18n, resolveInitialLocale, type SupportedLocale } from "./i18n";
async function bootstrap() {
let override: string | null = null;
let headerTextOverride: string | null = null;
try {
override = await invoke<string | null>("get_ui_lang_override");
} catch (err) {
console.error("获取 UI 语言覆盖设置失败,将回退到系统语言判定", err);
}
try {
headerTextOverride = await invoke<string | null>("get_header_text_override");
} catch (err) {
console.error("获取头部文案覆盖失败,将使用默认文案", err);
}
let systemLang: string | null = null;
if (typeof navigator !== "undefined") {
systemLang =
(Array.isArray(navigator.languages) && navigator.languages[0])
|| navigator.language
|| null;
}
const locale: SupportedLocale = resolveInitialLocale(override, systemLang);
const app = createApp(App);
const i18n = createAppI18n(locale);
app.use(i18n);
app.provide("headerTextOverride", headerTextOverride);
app.mount("#app");
}
void bootstrap();