Skip to content

国际化 ​

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', 
  },
}

基于 MIT 许可发布