Przejdź do treści

Internacjonalizacja ​

Tiptapify obsługuje ponad 35 języków od razu po instalacji. Tłumaczenia są zarządzane przez vue-i18n.

Ustawianie domyślnego języka ​

Utwórz instancję vue-i18n i przekaż ją podczas rejestracji wtyczki:

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

Zmiana języka w czasie działania ​

Tiptapify używa Twojej instancji vue-i18n — zmień język przez 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>

Dostępne ustawienia regionalne ​

Obecnie obsługiwane są następujące języki:

KodJęzyk
enangielski
ararabski
bgbułgarski
chchiński
czczeski
deniemiecki
elgrecki
eshiszpański
etestoński
fifiński
frfrancuski
hehebrajski
hihindi
hrchorwacki
huwęgierski
idindonezyjski
itwłoski
jajapoński
kokoreański
lałotewski
ltlitewski
nlniderlandzki
nonorweski
plpolski
ptportugalski
pt-BRportugalski (brazylijski)
rorumuński
rurosyjski
seszwedzki
sksłowacki
slsłoweński
srserbski
thtajski
trturecki
ukukraiński
viwietnamski

Tłumaczenia wygenerowane przez AI

Większość tłumaczeń została wygenerowana przez AI i może zawierać błędy. Jeśli znajdziesz nieprawidłowe tłumaczenie lub chcesz dodać nowy język, zgłoś problem lub skontaktuj się z opiekunem projektu.

Dodawanie własnych tłumaczeń ​

Tiptapify automatycznie scala wbudowane komunikaty językowe z Twoją instancją vue-i18n, gdy przekażesz ją do wtyczki. Możesz rozszerzyć lub nadpisać tłumaczenia przed rejestracją wtyczki:

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

Albo scalić je po utworzeniu instancji i18n:

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

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

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

Języki RTL ​

W przypadku języków RTL, takich jak arabski, upewnij się, że motyw Vuetify obsługuje RTL:

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

Język dla pojedynczej instancji ​

Tiptapify używa globalnie języka vue-i18n Twojej aplikacji. Jeśli potrzebujesz osobnych języków dla poszczególnych instancji, użyj slotów z zakresem (scoped slots) vue-i18n lub Composition API w zakresie danej instancji:

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

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

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

Udostępniono na licencji MIT.