使用 Vue-i18n,如何在动态加载消息之前不显示任何内容?
P粉930534280
P粉930534280 2024-01-10 17:02:40
0
1
422

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

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

P粉930534280
P粉930534280

全部回复(1)
P粉087951442

您可以通过在 VueI18n 初始化中添加 fallbackLocale 属性来实现此目的。

正如下面的演示中,语言环境 ja 不可用,因此,它加载 fallbackLocale (我在默认语言环境的所有属性中添加了空字符串)。 p>

现场演示

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>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板