mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-05-14 23:16:49 +00:00
59 lines
1.3 KiB
JavaScript
59 lines
1.3 KiB
JavaScript
import zhCN from './lang/zh-CN'
|
|
import enUS from './lang/en-US'
|
|
import zhHK from './lang/zh-HK'
|
|
import zhTW from './lang/zh-TW'
|
|
import frFR from '@/lib/lang/fr-FR'
|
|
import { getQueryVariable, isBrowser, mergeDeep } from './utils'
|
|
|
|
const lang = {
|
|
'en-US': enUS,
|
|
'zh-CN': zhCN,
|
|
'zh-HK': zhHK,
|
|
'zh-TW': zhTW,
|
|
'fr-FR': frFR
|
|
}
|
|
|
|
export default lang
|
|
|
|
/**
|
|
* 获取当前语言字典
|
|
* @returns 不同语言对应字典
|
|
*/
|
|
export function generateLocaleDict(langString) {
|
|
let userLocale = lang['en-US']
|
|
|
|
switch (langString.toLowerCase()) {
|
|
case 'zh-cn':
|
|
case 'zh-sg':
|
|
userLocale = lang['zh-CN']
|
|
break
|
|
case 'zh-hk':
|
|
userLocale = lang['zh-HK']
|
|
break
|
|
case 'zh-tw':
|
|
userLocale = lang['zh-TW']
|
|
break
|
|
case 'fr-fr':
|
|
userLocale = lang['fr-FR']
|
|
break
|
|
default:
|
|
userLocale = lang['en-US']
|
|
}
|
|
return mergeDeep({}, lang['en-US'], userLocale)
|
|
}
|
|
|
|
/**
|
|
* 初始化语言
|
|
* 根据用户当前浏览器语言进行切换
|
|
*/
|
|
export function initLocale(locale, changeLocale) {
|
|
if (isBrowser()) {
|
|
const browserLocale = window.navigator.language
|
|
const queryLocale = getQueryVariable('lang')
|
|
const targetLocale = generateLocaleDict(queryLocale || browserLocale)
|
|
if (JSON.stringify(locale) !== JSON.stringify(targetLocale)) {
|
|
changeLocale(targetLocale)
|
|
}
|
|
}
|
|
}
|