国际化
Cosey 组件默认使用中文,如果你希望使用其他语言,你可以参考下面的方案。
语言配置
launch 函数配置项 i18n 用于配置多语言。
ts
import dayjsZhCn from 'dayjs/locale/zh-cn';
import coseyZhCn from 'cosey/locale/lang/zh-cn';
import appZhCn from '@/lang/zh-cn';
launch(app, {
i18n: {
messages: [
{
value: 'zh-cn',
label: '简体中文',
dayjs: dayjsZhCn,
cosey: coseyZhCn,
app: appZhCn,
},
],
},
});你至少需要导入三个语言文件:cosey、Dayjs和应用语言文件。
不配置,或者配置不超过1个语言,则不显示页面右上角语言选择下拉菜单。
如果需要配置多个语言,只需往 i18n.messages 数组添加即可。
词条合并
同一语言下的 cosey 与 app 会合并成一份词条:vue-i18n 的 t() 和组件内部用的 useLocale().t() 读的是同一个对象。
- 应用词条优先,框架的
co.*只补应用没写的键; - 所以页面里可以直接写
t('co.common.noData'),不必再区分两套翻译; - 在
app语言包里写co.*还可以覆盖框架文案,覆盖后组件里也一起生效。
ts
// app 语言包
export default {
co: {
common: {
noData: '这里还没有内容', // 覆盖框架的「暂无数据」
},
},
};支持的语言列表
- 简体中文(zh-cn)
- 美国英语(en)
- 阿拉伯语(ar)
- 葡萄牙语(pt)
- 巴西葡萄牙语(pt-br)
如果你需要使用其他的语言,欢迎贡献 PR,只需在 这里 添加一个语言配置文件即可。
自定义翻译
cosey 内置了 vue-i18n,菜单栏、面包屑导航、标签栏等地方都使用 t() 方法进行翻译;实际项目中,只需要传递正确的语言文件对象的键名即可。
例如:
ts
{
path: 'users',
meta: {
title: 'user.userManagement',
},
}