/* Copyright (C) 2025 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import React from 'react'; import ReactDOM from 'react-dom/client'; import { BrowserRouter } from 'react-router-dom'; import '@douyinfe/semi-ui/dist/css/semi.css'; import { UserProvider } from './context/User'; import 'react-toastify/dist/ReactToastify.css'; import { StatusProvider } from './context/Status'; import { ThemeProvider } from './context/Theme'; import PageLayout from './components/layout/PageLayout'; import './i18n/i18n'; import './index.css'; import { LocaleProvider } from '@douyinfe/semi-ui'; import { useTranslation } from 'react-i18next'; import zh_CN from '@douyinfe/semi-ui/lib/es/locale/source/zh_CN'; import en_GB from '@douyinfe/semi-ui/lib/es/locale/source/en_GB'; // 欢迎信息(二次开发者未经允许不准将此移除) // Welcome message (Do not remove this without permission from the original developer) // if (typeof window !== 'undefined') { // console.log( // '%cWE ❤ NEWAPI%c Github: https://github.com/QuantumNous/new-api', // 'color: #10b981; font-weight: bold; font-size: 24px;', // 'color: inherit; font-size: 14px;', // ); // } const semiEnglishChromeLanguages = new Set(['id', 'ms', 'th', 'sw']); function SemiLocaleWrapper({ children }) { const { i18n } = useTranslation(); const semiLocale = React.useMemo(() => { const lang = i18n.language; if (semiEnglishChromeLanguages.has(lang)) { return en_GB; } return { zh: zh_CN, en: en_GB }[lang] || zh_CN; }, [i18n.language]); return {children}; } // initialization const root = ReactDOM.createRoot(document.getElementById('root')); root.render( , );