首頁  >  問答  >  主體

使用 Vue-i18n,如何在動態載入訊息之前不顯示任何內容?

在我們的 Vue 應用程式中,我們動態載入翻譯。在它們從伺服器到達之前,我們的字串將顯示為代碼/表達式。

如果沒有載入訊息,是否有某種方法告訴 Vue-i18n 預設為空白?或者我可以重寫某些內容以返回空字串嗎?

P粉930534280P粉930534280282 天前370

全部回覆(1)我來回復

  • P粉087951442

    P粉0879514422024-01-11 09:05:44

    您可以透過在 VueI18n 初始化中新增 fallbackLocale 屬性來實現此目的。

    正如下面的演示中,語言環境 ja 不可用,因此,它加載 fallbackLocale (我在預設語言環境的所有屬性中添加了空字串)。

    現場示範

    #
    const messages = {
      en: {
        message: {
          tokyo: 'Tokyo',
          newyork: 'New York',
          london: 'London'
        }
      },
      default: {
        message: {
          tokyo: '',
          newyork: '',
          london: ''
        }
      }
    }
    const i18n = new VueI18n({
      locale: 'ja',
      fallbackLocale: 'default',
      messages,
    })
    new Vue({
      i18n,
      data: {cities: ['tokyo', 'newyork', 'london']}
    }).$mount('#app')
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/vue-i18n/8.14.1/vue-i18n.min.js"></script>
    <div id="app">
      <ul>
        <li
          v-for="city in cities"
          :key="city">
          {{city}}: {{ $t("message." + city) }}
        </li>
      </ul>
    </div>

    回覆
    0
  • 取消回覆