Merge pull request #1991 from Sacode/i18n

feat: complete English, French and Russian translation and add i18n configuration
This commit is contained in:
Seefs
2025-10-11 15:56:55 +08:00
committed by GitHub
12 changed files with 8659 additions and 4709 deletions

View File

@@ -20,7 +20,7 @@ For commercial licensing, please contact support@quantumnous.com
import React from 'react';
import { Button, Dropdown } from '@douyinfe/semi-ui';
import { Languages } from 'lucide-react';
import { CN, GB, FR } from 'country-flag-icons/react/3x2';
import { CN, GB, FR, RU } from 'country-flag-icons/react/3x2';
const LanguageSelector = ({ currentLang, onLanguageChange, t }) => {
return (
@@ -49,6 +49,13 @@ const LanguageSelector = ({ currentLang, onLanguageChange, t }) => {
<FR title='Français' className='!w-5 !h-auto' />
<span>Français</span>
</Dropdown.Item>
<Dropdown.Item
onClick={() => onLanguageChange('ru')}
className={`!flex !items-center !gap-2 !px-3 !py-1.5 !text-sm !text-semi-color-text-0 dark:!text-gray-200 ${currentLang === 'ru' ? '!bg-semi-color-primary-light-default dark:!bg-blue-600 !font-semibold' : 'hover:!bg-semi-color-fill-1 dark:hover:!bg-gray-600'}`}
>
<RU title='Русский' className='!w-5 !h-auto' />
<span>Русский</span>
</Dropdown.Item>
</Dropdown.Menu>
}
>

View File

@@ -24,6 +24,7 @@ import LanguageDetector from 'i18next-browser-languagedetector';
import enTranslation from './locales/en.json';
import frTranslation from './locales/fr.json';
import zhTranslation from './locales/zh.json';
import ruTranslation from './locales/ru.json';
i18n
.use(LanguageDetector)
@@ -31,15 +32,10 @@ i18n
.init({
load: 'languageOnly',
resources: {
en: {
translation: enTranslation,
},
zh: {
translation: zhTranslation,
},
fr: {
translation: frTranslation,
},
en: enTranslation,
zh: zhTranslation,
fr: frTranslation,
ru: ruTranslation,
},
fallbackLng: 'zh',
interpolation: {

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

2093
web/src/i18n/locales/ru.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -105,7 +105,7 @@ export default function SettingGlobalModel(props) {
})
}
extraText={
'开启后,所有请求将直接透传给上游,不会进行任何处理(重定向和渠道适配也将失效),请谨慎开启'
t('开启后,所有请求将直接透传给上游,不会进行任何处理(重定向和渠道适配也将失效),请谨慎开启')
}
/>
</Col>
@@ -116,7 +116,7 @@ export default function SettingGlobalModel(props) {
<Col span={24}>
<Banner
type='warning'
description='警告启用保活后如果已经写入保活数据后渠道出错系统无法重试如果必须开启推荐设置尽可能大的Ping间隔'
description={t('警告启用保活后如果已经写入保活数据后渠道出错系统无法重试如果必须开启推荐设置尽可能大的Ping间隔')}
/>
</Col>
</Row>
@@ -131,7 +131,7 @@ export default function SettingGlobalModel(props) {
'general_setting.ping_interval_enabled': value,
})
}
extraText={'开启后将定期发送ping数据保持连接活跃'}
extraText={t('开启后将定期发送ping数据保持连接活跃')}
/>
</Col>
<Col xs={24} sm={12} md={8} lg={8} xl={8}>