Merge pull request #3326 from tangly1024/fix/iconfont

Fix/iconfont
This commit is contained in:
tangly1024
2025-04-11 22:37:48 +08:00
committed by GitHub
6 changed files with 43 additions and 63 deletions

View File

@@ -8,12 +8,7 @@ import {
import { useUser } from '@clerk/nextjs'
import { useRouter } from 'next/router'
import { createContext, useContext, useEffect, useState } from 'react'
import {
generateLocaleDict,
initLocale,
redirectUserLang,
saveLangToLocalStorage
} from './lang'
import { generateLocaleDict, initLocale, redirectUserLang } from './lang'
/**
* 全局上下文
@@ -81,7 +76,6 @@ export function GlobalContextProvider(props) {
function changeLang(lang) {
if (lang) {
saveLangToLocalStorage(lang)
updateLang(lang)
updateLocale(generateLocaleDict(lang))
}

View File

@@ -8,6 +8,7 @@ import zhCN from './lang/zh-CN'
import zhHK from './lang/zh-HK'
import zhTW from './lang/zh-TW'
import { extractLangPrefix } from './utils/pageId'
import { useRouter } from 'next/router'
/**
* 在这里配置所有支持的语言
@@ -70,15 +71,9 @@ export function generateLocaleDict(langString) {
*/
export function initLocale(locale, changeLang, updateLocale) {
if (isBrowser) {
// 根据router中的locale对象判断当前语言表现为前缀中包含 zh、en 等。
let pathLocaleLang = null
if (locale === 'en' || locale === 'zh') {
pathLocaleLang = locale === 'en' ? 'en-US' : 'zh-CN'
}
// 如果有query参数切换语言则优先
const queryLang =
getQueryVariable('locale') || getQueryVariable('lang') || pathLocaleLang
getQueryVariable('locale') || getQueryVariable('lang') || locale
if (queryLang) {
const match = queryLang.match(/[a-zA-Z]{2}(?:-[a-zA-Z]{2})?/)
if (match) {
@@ -91,22 +86,6 @@ export function initLocale(locale, changeLang, updateLocale) {
}
}
/**
* 读取语言
* @returns {*}
*/
export const loadLangFromLocalStorage = () => {
return localStorage.getItem('lang')
}
/**
* 保存语言
* @param newTheme
*/
export const saveLangToLocalStorage = lang => {
localStorage.setItem('lang', lang)
}
/**
* 检测用户的预研偏好,跳转至对应的多语言网站
* @param {*} lang
@@ -142,4 +121,4 @@ export const redirectUserLang = (lang, pageId) => {
}
}
}
}
}

View File

@@ -1,4 +1,3 @@
import { loadLangFromLocalStorage } from '@/lib/lang'
import { idToUuid } from 'notion-utils'
import { checkStrIsNotionId, getLastPartOfUrl, isBrowser } from '../utils'
@@ -7,7 +6,7 @@ import { checkStrIsNotionId, getLastPartOfUrl, isBrowser } from '../utils'
* 1.若是本站域名,则在当前窗口打开、不开新窗口
* 2.url是notion-id转成站内文章链接
*/
export const convertInnerUrl = allPages => {
export const convertInnerUrl = ({ allPages, lang }) => {
if (!isBrowser) {
return
}
@@ -18,11 +17,9 @@ export const convertInnerUrl = allPages => {
if (!allAnchorTags) {
return
}
const { origin, pathname } = window.location
const currentURL = origin + pathname
const currentPathLang = pathname.split('/').filter(Boolean)[0]
const lang = loadLangFromLocalStorage().split(/[-_]/)[0]
const langPrefix = lang === currentPathLang ? '/' + lang : ''
for (const anchorTag of allAnchorTags) {
// url替换成slug
@@ -56,6 +53,7 @@ export const convertInnerUrl = allPages => {
anchorTag.target = '_blank'
}
}
for (const anchorTag of allAnchorTags) {
const slug = getLastPartOfUrl(anchorTag.href)
const slugPage = allPages?.find(page => {