Chuyển đến nội dung

Đa ngôn ngữ ​

Tiptapify hỗ trợ sẵn hơn 35 ngôn ngữ. Các bản dịch được quản lý thông qua vue-i18n.

Đặt ngôn ngữ mặc định ​

Tạo một instance vue-i18n và truyền vào khi đăng ký plugin:

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 })

Đổi ngôn ngữ khi đang chạy ​

Tiptapify dùng instance vue-i18n của bạn — hãy đổi locale qua 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>

Ngôn ngữ có sẵn ​

Hiện tại hỗ trợ các ngôn ngữ sau:

MãNgôn ngữ
enTiếng Anh
arTiếng Ả Rập
bgTiếng Bulgaria
chTiếng Trung
czTiếng Séc
deTiếng Đức
elTiếng Hy Lạp
esTiếng Tây Ban Nha
etTiếng Estonia
fiTiếng Phần Lan
frTiếng Pháp
heTiếng Do Thái
hiTiếng Hindi
hrTiếng Croatia
huTiếng Hungary
idTiếng Indonesia
itTiếng Ý
jaTiếng Nhật
koTiếng Hàn
laTiếng Latvia
ltTiếng Litva
nlTiếng Hà Lan
noTiếng Na Uy
plTiếng Ba Lan
ptTiếng Bồ Đào Nha
pt-BRTiếng Bồ Đào Nha (Brazil)
roTiếng Romania
ruTiếng Nga
seTiếng Thụy Điển
skTiếng Slovak
slTiếng Slovenia
srTiếng Serbia
thTiếng Thái
trTiếng Thổ Nhĩ Kỳ
ukTiếng Ukraina
viTiếng Việt

Bản dịch do AI tạo

Phần lớn bản dịch do AI tạo ra và có thể có lỗi. Nếu bạn thấy bản dịch sai hoặc muốn thêm ngôn ngữ mới, vui lòng mở một issue hoặc liên hệ người bảo trì.

Thêm bản dịch tùy chỉnh ​

Tiptapify tự động gộp các thông điệp locale có sẵn vào instance vue-i18n của bạn khi bạn truyền nó vào plugin. Bạn có thể mở rộng hoặc ghi đè bản dịch trước khi đăng ký plugin:

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 })

Hoặc gộp sau khi tạo instance i18n:

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

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

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

Ngôn ngữ viết từ phải sang trái (RTL) ​

Với các ngôn ngữ RTL như tiếng Ả Rập, hãy đảm bảo theme Vuetify của bạn hỗ trợ RTL:

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

Locale theo từng instance ​

Tiptapify dùng locale vue-i18n của ứng dụng trên phạm vi toàn cục. Nếu cần locale riêng cho từng instance, hãy dùng scoped slots của vue-i18n hoặc composition API trong phạm vi của instance:

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

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

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

Phát hành theo Giấy phép MIT.