Інтернаціоналізація
Tiptapify підтримує понад 35 мов з коробки. Переклади керуються через vue-i18n.
Встановлення локалі за замовчуванням
Створіть екземпляр vue-i18n і передайте його під час реєстрації плагіна:
// 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():
<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, коли ви передаєте його плагіну. Ви можете розширити або перевизначити переклади до реєстрації плагіна:
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:
const i18n = createI18n({
legacy: false,
locale: 'en',
})
i18n.global.mergeLocaleMessage('en', customTranslations)
app.use(i18n)
app.use(TiptapifyPlugin, { i18n })Мови з письмом справа наліво (RTL)
Для RTL-мов, як-от арабська, переконайтеся, що ваша тема Vuetify підтримує RTL:
const vuetify = createVuetify({
locale: {
rtl: true,
},
})Локаль для окремого екземпляра
Tiptapify використовує локаль vue-i18n вашого застосунку глобально. Якщо потрібні окремі локалі для екземплярів, використовуйте scoped-слоти vue-i18n або composition API в межах екземпляра:
<script setup lang="ts">
import { useI18n } from 'vue-i18n'
const { t, locale } = useI18n({ useScope: 'local' })
</script>
<template>
<Tiptapify :placeholder="t('editor.placeholder')" />
</template>