Nevertheless Published Mine


    4.0.18 • Public • Published

    vue-multilanguage: control of languages in vuejs

    We will help you to control the languages in your app for yours components


    # yarn
    yarn add vue-multilanguage
    # npm
    npm install vue-multilanguage --save

    Get Started

    Create the ml.js file to define your multilanguage settings and languages:

    import Vue from 'vue'
    import { MLInstaller, MLCreate, MLanguage } from 'vue-multilanguage'
    export default new MLCreate({
      initial: 'english',
      save: process.env.NODE_ENV === 'production',
      languages: [
        new MLanguage('english').create({
          title: 'Hello {0}!',
          msg: 'You have {f} friends and {l} likes'
        new MLanguage('portuguese').create({
          title: 'Oi {0}!',
          msg: 'Você tem {f} amigos e {l} curtidas'

    More details:

    • MLInstaller: plugin class for install in Vue with Vue.use
    • MLCreate: class to define acl settings
      • initial: first language, for startup with your app
      • save: save current language in localStorage
      • languages: array with your languages supported
    • MLanguage: class with language generator, create your language with it
      • create: method for create language based in object param

    You can define a middleware for execute before all get call. Use this for custom structure app, e.g:

    export default new MLCreate({
      middleware: (component, path) => {
        const newPath = `${component.$}.${path}`
        // you should return newPath
        return newPath

    PS: in example, all $ml.get call go concate path with component name.

    For finish, in your main.js import the ml:

    import Vue from 'vue'
    import App from './App.vue'
    import router from './router'
    import './ml'
    Vue.config.productionTip = false
    new Vue({
      render: h => h(App)

    Use in components

    You can define messages inside your component, use computed propertis with prefix ml

      <div id="app">
        <p v-text="$ml.get('myMessage')" />
    import { MLBuilder } from 'vue-multilanguage'
    export default {
      name: 'app',
      data () {
        return { friends: 5 }
      computed: {
        mlmyMessage () {
          return new MLBuilder('msg').with('f', this.friends).with('l', 406)

    You can also get message direct in template:

    <h1 v-text="$ml.with('VueJS').get('title')" />

    E.g: display 'Hello VueJS'.

    You can get list language in any component using list property:

    	v-for="lang in $ml.list"

    Finish, you can change current language in any component using change method:

    	v-for="lang in $ml.list"


    npm i vue-multilanguage

    DownloadsWeekly Downloads






    Unpacked Size

    18.6 kB

    Total Files


    Last publish


    • leonardovilarinho