【发布时间】:2020-03-31 03:07:31
【问题描述】:
我目前正在为该项目使用 Vue-i18n。
据我所知,所有要翻译的词都需要使用$t。
有什么办法可以将$t 改为别的东西吗?也许有一些方法可以覆盖?
例如,代替:{{ $t('name') }}
改成:{{ $ba('name') }}
我设法使用@Alex 方法做到了,但超过了i18n。
但是如果我也更改了返回参数(从$t 到$ba),就会出现错误TypeError: Cannot read property 'apply' of undefined。
有没有办法解决这个问题?
function extend (Vue) {
Vue.prototype.$ba = function (key) {
var values = [], len = arguments.length - 1;
while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];
var i18n = this.$i18n;
return i18n._ba.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))
};
};
【问题讨论】:
标签: vue.js vuejs2 internationalization vue-component vue-i18n