Commit b31fd5c7 authored by guxukai's avatar guxukai

chore: 国际化planA实现

parent d0e1fab4
// 按钮配置 // 按钮配置
export const buttonConfig = { export default {
zh: { baas: {
baas: {}, button: {
login: {
zh: '登录',
en: 'login',
},
}, },
en: {
baas: {},
}, },
}
type ButtonConfigItem = {
baas: {
button: {}
}
} }
// 导航菜单配置 export default {
export const menusConfig: {
zh: MenusConfigItem
en: MenusConfigItem
} = {
zh: {
baas: { baas: {
menu: { menu: {
lookup: '开发参考', lookup: {
icons: '图标库', zh: '开发参考',
i18n: '国际化', en: 'lookup',
home: '首页', },
chain: '链管理', icons: {
'announce-list': '公告列表', zh: '图标库',
notice: '站内信', en: 'icons',
'alliance-chain': '联盟链', },
'parallel-chain': '平行链', i18n: {
'chain-log': '链日志', zh: '国际化',
'address-management': '地址管理', en: 'i18n',
'key-management': '密钥管理', },
openapi: 'OpenApi', home: {
'app-management': '授权管理', zh: '首页',
'app-openapi': '接口文档', en: 'home',
}, },
}, chain: {
}, zh: '链管理',
en: { en: 'chain',
baas: { },
menu: { 'announce-list': {
lookup: 'lookup', zh: '公告列表',
icons: 'icons', en: 'announce list',
i18n: 'i18n', },
home: 'home', notice: {
chain: 'chain', zh: '站内信',
'announce-list': 'announce list', en: 'notice',
notice: 'notice', },
'alliance-chain': 'alliance chain', 'alliance-chain': {
'parallel-chain': 'parallel chain', zh: '联盟链',
'chain-log': 'chain log', en: 'alliance chain',
'address-management': 'address management', },
'key-management': 'key management', 'parallel-chain': {
openapi: 'openapi', zh: '平行链',
'app-management': 'app management', en: 'parallel chain',
'app-openapi': 'app openapi', },
'chain-log': {
zh: '链日志',
en: 'chain log',
},
'address-management': {
zh: '地址管理',
en: 'address management',
},
'key-management': {
zh: '密钥管理',
en: 'key management',
},
openapi: {
zh: 'OpenApi',
en: 'OpenApi',
},
'app-management': {
zh: '授权管理',
en: 'app management',
},
'app-openapi': {
zh: '接口文档',
en: 'app openapi',
}, },
}, },
}, },
}
type MenusConfigItem = {
baas: {
menu: {
lookup: string
icons: string
i18n: string
home: string
notice: string
'announce-list': string
chain: string
'alliance-chain': string
'parallel-chain': string
'chain-log': string
'address-management': string
'key-management': string
openapi: string
'app-management': string
'app-openapi': string
}
}
} }
...@@ -3,9 +3,43 @@ import { createI18n } from 'vue-i18n' ...@@ -3,9 +3,43 @@ import { createI18n } from 'vue-i18n'
// element-plus国际化 // element-plus国际化
import enLocale from 'element-plus/lib/locale/lang/en' import enLocale from 'element-plus/lib/locale/lang/en'
import zhLocale from 'element-plus/lib/locale/lang/zh-cn' import zhLocale from 'element-plus/lib/locale/lang/zh-cn'
import { menusConfig } from '@shared/plugins/i18n/config/menu-config' // import { menuConfig } from '@shared/plugins/i18n/config/menu-config'
import { buttonConfig } from '@shared/plugins/i18n/config/button-config' // import { buttonConfig } from '@shared/plugins/i18n/config/button-config'
const localesList = [menusConfig, buttonConfig] import { camelCase, isPlainObject, upperFirst } from 'lodash'
import path from 'path'
import { modules } from '@/pages/account/views/cropped/home/components'
/**
* 返回拆分的国际化配置
* @param v
* @param parentKeys
* @param config
*/
function func(
v,
parentKeys: string[] = [],
config = {
zh: {},
en: {},
},
) {
if (!isPlainObject(v)) {
if (parentKeys[parentKeys.length - 1] === 'zh') {
config.zh[parentKeys.slice(0, parentKeys.length - 1).join('.')] = v
}
if (parentKeys[parentKeys.length - 1] === 'en') {
config.en[parentKeys.slice(0, parentKeys.length - 1).join('.')] = v
}
return config
}
Object.entries(v).map(([key, value]) => func(value, [...parentKeys, key], config))
return config
}
const requireModules = require.context('./config', false, /config\.ts$/iu)
const localesList = requireModules.keys().map(filePath => {
const component = requireModules(filePath)
return component.default
})
export const i18n = createI18n({ export const i18n = createI18n({
locale: sessionStorage.getItem('layout') locale: sessionStorage.getItem('layout')
? JSON.parse(sessionStorage.getItem('layout') as string).currentLocale ? JSON.parse(sessionStorage.getItem('layout') as string).currentLocale
...@@ -13,11 +47,11 @@ export const i18n = createI18n({ ...@@ -13,11 +47,11 @@ export const i18n = createI18n({
fallbackLocale: 'zh', // set fallback locale fallbackLocale: 'zh', // set fallback locale
messages: { messages: {
zh: { zh: {
baas: Object.assign({}, ...localesList.map(v => v.zh.baas)), ...Object.assign({}, ...localesList.map(v => func(v).zh)),
...zhLocale, ...zhLocale,
}, },
en: { en: {
baas: Object.assign({}, ...localesList.map(v => v.en.baas)), ...Object.assign({}, ...localesList.map(v => func(v).en)),
...enLocale, ...enLocale,
}, },
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment