Vue.js vuetify i18n:ツールバーアイテムを動的に変換する方法は?

user762579

コンポーネントとビューの文字列をローカライズすることに問題はありませんが、ツールバーのアイテム(そしてもちろんナビゲーションドロワー内の同じアイテム)を動的にローカライズする方法を見つけることに固執しています。

現在、それらはapp.vueにmenuItems [i] .titleとして表示されています

    <v-toolbar-items class="hidden-xs-only">
      <v-btn flat :to="menuItems[0].link">
        <v-icon left>{{ menuItems[0].icon }}</v-icon>
        <span>{{ menuItems[0].title }}</span>
      </v-btn>

スクリプトを使用して:

    <script>
    export default {
      data () {
        return {
          appName: 'myAPP',
          sideNav: false,
          menuItems: [
            { icon: 'home', title: 'Home', link: '/home' },
            { icon: 'info', title: 'About', menu: [{ title: 'Company', link: '/company' }, { title: 'Office', link: '/office' }] },
            { icon: 'people', title: 'Members', menu: [], link: '/members' },
            { icon: 'local_library', title: 'Blog', link: '/blog' },
            { icon: 'local_grocery_store', title: 'Shopping', link: '/shopping' }
          ]
        }
      },
      methods: {
          switchLocale: function (newLocale) {
            this.$store.dispatch('switchI18n', newLocale)
          }
        }
      }
    </script>

計算値を使用する必要がありますか?または、テンプレートで直接$ t()を使用しますか?

フィードバック、アドバイス、リンクを歓迎

更新

main.js

Vue.filter('translate', function (value) {
  if (!value) return ''
  value = 'lang.views.global.' + value.toString()
  return i18n.t(value)
})

ロケール/ i18n / en_US

{
  "views": {
    "global": {
      "Home": "Home",
      "Section1": "Section 1",
      ..
スフィンクス

Vueは、一般的なテキストのフォーマットに役立つフィルター提供します。

だから私はそれがあなたの選択の一つになると思います。

上記のリンクをクリックして、ガイドに従ってフィルターを設定できます。

編集:

Vueの作者が言ったように、Vueフィルターはこのコンテキストに依存すべきではないことに気づきましただから私の答えを以下のように更新しました:

その場合、コードは次のようになります。

// create vue-i18n instance
const i18n = new VueI18n({
  locale: getDefaultLanguage(),
  messages: langs
})

// create global filter
Vue.filter('myLocale', function (value) {
  return i18n.t(value)
})

ビューまたはコンポーネント:

<template>
    <v-toolbar-items class="hidden-xs-only">
      <v-btn flat :to="menuItems[0].link">
        <v-icon left>{{ menuItems[0].icon }}</v-icon>
        <span>{{ menuItems[0].title | myLocale }}</span>
      </v-btn>
</template> 

<script>
export default {
  data () {
    return {
      appName: 'myAPP',
      sideNav: false,
      menuItems: [
        { icon: 'home', title: 'Home', link: '/home' },
        { icon: 'info', title: 'About', menu: [{ title: 'Company', link: '/company' }, { title: 'Office', link: '/office' }] },
        { icon: 'people', title: 'Members', menu: [], link: '/members' },
        { icon: 'local_library', title: 'Blog', link: '/blog' },
        { icon: 'local_grocery_store', title: 'Shopping', link: '/shopping' }
      ]
    }
  },
  filters: {
      myLocaleWhichNotWork: function (value) {
        return this.$t(value) // this won't work because filters should not be dependent on this context
      }
    }
  }
</script>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Vue.js2.5以降でVuetifyでVue-IMaskを使用する方法

分類Dev

Vue.js 2.6、Vue CLI 4、Vuetify2.2で2つのアイテム値を計算する方法

分類Dev

vuetify vue.jsアプリで<v-navigation-drawer>を分離する方法は?

分類Dev

Vue.js-カードの角を丸くする方法をVuetifyしますか?

分類Dev

(Vuetify.jsを使用して)Vueアプリに検証付きのシンプルなフォームを実装する方法は?

分類Dev

Vue.js + v-for内でv-data-tableを使用してVuetify

分類Dev

Vue + Vuetify Single FileCompnonentのツールバーに画像を追加する

分類Dev

動的に生成されたvueテーブルをvuetifyする方法は?

分類Dev

ツールバーをappbarの中央と上部に配置する方法(vue、vuetify)

分類Dev

vuetify-jsonschema形式のVUEのJSにカスタム検証を追加する方法はありますか?

分類Dev

Fresh project fail to compile after installing vuetify in vue.js

分類Dev

can I use Vuetify in nativescript-vue?

分類Dev

Vue.js-子コンポーネントの計算されたプロパティにアクセスする方法(Vuetifyデータテーブル)

分類Dev

vue.jsをvuetifyするためのポップアップモーダルを追加します

分類Dev

Vue js-ダイアログから回答を取得して、Vueルーター+ Vuetifyを使用したナビゲーションを確認します

分類Dev

Vue + Vuetify + vue-router:ページに基づいてツールバーのコンテンツを変更する

分類Dev

vue.js vuetify:v-parallaxはローカルファイルでは機能しませんか?

分類Dev

Vue.js-アイコンクリックでvuetifyデータテーブルを使用して行固有のデータを表示するにはどうすればよいですか?

分類Dev

ストーリーブックVue.jsにVuetifyを追加しようとしています(「@ / plugins / vuetify」を解決できません)

分類Dev

Vue js - Get Answer from Dialog to confirm navigation w/ Vue Router + Vuetify

分類Dev

Vuetify Nuxt.js:カルーセルアイコンにルーティングリンクを追加する方法

分類Dev

Vue.jsを使用しているときにVuetifyカードの単語を強調表示するにはどうすればよいですか?

分類Dev

use Vuetify's version of material-icons inside a vue.js web component target

分類Dev

Vueファイルにi18nをインポートする方法

分類Dev

Vue.js SPAのテーマを動的に変更する最良の方法は?

分類Dev

vue / vuetifyは、v-text-fieldプロパティを動的に変更します

分類Dev

Vue / vuetify、ルーターリンクをタブに追加する方法

分類Dev

Vue / Vuetifyアプリのズーム時にLeafletマップのサイズ変更を防ぐ方法

分類Dev

Vue.js Vuetify.js-不明なカスタム要素:<v-list-item>、<v-list-item-title>コンポーネントを正しく登録しましたか?

Related 関連記事

  1. 1

    Vue.js2.5以降でVuetifyでVue-IMaskを使用する方法

  2. 2

    Vue.js 2.6、Vue CLI 4、Vuetify2.2で2つのアイテム値を計算する方法

  3. 3

    vuetify vue.jsアプリで<v-navigation-drawer>を分離する方法は?

  4. 4

    Vue.js-カードの角を丸くする方法をVuetifyしますか?

  5. 5

    (Vuetify.jsを使用して)Vueアプリに検証付きのシンプルなフォームを実装する方法は?

  6. 6

    Vue.js + v-for内でv-data-tableを使用してVuetify

  7. 7

    Vue + Vuetify Single FileCompnonentのツールバーに画像を追加する

  8. 8

    動的に生成されたvueテーブルをvuetifyする方法は?

  9. 9

    ツールバーをappbarの中央と上部に配置する方法(vue、vuetify)

  10. 10

    vuetify-jsonschema形式のVUEのJSにカスタム検証を追加する方法はありますか?

  11. 11

    Fresh project fail to compile after installing vuetify in vue.js

  12. 12

    can I use Vuetify in nativescript-vue?

  13. 13

    Vue.js-子コンポーネントの計算されたプロパティにアクセスする方法(Vuetifyデータテーブル)

  14. 14

    vue.jsをvuetifyするためのポップアップモーダルを追加します

  15. 15

    Vue js-ダイアログから回答を取得して、Vueルーター+ Vuetifyを使用したナビゲーションを確認します

  16. 16

    Vue + Vuetify + vue-router:ページに基づいてツールバーのコンテンツを変更する

  17. 17

    vue.js vuetify:v-parallaxはローカルファイルでは機能しませんか?

  18. 18

    Vue.js-アイコンクリックでvuetifyデータテーブルを使用して行固有のデータを表示するにはどうすればよいですか?

  19. 19

    ストーリーブックVue.jsにVuetifyを追加しようとしています(「@ / plugins / vuetify」を解決できません)

  20. 20

    Vue js - Get Answer from Dialog to confirm navigation w/ Vue Router + Vuetify

  21. 21

    Vuetify Nuxt.js:カルーセルアイコンにルーティングリンクを追加する方法

  22. 22

    Vue.jsを使用しているときにVuetifyカードの単語を強調表示するにはどうすればよいですか?

  23. 23

    use Vuetify's version of material-icons inside a vue.js web component target

  24. 24

    Vueファイルにi18nをインポートする方法

  25. 25

    Vue.js SPAのテーマを動的に変更する最良の方法は?

  26. 26

    vue / vuetifyは、v-text-fieldプロパティを動的に変更します

  27. 27

    Vue / vuetify、ルーターリンクをタブに追加する方法

  28. 28

    Vue / Vuetifyアプリのズーム時にLeafletマップのサイズ変更を防ぐ方法

  29. 29

    Vue.js Vuetify.js-不明なカスタム要素:<v-list-item>、<v-list-item-title>コンポーネントを正しく登録しましたか?

ホットタグ

アーカイブ