国际化

GitHub在 GitHub 上编辑

在预设模式中注册语言包

预设包中已经包含了其对应插件的语言包,只需要从预设中引入即可。

import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'
import UniverPresetSheetsCoreZhCN from '@univerjs/preset-sheets-core/locales/zh-CN'
import { createUniver, LocaleType, mergeLocales } from '@univerjs/presets'

const { univerAPI } = createUniver({
  locale: LocaleType.ZH_CN,
  locales: {
    [LocaleType.ZH_CN]: mergeLocales(
      UniverPresetSheetsCoreZhCN, 
    ),
  },
  presets: [
    UniverSheetsCorePreset(),
  ],
})

在插件模式中注册语言包

使用插件语言包是一件非常繁琐的事情,你需要从存在语言包的插件中引入对应的语言包,并将它们合并成一个对象传入 Univer 实例。以下是一个示例:

import { LocaleType, mergeLocales, Univer } from '@univerjs/core'
import DesignZhCN from '@univerjs/design/locale/zh-CN'
import SheetsUIZhCN from '@univerjs/sheets-ui/locale/zh-CN'
import UIZhCN from '@univerjs/ui/locale/zh-CN'

const univer = new Univer({
  locale: LocaleType.ZH_CN,
  locales: {
    [LocaleType.ZH_CN]: mergeLocales(
      DesignZhCN, 
      UIZhCN, 
      SheetsUIZhCN, 
    ),
  },
})

注意事项

并非所有插件都包含了语言包,我们会在每个功能的文档对此进行说明。

mergeLocales 方法

mergeLocales 方法用于将多个插件或预设的语言包合并为一个完整的语言包对象,你可以通过以下方式使用它:

import { mergeLocales } from '@univerjs/presets'

// 你可以传入多个语言包对象进行合并
const locales = mergeLocales(
  plugin1Locales,
  plugin2Locales,
  presetLocales,
)
// 也可以传入一个语言包对象数组
const locales = mergeLocales([
  plugin1Locales,
  plugin2Locales,
  presetLocales,
])
import { mergeLocales } from '@univerjs/core'

// 你可以传入多个语言包对象进行合并
const locales = mergeLocales(
  plugin1Locales,
  plugin2Locales,
  presetLocales,
)
// 也可以传入一个语言包对象数组
const locales = mergeLocales([
  plugin1Locales,
  plugin2Locales,
  presetLocales,
])

自定义语言包

Univer 也支持自定义语言包,你可以根据需要自行组装语言包对象并传入 Univer 实例。可供参考的预设语言包一般存放在 <rootDir>/packages/<PLUGIN_NAME>/locale 目录下。

const univer = new Univer({
  locale: 'ja-JP',
  locales: {
    'ja-JP': {
      shortcut: {
        undo: '元に戻す',
        redo: 'やり直す',
      },
    },
  },
})

贡献语言包

Univer 目前提供了以下内置语言包:

  • zh-CN:简体中文
  • en-US:英文
  • zh-TW:繁体中文
  • ru-RU:俄文
  • vi-VN:越南文
  • fa-IR:波斯文
  • fr-FR:法文
  • ko-KR:韩文
  • es-ES:西班牙文

其他的语言尚未支持。我们欢迎来自五湖四海的开发者为 Univer 添加或者改进语言包。

你觉得这篇文档如何?