首页  >  问答  >  正文

使用 Vue-i18n,如何在动态加载消息之前不显示任何内容?

在我们的 Vue 应用程序中,我们动态加载翻译。在它们从服务器到达之前,我们的字符串将显示为代码/表达式。

如果没有加载消息,是否有某种方法告诉 Vue-i18n 默认为空白?或者我可以重写某些内容以返回空字符串吗?

P粉930534280P粉930534280282 天前365

全部回复(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
  • 取消回复