Skip to content

Commit f8fbbe4

Browse files
committed
feat(ui): i18n - init language add getSystemLanguage request
1 parent 155ba67 commit f8fbbe4

2 files changed

Lines changed: 32 additions & 2 deletions

File tree

cmdb-ui/src/App.vue

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import zhCN from 'ant-design-vue/lib/locale-provider/zh_CN'
1212
import enUS from 'ant-design-vue/lib/locale-provider/en_US'
1313
import { AppDeviceEnquire } from '@/utils/mixin'
1414
import { debounce } from './utils/util'
15+
import { getSystemLanguage } from '@/api/system.js'
1516
1617
import { h } from 'snabbdom'
1718
import { DomEditor, Boot } from '@wangeditor/editor'
@@ -45,8 +46,7 @@ export default {
4546
},
4647
},
4748
created() {
48-
this.SET_LOCALE(localStorage.getItem('ops_locale') || 'zh')
49-
this.$i18n.locale = localStorage.getItem('ops_locale') || 'zh'
49+
this.initLanguage()
5050
this.timer = setInterval(() => {
5151
this.setTime(new Date().getTime())
5252
}, 1000)
@@ -200,6 +200,28 @@ export default {
200200
this.alive = true
201201
})
202202
},
203+
async initLanguage() {
204+
let saveLocale = localStorage.getItem('ops_locale')
205+
if (!saveLocale) {
206+
let requestLanguage = ''
207+
try {
208+
const languageRes = await getSystemLanguage()
209+
requestLanguage = languageRes?.language || ''
210+
} catch (e) {
211+
console.error('getSystemLanguage error:', e)
212+
}
213+
214+
// request language variable || user local system language
215+
const userLanguage = requestLanguage || navigator.language || navigator.userLanguage
216+
if (userLanguage.includes('zh')) {
217+
saveLocale = 'zh'
218+
} else {
219+
saveLocale = 'en'
220+
}
221+
}
222+
this.SET_LOCALE(saveLocale)
223+
this.$i18n.locale = saveLocale
224+
}
203225
},
204226
}
205227
</script>

cmdb-ui/src/api/system.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { axios } from '@/utils/request'
2+
3+
export function getSystemLanguage() {
4+
return axios({
5+
url: '/common-setting/v1/system/language',
6+
method: 'get',
7+
})
8+
}

0 commit comments

Comments
 (0)