mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-05-31 23:16:54 +00:00
多语言支持初版,不支持static export
This commit is contained in:
26
lib/lang.js
26
lib/lang.js
@@ -1,11 +1,11 @@
|
||||
import zhCN from './lang/zh-CN'
|
||||
import { getQueryVariable, isBrowser, mergeDeep } from '@/lib/utils'
|
||||
import enUS from './lang/en-US'
|
||||
import frFR from './lang/fr-FR'
|
||||
import jaJP from './lang/ja-JP'
|
||||
import trTR from './lang/tr-TR'
|
||||
import zhCN from './lang/zh-CN'
|
||||
import zhHK from './lang/zh-HK'
|
||||
import zhTW from './lang/zh-TW'
|
||||
import frFR from './lang/fr-FR'
|
||||
import trTR from './lang/tr-TR'
|
||||
import jaJP from './lang/ja-JP'
|
||||
import { getQueryVariable, isBrowser, mergeDeep } from '@/lib/utils'
|
||||
|
||||
/**
|
||||
* 在这里配置所有支持的语言
|
||||
@@ -43,7 +43,9 @@ export function generateLocaleDict(langString) {
|
||||
|
||||
// 然后尝试匹配只有语言匹配的情况
|
||||
if (!userLocale) {
|
||||
const languageOnlyLocales = supportedLocales.filter(locale => locale.startsWith(language))
|
||||
const languageOnlyLocales = supportedLocales.filter(locale =>
|
||||
locale.startsWith(language)
|
||||
)
|
||||
if (languageOnlyLocales.length > 0) {
|
||||
userLocale = LANGS[languageOnlyLocales[0]]
|
||||
}
|
||||
@@ -51,7 +53,9 @@ export function generateLocaleDict(langString) {
|
||||
|
||||
// 如果还没匹配到,则返回最接近的语言包
|
||||
if (!userLocale) {
|
||||
const fallbackLocale = supportedLocales.find(locale => locale.startsWith('en'))
|
||||
const fallbackLocale = supportedLocales.find(locale =>
|
||||
locale.startsWith('en')
|
||||
)
|
||||
userLocale = LANGS[fallbackLocale]
|
||||
}
|
||||
|
||||
@@ -64,7 +68,11 @@ export function generateLocaleDict(langString) {
|
||||
*/
|
||||
export function initLocale(lang, locale, changeLang, changeLocale) {
|
||||
if (isBrowser) {
|
||||
const queryLang = getQueryVariable('lang') || loadLangFromLocalStorage()
|
||||
// 用户请求的预研
|
||||
const queryLang =
|
||||
getQueryVariable('locale') ||
|
||||
getQueryVariable('lang') ||
|
||||
loadLangFromLocalStorage()
|
||||
let currentLang = lang
|
||||
if (queryLang && queryLang !== 'undefined' && queryLang !== lang) {
|
||||
currentLang = queryLang
|
||||
@@ -91,6 +99,6 @@ export const loadLangFromLocalStorage = () => {
|
||||
* 保存语言
|
||||
* @param newTheme
|
||||
*/
|
||||
export const saveLangToLocalStorage = (lang) => {
|
||||
export const saveLangToLocalStorage = lang => {
|
||||
localStorage.setItem('lang', lang)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user