mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-05-14 07:26:52 +00:00
多语言兼容
This commit is contained in:
44
lib/lang.js
44
lib/lang.js
@@ -3,7 +3,7 @@ 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 { isBrowser, mergeDeep } from './utils'
|
||||
import { getQueryVariable, isBrowser, mergeDeep } from './utils'
|
||||
|
||||
const lang = {
|
||||
'en-US': enUS,
|
||||
@@ -21,27 +21,23 @@ export default lang
|
||||
*/
|
||||
export function generateLocaleDict(langString) {
|
||||
let userLocale = lang['en-US']
|
||||
if (!langString) {
|
||||
return userLocale
|
||||
}
|
||||
if (langString.slice(0, 2).toLowerCase() === 'zh') {
|
||||
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['zh-CN']
|
||||
}
|
||||
|
||||
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)
|
||||
}
|
||||
@@ -52,7 +48,9 @@ export function generateLocaleDict(langString) {
|
||||
*/
|
||||
export function initLocale(locale, changeLocale) {
|
||||
if (isBrowser()) {
|
||||
const targetLocale = generateLocaleDict(window.navigator.language)
|
||||
const browserLocale = window.navigator.language
|
||||
const queryLocale = getQueryVariable('lang')
|
||||
const targetLocale = generateLocaleDict(queryLocale || browserLocale)
|
||||
if (JSON.stringify(locale) !== JSON.stringify(targetLocale)) {
|
||||
changeLocale(targetLocale)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user