Aller au contenu

Internationalisation ​

Tiptapify prend en charge plus de 35 langues dès l'installation. Les traductions sont gérées via vue-i18n.

Définir la locale par défaut ​

Créez une instance vue-i18n et transmettez-la lors de l'enregistrement du 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 })

Changer de locale à l'exécution ​

Tiptapify utilise votre instance vue-i18n — changez la locale via 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>

Langues disponibles ​

Les langues suivantes sont actuellement prises en charge :

CodeLangue
enAnglais
arArabe
bgBulgare
chChinois
czTchèque
deAllemand
elGrec
esEspagnol
etEstonien
fiFinnois
frFrançais
heHébreu
hiHindi
hrCroate
huHongrois
idIndonésien
itItalien
jaJaponais
koCoréen
laLetton
ltLituanien
nlNéerlandais
noNorvégien
plPolonais
ptPortugais
pt-BRPortugais (brésilien)
roRoumain
ruRusse
seSuédois
skSlovaque
slSlovène
srSerbe
thThaï
trTurc
ukUkrainien
viVietnamien

Traductions générées par IA

La plupart des traductions sont générées par IA et peuvent contenir des erreurs. Si vous trouvez une traduction incorrecte ou souhaitez ajouter une nouvelle langue, ouvrez une issue ou contactez le mainteneur.

Ajouter des traductions personnalisées ​

Tiptapify fusionne automatiquement ses messages de locale intégrés dans votre instance vue-i18n lorsque vous la transmettez au plugin. Vous pouvez étendre ou surcharger les traductions avant d'enregistrer le 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 })

Ou les fusionner après la création de l'instance i18n :

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

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

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

Langues RTL ​

Pour les langues RTL comme l'arabe, assurez-vous que votre thème Vuetify prend en charge le RTL :

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

Locale par instance ​

Tiptapify utilise globalement la locale vue-i18n de votre application. Si vous avez besoin de locales par instance, utilisez les slots à portée de vue-i18n ou l'API Composition dans la portée de l'instance :

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

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

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

Publié sous licence MIT.