Localization in Vue.js with i18n

Posted by

Vue.js is a popular JavaScript framework that is commonly used for building user interfaces and single-page applications. One of the key features of Vue.js is its support for internationalization (i18n) and localization, which allows developers to easily translate their applications into multiple languages.

To implement i18n localization in Vue.js, developers can use the vue-i18n library, which provides a simple and flexible way to manage translations and language switching in their applications. In this article, we will discuss how to use Vue.js with vue-i18n to create a multilingual web application.

To get started, first, include the vue-i18n library in your project by adding the following script tag to your HTML file:

“`html

“`

Next, create a new Vue instance and set up the i18n plugin by passing in a messages object that contains the translations for your application. Here is an example of how to set up i18n in a Vue.js component:

“`html

{{ $t(‘hello’) }}

const messages = {
en: {
hello: ‘Hello, World!’
},
es: {
hello: ‘¡Hola, Mundo!’
}
};

const i18n = new VueI18n({
locale: ‘en’,
fallbackLocale: ‘en’,
messages
});

const app = new Vue({
i18n,
el: ‘#app’
});

“`

In the example above, we have defined two language translations for the “hello” key in the messages object for English and Spanish. The i18n object is then initialized with a default locale of ‘en’ and a fallback locale of ‘en’. Finally, we create a new Vue instance with the i18n plugin and bind it to the #app element.

To switch between languages in the application, you can use the $i18n.locale property to set the current locale dynamically. For example, you can create a dropdown menu with language options and use a method to change the locale when a user selects a different language:

“`html

{{ $t(‘hello’) }}

English
Spanish

const app = new Vue({
i18n,
el: ‘#app’,
methods: {
changeLanguage(event) {
this.$i18n.locale = event.target.value;
}
}
});

“`

In this way, you can easily implement i18n localization in your Vue.js application using the vue-i18n library. By following these steps, you can create a multilingual web application that provides a seamless user experience for users in different regions around the world.

0 0 votes
Article Rating
12 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
@RivnatZille
2 months ago

Hey, thanks a lot for this tutorial, it gave me a really good insight on how to use i18n.
But, I'm having a bit of an issue.
I use the script setup CompositionAPI in my project, and there are instances when I return a string from a computed property.
Do you know a way for me to return the equivalent $t() from inside a computed property?
Thanks a lot!

@olivieris
2 months ago

@weiliu-ms8un
2 months ago

Thank you boy Your beard looks so sexy

@flolegend6402
2 months ago

thanks alot <3

@fatihkurt3671
2 months ago

thanks, wish you success, more videos about vue please 😀

@Lactovacilo939
2 months ago

$t not working for me, idk why

@thydevdom
2 months ago

Awesome stuff, sir! Thank you!

@TahaBolat-sn6ib
2 months ago

Thank you so much! You literally helped me everything i asked for

@Gandobilis
2 months ago

thanks.

@HUSTLER-yh6eo
2 months ago

thx

@mehdiescan6967
2 months ago

thank you brother

@user-vf7pc4tn9z
2 months ago

расскажи про сео оптимизацию а то говорят что vue не индексируется нормально