vuefity翻译v-text-field标签

时间:2018-02-04 11:39:53

标签: vue.js vuejs2 nuxt.js vuetify.js

我需要翻译vuetify text-field(v-text-field)的标签(和占位符)。代码看起来像这样

<template>(...)
<v-text-field
  label="$t('common.nameLabel')"
  v-model="registerName"
  required
     ></v-text-field>
<vuetify-google-autocomplete
  ref="registerAddress"
  id="map"
  dark
  label="registerAddressLabel"
  google-api-key="Xyz"
  v-on:placechanged="getAddressData"
  >
  </vuetify-google-autocomplete>
(...)</template>
<script>
   import VuetifyGoogleAutocomplete from 'vuetify-google-autocomplete'
   export default {
     data () {
       return {
         registerAddressLabel () {
           return this.$t('common.addressLabel')
         },
         registerAddress: '',
         registerEmail: '',
         registerPassword: '',
         registerName: ''
       }
    },
    methods: {
      getAddressData (addressData, placeholderResultData) {

      }
    },
    components: {
      VuetifyGoogleAutocomplete
    }
  }
</script>

在第一种情况下(也尝试使用自动完成)标签正好($t('common.nameLabel')作为字符串)。所以它似乎并没有作为一个功能处理。 是否可以通过这种方式翻译所有标签?

2 个答案:

答案 0 :(得分:7)

您需要使用v-bind(或冒号速记)来传递JavaScript值,否则它只会传递字符串文字:

<v-text-field
  v-bind:label="$t('common.nameLabel')"
  v-model="registerName"
  required></v-text-field>

这里有一个小小的JSFiddle:https://jsfiddle.net/9rjpaz4L/

答案 1 :(得分:0)

你也可以不用 v-bind 这个词,只用冒号:

<v-text-field
  :label="$t('common.nameLabel')"
  v-model="registerName"
  required>
</v-text-field>