在脚本中使用vue-i18n

时间:2019-10-27 16:33:55

标签: vue.js vue-i18n

我有一个简单的项目codesandbox

我使用/vue-i18n

Hello World 模板:

<h1>{{msg}}</h1>

脚本

data() {
    return {
      msg: `{{ $t("welcomeMsg") }}`
    }
  }

插件/i18n.js:

const messages = {
  en: {
    welcomeMsg: "Welcome to Your Vue.js App",
  },
  es: {
    welcomeMsg: "Bienvenido a tu aplicación Vue.js",
  }
};

问题:如何从msg: {{$ t(“ welcomeMsg”)}}}之类的脚本中使用vue-i18n?

附言: this.$t("welcomeMsg")这是可行的,但可以翻译!

1 个答案:

答案 0 :(得分:1)

对于ES6模板字符串,您需要使用${ }而不是{{ }}语法:

msg: `${this.$t("welcomeMsg")}`

但是这里不需要使用模板字符串(除非您想在消息之前或之后添加其他文本);只需这样做:

msg: this.$t("welcomeMsg")

最后,如果您不打算修改msg,那么它应该是计算属性:

computed: {
  msg() {
    return this.$t("welcomeMsg")
  }
}