Wie kann ich mit Vue-i18n nichts anzeigen, bis die Nachricht dynamisch geladen wird?
P粉930534280
P粉930534280 2024-01-10 17:02:40
0
1
425

In unserer Vue-Anwendung laden wir Übersetzungen dynamisch. Unsere Zeichenfolgen werden als Codes/Ausdrücke angezeigt, bevor sie vom Server eintreffen.

Gibt es eine Möglichkeit, Vue-i18n anzuweisen, standardmäßig leer zu bleiben, wenn keine Nachricht geladen wird? Oder kann ich etwas überschreiben, um eine leere Zeichenfolge zurückzugeben?

P粉930534280
P粉930534280

Antworte allen(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>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage