fix: login page language error

This commit is contained in:
scarqin
2025-01-13 15:03:25 +08:00
parent b77ce23b39
commit 197d227cd6
3 changed files with 45 additions and 45 deletions
@@ -4,48 +4,48 @@ import { Icon } from '@iconify/react/dist/iconify.js'
import { Button, Dropdown } from 'antd'
import { memo, useEffect, useMemo } from 'react'
const LanguageItems = [
{
key: 'en-US',
label: (
<Button key="en" type="text" className="flex items-center p-0 bg-transparent border-none">
English
</Button>
),
title: 'English'
},
{
key: 'ja-JP',
label: (
<Button key="jp" type="text" className="flex items-center p-0 bg-transparent border-none">
</Button>
),
title: '日本語'
},
{
key: 'zh-TW',
label: (
<Button key="tw" type="text" className="flex items-center p-0 bg-transparent border-none">
</Button>
),
title: '繁體中文'
},
{
key: 'zh-CN',
label: (
<Button key="cn" type="text" className="flex items-center p-0 bg-transparent border-none">
</Button>
),
title: '简体中文'
}
]
const LanguageSetting = ({ mode = 'light' }: { mode?: 'dark' | 'light' }) => {
const { dispatch, state } = useGlobalContext()
const items = [
{
key: 'en-US',
label: (
<Button key="en" type="text" className="flex items-center p-0 bg-transparent border-none">
English
</Button>
),
title: 'English'
},
{
key: 'ja-JP',
label: (
<Button key="jp" type="text" className="flex items-center p-0 bg-transparent border-none">
</Button>
),
title: '日本語'
},
{
key: 'zh-TW',
label: (
<Button key="tw" type="text" className="flex items-center p-0 bg-transparent border-none">
</Button>
),
title: '繁體中文'
},
{
key: 'zh-CN',
label: (
<Button key="cn" type="text" className="flex items-center p-0 bg-transparent border-none">
</Button>
),
title: '简体中文'
}
]
const langLabel = useMemo(() => items.find((item) => item?.key === state.language)?.title, [state.language])
const langLabel = useMemo(() => LanguageItems.find((item) => item?.key === state.language)?.title, [state.language])
useEffect(() => {
const savedLang = i18n.language || sessionStorage.getItem('i18nextLng')
@@ -53,17 +53,17 @@ const LanguageSetting = ({ mode = 'light' }: { mode?: 'dark' | 'light' }) => {
dispatch({ type: 'UPDATE_LANGUAGE', language: savedLang })
} else if (!savedLang) {
const browserLang = navigator.language
const supportedLang = items.find((item) => item.key === browserLang) ? browserLang : 'zh-CN'
const supportedLang = LanguageItems.find((item) => item.key === browserLang) ? browserLang : 'zh-CN'
if (state.language === supportedLang) return
dispatch({ type: 'UPDATE_LANGUAGE', language: supportedLang })
i18n.changeLanguage(supportedLang)
}
}, [])
return (
<Dropdown
trigger={['hover']}
menu={{
items,
items: LanguageItems,
style: { minWidth: '80px' },
onClick: (e) => {
const { key } = e
@@ -342,7 +342,7 @@ export const GlobalProvider: FC<{ children: ReactNode }> = ({ children }) => {
updateDate: '2024-07-01',
powered: 'Powered by https://apipark.com',
mainPage: '/guide/page',
language: 'en-US',
language: sessionStorage.getItem('i18nextLng') || 'en-US',
pluginsLoaded: false
})
const [accessData, setAccessData] = useState<Map<string, string[]>>(new Map())
@@ -510,7 +510,7 @@ export const useGlobalContext = () => {
updateDate: '',
powered: '',
mainPage: '',
language: 'en-US',
language: sessionStorage.getItem('i18nextLng') || 'en-US',
pluginsLoaded: false
},
dispatch: () => {},
@@ -39,7 +39,7 @@ i18n
.init({
// 初始化
resources, // 本地多语言数据
// fallbackLng: config.lang, // 默认当前环境的语言
supportedLngs: ['zh-CN', 'en-US', 'zh-TW', 'ja-JP'],
detection: {
caches: ['localStorage', 'sessionStorage', 'cookie']
}