Интернационализация
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>