import { createSSRApp } from "vue";
import { createI18n } from 'vue-i18n';
import App from "./App.vue";
import en from './enUS.json';
import zh from './zh_CN.json';

export function createApp() {
    // 创建 Vue 应用
    const app = createSSRApp(App);
    
    // 获取系统语言（更安全的写法）
    const systemInfo = uni.getSystemInfoSync() || {};
    const systemLanguage = systemInfo.language || 'zh';
    let cur_lang = 'zh';
    
    // 语言判断（转换为小写更可靠）
    switch (systemLanguage.toLowerCase()) {
        case 'en':
        case 'en-us':
            cur_lang = 'en';
            break;
        case 'zh':
        case 'zh-cn':
        case 'zh-hans':
            cur_lang = 'zh';
            break;
        /* 如果需要印尼语
        case 'id':
            cur_lang = 'idn';
            break;
        */
    }

    // 创建 i18n 实例
const i18n = createI18n({
  legacy: false,
  locale: cur_lang,
  fallbackLocale: 'en', // 建议英文作为回退
  messages: {
    en,
    zh
  },
  missing: (locale, key) => {
    console.error(`[i18n] 严重: '${key}' 在 '${locale}' 语言包中不存在`);
    // 生产环境返回空字符串避免暴露键名
    return process.env.NODE_ENV === 'development' ? `[MISSING: ${key}]` : '';
  }
});

    // 使用 i18n 插件
    app.use(i18n);

    return {
        app,
        i18n
    };
}