Перейти до вмісту

Інтернаціоналізація ​

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 чи зв'яжіться з мейнтейнером.

Додавання власних перекладів ​

Tiptapify автоматично зливає свої вбудовані повідомлення локалей у ваш екземпляр vue-i18n, коли ви передаєте його плагіну. Ви можете розширити або перевизначити переклади до реєстрації плагіна:

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 вашого застосунку глобально. Якщо потрібні окремі локалі для екземплярів, використовуйте scoped-слоти vue-i18n або composition 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.