mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-05-22 15:09:43 +00:00
多语言版本自动切换语言处理
This commit is contained in:
@@ -1,8 +1,17 @@
|
||||
import { generateLocaleDict, initLocale, saveLangToLocalStorage } from './lang'
|
||||
import { createContext, useContext, useEffect, useState } from 'react'
|
||||
import {
|
||||
THEMES,
|
||||
initDarkMode,
|
||||
saveDarkModeToLocalStorage
|
||||
} from '@/themes/theme'
|
||||
import { APPEARANCE, LANG, NOTION_PAGE_ID, THEME } from 'blog.config'
|
||||
import { useRouter } from 'next/router'
|
||||
import { THEMES, initDarkMode, saveDarkModeToLocalStorage } from '@/themes/theme'
|
||||
import { APPEARANCE, LANG, THEME } from 'blog.config'
|
||||
import { createContext, useContext, useEffect, useState } from 'react'
|
||||
import {
|
||||
generateLocaleDict,
|
||||
initLocale,
|
||||
redirectUserLang,
|
||||
saveLangToLocalStorage
|
||||
} from './lang'
|
||||
const GlobalContext = createContext()
|
||||
|
||||
/**
|
||||
@@ -12,9 +21,18 @@ const GlobalContext = createContext()
|
||||
* @constructor
|
||||
*/
|
||||
export function GlobalContextProvider(props) {
|
||||
const { post, children, siteInfo, categoryOptions, tagOptions, NOTION_CONFIG } = props
|
||||
const {
|
||||
post,
|
||||
children,
|
||||
siteInfo,
|
||||
categoryOptions,
|
||||
tagOptions,
|
||||
NOTION_CONFIG
|
||||
} = props
|
||||
const [lang, updateLang] = useState(NOTION_CONFIG?.LANG || LANG) // 默认语言
|
||||
const [locale, updateLocale] = useState(generateLocaleDict(NOTION_CONFIG?.LANG || LANG)) // 默认语言
|
||||
const [locale, updateLocale] = useState(
|
||||
generateLocaleDict(NOTION_CONFIG?.LANG || LANG)
|
||||
) // 默认语言
|
||||
const [theme, setTheme] = useState(NOTION_CONFIG?.THEME || THEME) // 默认博客主题
|
||||
const defaultDarkMode = NOTION_CONFIG?.APPEARANCE || APPEARANCE
|
||||
const [isDarkMode, updateDarkMode] = useState(defaultDarkMode === 'dark') // 默认深色模式
|
||||
@@ -48,6 +66,7 @@ export function GlobalContextProvider(props) {
|
||||
|
||||
/**
|
||||
* 更新语言
|
||||
* 这里是代码级别的多语言,整个站点和文章内容的多语言不在此处理
|
||||
*/
|
||||
function changeLang(lang) {
|
||||
if (lang) {
|
||||
@@ -60,6 +79,7 @@ export function GlobalContextProvider(props) {
|
||||
useEffect(() => {
|
||||
initDarkMode(updateDarkMode, defaultDarkMode)
|
||||
initLocale(lang, locale, updateLang, updateLocale)
|
||||
redirectUserLang(lang, NOTION_PAGE_ID)
|
||||
}, [])
|
||||
|
||||
// 加载进度条
|
||||
|
||||
Reference in New Issue
Block a user