diff --git a/web/src/components/table/ChannelsTable.js b/web/src/components/table/ChannelsTable.js index d49f23de..4bf94cb8 100644 --- a/web/src/components/table/ChannelsTable.js +++ b/web/src/components/table/ChannelsTable.js @@ -1917,11 +1917,6 @@ const ChannelsTable = () => { total: channelCount, pageSizeOpts: [10, 20, 50, 100], showSizeChanger: true, - formatPageText: (page) => t('第 {{start}} - {{end}} 条,共 {{total}} 条', { - start: page.currentStart, - end: page.currentEnd, - total: channelCount, - }), onPageSizeChange: (size) => { handlePageSizeChange(size); }, diff --git a/web/src/components/table/LogsTable.js b/web/src/components/table/LogsTable.js index a59b9128..e3116e41 100644 --- a/web/src/components/table/LogsTable.js +++ b/web/src/components/table/LogsTable.js @@ -1439,12 +1439,6 @@ const LogsTable = () => { /> } pagination={{ - formatPageText: (page) => - t('第 {{start}} - {{end}} 条,共 {{total}} 条', { - start: page.currentStart, - end: page.currentEnd, - total: logCount, - }), currentPage: activePage, pageSize: pageSize, total: logCount, diff --git a/web/src/components/table/MjLogsTable.js b/web/src/components/table/MjLogsTable.js index af7d1a1e..0efe5e25 100644 --- a/web/src/components/table/MjLogsTable.js +++ b/web/src/components/table/MjLogsTable.js @@ -942,12 +942,6 @@ const LogsTable = () => { /> } pagination={{ - formatPageText: (page) => - t('第 {{start}} - {{end}} 条,共 {{total}} 条', { - start: page.currentStart, - end: page.currentEnd, - total: logCount, - }), currentPage: activePage, pageSize: pageSize, total: logCount, diff --git a/web/src/components/table/ModelPricing.js b/web/src/components/table/ModelPricing.js index e3f68a76..7e8d3995 100644 --- a/web/src/components/table/ModelPricing.js +++ b/web/src/components/table/ModelPricing.js @@ -535,12 +535,6 @@ const ModelPricing = () => { pageSize: pageSize, showSizeChanger: true, pageSizeOptions: [10, 20, 50, 100], - formatPageText: (page) => - t('第 {{start}} - {{end}} 条,共 {{total}} 条', { - start: page.currentStart, - end: page.currentEnd, - total: filteredModels.length, - }), onPageSizeChange: (size) => setPageSize(size), }} /> diff --git a/web/src/components/table/RedemptionsTable.js b/web/src/components/table/RedemptionsTable.js index 6e096b84..108cde4b 100644 --- a/web/src/components/table/RedemptionsTable.js +++ b/web/src/components/table/RedemptionsTable.js @@ -589,12 +589,6 @@ const RedemptionsTable = () => { total: tokenCount, showSizeChanger: true, pageSizeOptions: [10, 20, 50, 100], - formatPageText: (page) => - t('第 {{start}} - {{end}} 条,共 {{total}} 条', { - start: page.currentStart, - end: page.currentEnd, - total: tokenCount, - }), onPageSizeChange: (size) => { setPageSize(size); setActivePage(1); diff --git a/web/src/components/table/TaskLogsTable.js b/web/src/components/table/TaskLogsTable.js index 86e63b35..dcfad292 100644 --- a/web/src/components/table/TaskLogsTable.js +++ b/web/src/components/table/TaskLogsTable.js @@ -778,12 +778,6 @@ const LogsTable = () => { /> } pagination={{ - formatPageText: (page) => - t('第 {{start}} - {{end}} 条,共 {{total}} 条', { - start: page.currentStart, - end: page.currentEnd, - total: logCount, - }), currentPage: activePage, pageSize: pageSize, total: logCount, diff --git a/web/src/components/table/TokensTable.js b/web/src/components/table/TokensTable.js index 09e180b1..4d5a346f 100644 --- a/web/src/components/table/TokensTable.js +++ b/web/src/components/table/TokensTable.js @@ -893,12 +893,6 @@ const TokensTable = () => { total: tokenCount, showSizeChanger: true, pageSizeOptions: [10, 20, 50, 100], - formatPageText: (page) => - t('第 {{start}} - {{end}} 条,共 {{total}} 条', { - start: page.currentStart, - end: page.currentEnd, - total: tokenCount, - }), onPageSizeChange: handlePageSizeChange, onPageChange: handlePageChange, }} diff --git a/web/src/components/table/UsersTable.js b/web/src/components/table/UsersTable.js index c85395f0..8cfc35b8 100644 --- a/web/src/components/table/UsersTable.js +++ b/web/src/components/table/UsersTable.js @@ -649,12 +649,6 @@ const UsersTable = () => { dataSource={users} scroll={compactMode ? undefined : { x: 'max-content' }} pagination={{ - formatPageText: (page) => - t('第 {{start}} - {{end}} 条,共 {{total}} 条', { - start: page.currentStart, - end: page.currentEnd, - total: userCount, - }), currentPage: activePage, pageSize: pageSize, total: userCount, diff --git a/web/src/i18n/i18n.js b/web/src/i18n/i18n.js index c1bf5860..c7d69868 100644 --- a/web/src/i18n/i18n.js +++ b/web/src/i18n/i18n.js @@ -9,6 +9,7 @@ i18n .use(LanguageDetector) .use(initReactI18next) .init({ + load: 'languageOnly', resources: { en: { translation: enTranslation, diff --git a/web/src/i18n/locales/en.json b/web/src/i18n/locales/en.json index 1ff11e1f..cfddb57f 100644 --- a/web/src/i18n/locales/en.json +++ b/web/src/i18n/locales/en.json @@ -1189,7 +1189,6 @@ "令牌无法精确控制使用额度,只允许自用,请勿直接将令牌分发给他人。": "Tokens cannot accurately control usage, only for self-use, please do not distribute tokens directly to others.", "添加兑换码": "Add redemption code", "复制所选兑换码到剪贴板": "Copy selected redemption codes to clipboard", - "第 {{start}} - {{end}} 条,共 {{total}} 条": "Items {{start}} - {{end}} of {{total}}", "新建兑换码": "Code", "兑换码更新成功!": "Redemption code updated successfully!", "兑换码创建成功!": "Redemption code created successfully!", diff --git a/web/src/index.js b/web/src/index.js index 2a097023..77d129e6 100644 --- a/web/src/index.js +++ b/web/src/index.js @@ -9,15 +9,28 @@ import { ThemeProvider } from './context/Theme'; import PageLayout from './components/layout/PageLayout.js'; import './i18n/i18n.js'; 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 (Secondary developers are not allowed to remove this) +// 欢迎信息(二次开发者未经允许不准将此移除) +// 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;'); } +function SemiLocaleWrapper({ children }) { + const { i18n } = useTranslation(); + const semiLocale = React.useMemo( + () => ({ zh: zh_CN, en: en_GB }[i18n.language] || zh_CN), + [i18n.language], + ); + return {children}; +} + // initialization const root = ReactDOM.createRoot(document.getElementById('root')); @@ -32,7 +45,9 @@ root.render( }} > - + + +