Vai al contenuto

Internazionalizzazione ​

Tiptapify supporta più di 35 lingue già pronte all'uso. Le traduzioni sono gestite tramite vue-i18n.

Impostare la lingua predefinita ​

Crea un'istanza di vue-i18n e passala quando registri il 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 })

Cambiare lingua a runtime ​

Tiptapify usa la tua istanza di vue-i18n: cambia la lingua tramite 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>

Lingue disponibili ​

Al momento sono supportate le seguenti lingue:

CodiceLingua
enInglese
arArabo
bgBulgaro
chCinese
czCeco
deTedesco
elGreco
esSpagnolo
etEstone
fiFinlandese
frFrancese
heEbraico
hiHindi
hrCroato
huUngherese
idIndonesiano
itItaliano
jaGiapponese
koCoreano
laLettone
ltLituano
nlOlandese
noNorvegese
plPolacco
ptPortoghese
pt-BRPortoghese (brasiliano)
roRumeno
ruRusso
seSvedese
skSlovacco
slSloveno
srSerbo
thTailandese
trTurco
ukUcraino
viVietnamita

Traduzioni generate dall'AI

La maggior parte delle traduzioni è generata dall'AI e può contenere errori. Se trovi una traduzione errata o vuoi aggiungere una nuova lingua, apri una issue o contatta il maintainer.

Aggiungere traduzioni personalizzate ​

Tiptapify unisce automaticamente i propri messaggi di localizzazione integrati alla tua istanza di vue-i18n quando la passi al plugin. Puoi estendere o sovrascrivere le traduzioni prima di registrare il 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 })

Oppure unirle dopo aver creato l'istanza di i18n:

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

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

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

Lingue RTL ​

Per le lingue RTL come l'arabo, assicurati che il tuo tema Vuetify supporti RTL:

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

Lingua per istanza ​

Tiptapify usa globalmente la lingua di vue-i18n della tua app. Se ti servono lingue diverse per ogni istanza, usa gli scoped slot di vue-i18n o la composition API nell'ambito dell'istanza:

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

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

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

Rilasciato con licenza MIT.