Skip to content

Commit 5b39a55

Browse files
authored
feat(cli): detect browser language for site documentation auto-redirect (#1998)
When defaultLanguage is not explicitly set in site config, the site will now detect the user's browser language via navigator.language and auto-redirect to the corresponding zh-CN or en-US documentation.
1 parent a900fb6 commit 5b39a55

5 files changed

Lines changed: 10 additions & 6 deletions

File tree

packages/varlet-cli/site/mobile/main.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,13 @@ import config from '@config'
33
import routes from '@mobile-routes'
44
import Varlet from '@varlet/ui'
55
import { createRouter, createWebHashHistory } from 'vue-router'
6-
import { inIframe, isPhone } from '../utils'
6+
import { getBrowserLanguage, inIframe, isPhone } from '../utils'
77
import App from './App.vue'
88
import '@varlet/touch-emulator'
99
import '@varlet/ui/es/style'
1010

1111
const redirect = config?.mobile?.redirect
12-
const defaultLanguage = config?.defaultLanguage
12+
const defaultLanguage = config?.defaultLanguage ?? getBrowserLanguage()
1313

1414
redirect &&
1515
routes.push({

packages/varlet-cli/site/pc/App.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
import { defineComponent, onMounted, ref } from 'vue'
33
import config from '@config'
44
import { getMobileIndex, getPCLocationInfo } from '@varlet/cli/client'
5-
import { isPhone } from '../utils'
5+
import { getBrowserLanguage, isPhone } from '../utils'
66
77
export default defineComponent({
88
setup() {
99
const useMobile = ref(config?.useMobile)
10-
const defaultLanguage = config?.defaultLanguage
10+
const defaultLanguage = config?.defaultLanguage ?? getBrowserLanguage()
1111
1212
const init = () => {
1313
const { language, menuName } = getPCLocationInfo()

packages/varlet-cli/site/pc/main.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import Varlet, { Snackbar } from '@varlet/ui'
55
import { createRouter, createWebHashHistory } from 'vue-router'
66
import App from './App.vue'
77
import CodeExample from './components/code-example'
8+
import { getBrowserLanguage } from '../utils'
89
import '@varlet/ui/es/style'
910
import '@varlet/touch-emulator'
1011

11-
const defaultLanguage = config?.defaultLanguage
12+
const defaultLanguage = config?.defaultLanguage ?? getBrowserLanguage()
1213
const redirect = config?.pc?.redirect
1314
const mobileRedirect = config?.mobile?.redirect
1415

packages/varlet-cli/site/utils.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,7 @@ export function inIframe() {
3030
export function utoa(data: string): string {
3131
return btoa(unescape(encodeURIComponent(data)))
3232
}
33+
34+
export function getBrowserLanguage(): string {
35+
return navigator.language.startsWith('zh') ? 'zh-CN' : 'en-US'
36+
}

packages/varlet-cli/src/node/config/varlet.default.config.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ export default defineConfig({
77
port: 8080,
88
title: 'VARLET',
99
logo: 'varlet_icon.png',
10-
defaultLanguage: 'zh-CN',
1110
themeKey: 'VARLET_V3_THEME',
1211
defaultLightTheme: 'md3LightTheme',
1312
defaultDarkTheme: 'md3DarkTheme',

0 commit comments

Comments
 (0)