add i18n basic structure

This commit is contained in:
shaohaojiecoder 2020-02-09 17:54:57 +08:00
parent e336b31902
commit 4e0dc1282f
4 changed files with 20 additions and 11 deletions

View File

@ -3,7 +3,7 @@
<div class="content-box"> <div class="content-box">
<a href="https://github.com/pycook/cmdb" target="_blank"> <a href="https://github.com/pycook/cmdb" target="_blank">
<span class="action"> <span class="action">
源代码 -> <a-icon type="github" style="font-size: 20px; color: #002140"></a-icon> {{ $t('tip.sourceCode') }} -> <a-icon type="github" style="font-size: 20px; color: #002140"></a-icon>
</span> </span>
</a> </a>
<!-- <a href="https://pro.loacg.com/docs/getting-started" target="_blank"> <!-- <a href="https://pro.loacg.com/docs/getting-started" target="_blank">
@ -39,7 +39,7 @@
</a-menu-item> </a-menu-item>
</a-menu> </a-menu>
</a-dropdown> </a-dropdown>
<lang-select /> <lang-select v-if="showLocale" />
</div> </div>
</div> </div>
</template> </template>
@ -48,12 +48,18 @@
import NoticeIcon from '@/components/NoticeIcon' import NoticeIcon from '@/components/NoticeIcon'
import { mapActions, mapGetters } from 'vuex' import { mapActions, mapGetters } from 'vuex'
import LangSelect from '@/components/tools/LangSelect' import LangSelect from '@/components/tools/LangSelect'
import { showLocale } from '@/locales'
export default { export default {
name: 'UserMenu', name: 'UserMenu',
components: { components: {
NoticeIcon, LangSelect NoticeIcon, LangSelect
}, },
data () {
return {
showLocale: showLocale
}
},
methods: { methods: {
...mapActions(['Logout']), ...mapActions(['Logout']),
...mapGetters(['nickname', 'avatar']), ...mapGetters(['nickname', 'avatar']),

View File

@ -3,16 +3,21 @@ import Vue from 'vue'
import VueI18n from 'vue-i18n' import VueI18n from 'vue-i18n'
// default language // default language
import enUS from './lang/en-US' import enUS from './lang/en-US'
import zhCN from './lang/zh-CN'
// change default accept-language // change default accept-language
import { axios } from '@/utils/request' import { axios } from '@/utils/request'
Vue.use(VueI18n) Vue.use(VueI18n)
export const defaultLang = 'en-US' export const defaultLang = 'zh-CN'
export const showLocale = true
const messages = { const messages = {
'en-US': { 'en-US': {
...enUS ...enUS
},
'zh-CN': {
...zhCN
} }
} }
@ -27,9 +32,6 @@ export default i18n
const loadedLanguages = [defaultLang] const loadedLanguages = [defaultLang]
// 从缓存設置中加载当前语言 // 从缓存設置中加载当前语言
// if (Vue.ls.get('lang') !== null && defaultLang !== Vue.ls.get('lang')) {
// loadLanguageAsync(localStorage.lang)
// }
function setI18nLanguage (lang) { function setI18nLanguage (lang) {
i18n.locale = lang i18n.locale = lang
@ -38,11 +40,6 @@ function setI18nLanguage (lang) {
return lang return lang
} }
/**
* i18n Render
* @param key
* @returns rendered string
*/
export function i18nRender (key) { export function i18nRender (key) {
return i18n.t(key) return i18n.t(key)
} }
@ -64,3 +61,7 @@ export function loadLanguageAsync (lang = defaultLang) {
return resolve(lang) return resolve(lang)
}) })
} }
// if (Vue.ls.get('lang') !== null && defaultLang !== Vue.ls.get('lang')) {
// loadLanguageAsync(localStorage.lang)
// }

View File

@ -32,6 +32,7 @@ export default {
upload: 'Upload' upload: 'Upload'
}, },
tip: { tip: {
sourceCode: 'view on',
subscribed: 'Subscribed', subscribed: 'Subscribed',
unsubscribed: 'Unsubscribed', unsubscribed: 'Unsubscribed',
unfold: 'Unfold', unfold: 'Unfold',

View File

@ -32,6 +32,7 @@ export default {
upload: '上传' upload: '上传'
}, },
tip: { tip: {
sourceCode: '源代码',
subscribed: '已订阅', subscribed: '已订阅',
unsubscribed: '未订阅', unsubscribed: '未订阅',
unfold: '展开', unfold: '展开',