mirror of
https://github.com/d0zingcat/NotionNext.git
synced 2026-06-04 23:16:53 +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 zhHK from './lang/zh-HK'
|
||||||
import zhTW from './lang/zh-TW'
|
import zhTW from './lang/zh-TW'
|
||||||
import frFR from '@/lib/lang/fr-FR'
|
import frFR from '@/lib/lang/fr-FR'
|
||||||
import { isBrowser, mergeDeep } from './utils'
|
import { getQueryVariable, isBrowser, mergeDeep } from './utils'
|
||||||
|
|
||||||
const lang = {
|
const lang = {
|
||||||
'en-US': enUS,
|
'en-US': enUS,
|
||||||
@@ -21,27 +21,23 @@ export default lang
|
|||||||
*/
|
*/
|
||||||
export function generateLocaleDict(langString) {
|
export function generateLocaleDict(langString) {
|
||||||
let userLocale = lang['en-US']
|
let userLocale = lang['en-US']
|
||||||
if (!langString) {
|
|
||||||
return userLocale
|
switch (langString.toLowerCase()) {
|
||||||
}
|
case 'zh-cn':
|
||||||
if (langString.slice(0, 2).toLowerCase() === 'zh') {
|
case 'zh-sg':
|
||||||
switch (langString.toLowerCase()) {
|
userLocale = lang['zh-CN']
|
||||||
case 'zh-cn':
|
break
|
||||||
case 'zh-sg':
|
case 'zh-hk':
|
||||||
userLocale = lang['zh-CN']
|
userLocale = lang['zh-HK']
|
||||||
break
|
break
|
||||||
case 'zh-hk':
|
case 'zh-tw':
|
||||||
userLocale = lang['zh-HK']
|
userLocale = lang['zh-TW']
|
||||||
break
|
break
|
||||||
case 'zh-tw':
|
case 'fr-fr':
|
||||||
userLocale = lang['zh-TW']
|
userLocale = lang['fr-FR']
|
||||||
break
|
break
|
||||||
case 'fr-fr':
|
default:
|
||||||
userLocale = lang['fr-FR']
|
userLocale = lang['en-US']
|
||||||
break
|
|
||||||
default:
|
|
||||||
userLocale = lang['zh-CN']
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return mergeDeep({}, lang['en-US'], userLocale)
|
return mergeDeep({}, lang['en-US'], userLocale)
|
||||||
}
|
}
|
||||||
@@ -52,7 +48,9 @@ export function generateLocaleDict(langString) {
|
|||||||
*/
|
*/
|
||||||
export function initLocale(locale, changeLocale) {
|
export function initLocale(locale, changeLocale) {
|
||||||
if (isBrowser()) {
|
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)) {
|
if (JSON.stringify(locale) !== JSON.stringify(targetLocale)) {
|
||||||
changeLocale(targetLocale)
|
changeLocale(targetLocale)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user