Saltar al contenido

Internacionalización ​

Tiptapify admite más de 35 idiomas de serie. Las traducciones se gestionan mediante vue-i18n.

Establecer el idioma predeterminado ​

Crea una instancia de vue-i18n y pásala al registrar el 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 })

Cambiar el idioma en tiempo de ejecución ​

Tiptapify usa tu instancia de vue-i18n: cambia el idioma con 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>

Idiomas disponibles ​

Actualmente se admiten los siguientes idiomas:

CódigoIdioma
enInglés
arÁrabe
bgBúlgaro
chChino
czCheco
deAlemán
elGriego
esEspañol
etEstonio
fiFinés
frFrancés
heHebreo
hiHindi
hrCroata
huHúngaro
idIndonesio
itItaliano
jaJaponés
koCoreano
laLetón
ltLituano
nlNeerlandés
noNoruego
plPolaco
ptPortugués
pt-BRPortugués (brasileño)
roRumano
ruRuso
seSueco
skEslovaco
slEsloveno
srSerbio
thTailandés
trTurco
ukUcraniano
viVietnamita

Traducciones generadas con IA

La mayoría de las traducciones están generadas con IA y pueden contener errores. Si encuentras una traducción incorrecta o quieres añadir un idioma nuevo, abre una incidencia o contacta con el responsable del proyecto.

Añadir traducciones personalizadas ​

Tiptapify fusiona automáticamente sus mensajes de idioma integrados en tu instancia de vue-i18n cuando se la pasas al plugin. Puedes ampliar o sobrescribir las traducciones antes de registrar el 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 })

O fusionarlas después de crear la instancia de i18n:

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

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

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

Idiomas RTL ​

Para idiomas RTL como el árabe, asegúrate de que tu tema de Vuetify admita RTL:

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

Idioma por instancia ​

Tiptapify usa el idioma de vue-i18n de tu aplicación de forma global. Si necesitas un idioma por instancia, usa los slots con ámbito de vue-i18n o su API de composición dentro del ámbito de la instancia:

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

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

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

Publicado bajo la licencia MIT.