title: TypeError: Cannot read property 'apply' of undefined on Vue-i18n
body: <p>I am using Vue-i18n currently for the project.</p>
  
  <p>From what I learned, all the words that are to be translated need to use <code>$t</code>.</p>
  
  <p>Is there any way to change <code>$t</code> to something else instead? Maybe some method to overwrite?</p>
  
  <p>For example, instead of: <code>{{ $t('name') }}</code></p>
  
  <p>Change it to: <code>{{ $ba('name') }}</code></p>
  
  <hr>
  
  <p>I managed to do it using @Alex method, but over <a href="https://github.com/kazupon/vue-i18n/blob/f2b8a1024d8a0772ada501f5eac21d0471b0a35d/dist/vue-i18n.esm.js" rel="nofollow noreferrer">i18n</a>.</p>
  
  <p>But if I changed return parameters as well (from <code>$t</code> to <code>$ba</code>), there will be an error <code>TypeError: Cannot read property 'apply' of undefined</code>.</p>
  
  <p>Is there any way to solve this?</p>
  
  <pre><code>function extend (Vue) {
  Vue.prototype.$ba = function (key) {
      var values = [], len = arguments.length - 1;
      while ( len-- &gt; 0 ) values[ len ] = arguments[ len + 1 ];
  
      var i18n = this.$i18n;
      return i18n._ba.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))
    };
  };
  </code></pre>