Изменить базовый язык компонентов пользовательского интерфейса vuetify

#vuetify.js

#vuetify.js

Вопрос:

Например: введите описание изображения здесь Показано в документации : Документация Vuetify

У нас «Элементы на странице» отображаются на английском языке. Если я хочу изменить текст или просто выбрать язык для его перевода, например, на французский, как я могу это сделать?

Ответ №1:

Несмотря на то, что это явно не указано, locale prop, похоже, присутствует во всех компонентах vuetify, так что вы можете его использовать. Смотрите мой пример.

src/components/my-datatable.vue

 <template>
  <v-data-table
    :headers="headers"
    :items="desserts"
    :items-per-page="5"
    locale="fr"
  ></v-data-table>
</template>
  

src/plugins/vuetify.js

 import Vue from 'vue'
import Vuetify from 'vuetify/lib'

Vue.use(Vuetify)

import fr from 'vuetify/src/locale/fr.ts'

Vue.component('my-component', {
  methods: {
    changeLocale () {
      this.$vuetify.lang.current = 'fr'
    },
  },
})

export default new Vuetify({
  lang: {
    locales: { fr },
    current: 'fr',
  },
})
  

Ответ №2:

 <v-data-table :rows-per-page-items="rowOptions" :rows-per-page-text="rowPageText">           
</v-data-table>

  
 data () {
   return {
       rowOptions: [
            5,
            15,
            25,
            { text: "$vuetify.dataIterator.rowsPerPageAll", value: -1 }
        ],
        rowPageText: "Objets par page:"
    }
}
  

Или вы можете захотеть проверить документацию по интернационализации

Ответ №3:

Обновленный ответ => 2022

если вы похожи на меня и не хотите настраивать интернационализацию в конфигурации vuetify, сделайте это вместо этого:

(примечание: я настроил @nuxtjs / i18n и имею доступ к ‘this.$ t ()’ во всем моем приложении. вы можете свободно использовать любой другой текст вместо них.)

для заголовков это просто:

 <v-data-table
  :headers="headers"
>

 data() {     
   headers: [
     { text: this.$t('id'), value: 'id' },
     { text: this.$t('status'), value: 'state' },
     { text: this.$t('title'), value: 'title' },
     { text: this.$t('price'), value: 'amount' },
     { text: this.$t('date'), value: 'time' },
     { text: this.$t('gateway'), value: 'gateway' },
   ]
 }
  

и для реквизитов нижнего колонтитула:

 <v-data-table
  :footer-props="footerProps"
>

data() {
  footerProps: {
      disableItemsPerPage: true,
      itemsPerPageText: this.$t('itemsPerPageText'),
      itemsPerPageAllText: this.$t('all'),
  }
}
  

для меня этого было достаточно, потому что моя таблица была довольно простой.

дополнительные реквизиты нижнего колонтитула см. в документации: https://vuetifyjs.com/en/api/v-data-footer/#props