suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Wie kann ich mit Vue-i18n nichts anzeigen, bis die Nachricht dynamisch geladen wird?

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粉930534280P粉930534280326 Tage vor413

Antworte allen(1)Ich werde antworten

  • 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>

    Antwort
    0
  • StornierenAntwort