跳到正文

国际化 ​

Tiptapify 开箱即支持 35+ 种语言。翻译通过 vue-i18n 管理。

设置默认语言 ​

创建一个 vue-i18n 实例,并在注册插件时传入:

typescript
// main.ts
import { createI18n } from 'vue-i18n'
import TiptapifyPlugin from 'tiptapify'
import 'tiptapify/style.css'

const i18n = createI18n({
  legacy: false,
  locale: 'en',
})

app.use(i18n)
app.use(TiptapifyPlugin, { i18n })

在运行时切换语言 ​

Tiptapify 使用你的 vue-i18n 实例——通过 useI18n() 切换语言:

vue
<script setup lang="ts">
import { useI18n } from 'vue-i18n'

const { locale } = useI18n()

const languages = [
  { code: 'en', label: 'English' },
  { code: 'de', label: 'Deutsch' },
  { code: 'fr', label: 'Français' },
  { code: 'es', label: 'Español' },
  { code: 'ru', label: 'Русский' },
]
</script>

<template>
  <div>
    <v-select
      v-model="locale"
      :items="languages"
      item-title="label"
      item-value="code"
      label="Language"
    />

    <Tiptapify placeholder="Start writing..." />
  </div>
</template>

可用语言 ​

目前支持以下语言:

代码语言
en英语
ar阿拉伯语
bg保加利亚语
ch中文
cz捷克语
de德语
el希腊语
es西班牙语
et爱沙尼亚语
fi芬兰语
fr法语
he希伯来语
hi印地语
hr克罗地亚语
hu匈牙利语
id印度尼西亚语
it意大利语
ja日语
ko韩语
la拉脱维亚语
lt立陶宛语
nl荷兰语
no挪威语
pl波兰语
pt葡萄牙语
pt-BR葡萄牙语(巴西)
ro罗马尼亚语
ru俄语
se瑞典语
sk斯洛伐克语
sl斯洛文尼亚语
sr塞尔维亚语
th泰语
tr土耳其语
uk乌克兰语
vi越南语

AI 生成的翻译

大部分翻译由 AI 生成,可能存在错误。如果你发现翻译有误,或想添加新语言,请提交 issue或联系维护者。

添加自定义翻译 ​

将 vue-i18n 实例传给插件时,Tiptapify 会自动把其内置的语言消息合并到该实例中。你可以在注册插件之前扩展或覆盖翻译:

typescript
import { createI18n } from 'vue-i18n'
import TiptapifyPlugin from 'tiptapify'
import 'tiptapify/style.css'

const i18n = createI18n({
  legacy: false,
  locale: 'en',
  messages: {
    // Custom translations take precedence over Tiptapify's built-in ones
    en: {
      toolbar: {
        bold: 'Make bold',
        italic: 'Make italic',
      },
    },
  },
})

app.use(i18n)
app.use(TiptapifyPlugin, { i18n })

或者在创建 i18n 实例之后再合并:

typescript
const i18n = createI18n({
  legacy: false,
  locale: 'en',
})

i18n.global.mergeLocaleMessage('en', customTranslations)

app.use(i18n)
app.use(TiptapifyPlugin, { i18n })

RTL 语言 ​

对于阿拉伯语等 RTL 语言,请确保你的 Vuetify 主题支持 RTL:

typescript
const vuetify = createVuetify({
  locale: {
    rtl: true,
  },
})

按实例设置语言 ​

Tiptapify 在全局范围内使用你应用的 vue-i18n 语言环境。如果需要按实例设置语言,请在该实例的作用域内使用 vue-i18n 的作用域插槽或组合式 API:

vue
<script setup lang="ts">
import { useI18n } from 'vue-i18n'

const { t, locale } = useI18n({ useScope: 'local' })
</script>

<template>
  <Tiptapify :placeholder="t('editor.placeholder')" />
</template>

基于 MIT 许可证发布。