Configurando i18n con Vue3 y Vite

Posted by








Cómo configurar i18n + Vue3 + Vite

Cómo configurar i18n + Vue3 + Vite

En este artículo, te mostraremos cómo configurar la internacionalización (i18n) en una aplicación Vue3 utilizando Vite como el bundler.

Pasos para configurar i18n + Vue3 + Vite

  1. Instalar los paquetes necesarios. Para ello, ejecuta el siguiente comando en tu terminal:

  2. npm install vue-i18n@9

  3. Crea un archivo de configuración para i18n. Puedes llamarlo “i18n.js” y agregar el siguiente código:

  4. import { createI18n } from 'vue-i18n'

    const messages = {
    en: {
    message: {
    hello: 'Hello, World!'
    }
    },
    es: {
    message: {
    hello: '¡Hola, Mundo!'
    }
    }
    }

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

    export default i18n

  5. En el archivo main.js, importa la configuración de i18n y úsalo para inicializar la app:

  6. import { createApp } from 'vue'
    import App from './App.vue'
    import i18n from './i18n'

    createApp(App).use(i18n).mount('#app')

  7. En el archivo App.vue, usa la instancia de i18n para mostrar los textos en el idioma correspondiente:


Conclusión

En resumen, configurar la internacionalización en una aplicación Vue3 con Vite es un proceso sencillo que requiere la instalación de la librería vue-i18n y la creación de un archivo de configuración. Una vez hecho esto, puedes utilizar la instancia de i18n para mostrar los textos en el idioma correspondiente.


0 0 votes
Article Rating
8 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Pablo Sirera
7 months ago

Link al repositorio ⬇️

https://github.com/pablosirera/vue-i18n-example

Nikoolass07
7 months ago

Hay un error con el resolve dentro de la configuración del plugin en el archivo de vite.config.js. La solución:

VueI18nPlugin({

include: fileURLToPath(new URL('./src/locales/**', import.meta.url))

})

Cristian Devian
7 months ago

thanks

Alejandro López Cardo
7 months ago

Muy buen video Pablo. Breve pero explicativo. Una duda, siguiendo los mismos pasos, en mi proyecto aparece el error 'Unresolved function or method $t() ' en las vistas vue cuando uso la variable global. En la ejecución funciona todo perfectamente. Comparando con tu repo, lo único diferente que puedo apreciar es que en el import 'import { createI18n } from 'vue-i18n';' a mi me aparece más de una opción. ¿Podría ser eso?

Gumi
7 months ago

Muchas gracias por el aporte. Aunque me surge una duda, como podría usar la variable $t o el useI18n en el router de mi aplicación? Lo he intentado de las dos maneras sin éxito, me sale mensaje de error en la consola de que tiene que usarse en setup(). Saludos

Celia Taroncher
7 months ago

Muy grande, tienes nueva suscriptora

Victor Chalian
7 months ago

Muy buen trabajo Pablo. Clara diferencia a tener en cuenta al configurar i18n + vite

Juanma Cano
7 months ago

Gracias Pablo, me ayudó mucho cómo montarlo bien y evitar errores que me daba vite, gracias al plugin.