Vue-localez is an addon to add support for multiple languages.
- Has support for Intl
Installing Vue Localization is a pretty simple process
npm install vue-localez
yarn add vue-localez
var Vue = require('vue');
var vueLocalez = require('vue-localez');
vueLocalez.requireAll(require.context(`./lang`, true, /\.json$/))
Vue.use(vueLocalez, { // Options
lang: 'en', // lang
extension: 'json', // language resource
})
└── lang
├── en
| ├──error.json
| └──messages.json
├── id
| ├──error.json
| └──messages.json
└── fr
├──error.json
└──messages.json
lang/id/messages.json
{
"greeting": "Halo {name}"
}
lang/en/messages.json
{
"greeting": "Hello {name}"
}
lang/fr/messages.json
{
"greeting": "Bonjour {name}"
}
$locale.message('message.greeting', { name : "Waldi Irawan" })
// returns
// id -> Halo Waldi Irawan
// en -> Hello Waldi Irawan
// fr -> Bonjour Waldi Irawan
yourcomponent.vue
<h1>{{ $locale.message('message.greeting', { name : "Waldi Irawan" }) }}</h1>
Results :
<!-- id -->
<h1>Halo Waldi Irawan</h1>
<!-- en -->
<h1>Halo Waldi Irawan</h1>
<!-- fr -->
<h1>Halo Waldi Irawan</h1>
// inside vue instance
this.$locale.for('id') // 'id' is iso code country