Maison  >  Questions et réponses  >  le corps du texte

En utilisant Vue-i18n, comment puis-je ne rien afficher tant que le message n'est pas chargé dynamiquement ?

Dans notre application Vue, nous chargeons les traductions de manière dynamique. Nos chaînes apparaîtront sous forme de codes/expressions avant d'arriver du serveur.

Existe-t-il un moyen de dire à Vue-i18n de rester vide par défaut si aucun message n'est chargé ? Ou puis-je remplacer quelque chose pour renvoyer une chaîne vide ?

P粉930534280P粉930534280282 Il y a quelques jours367

répondre à tous(1)je répondrai

  • P粉087951442

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

    Vous pouvez y parvenir en utilisant l'attribut VueI18n 初始化中添加 fallbackLocale.

    Comme dans la démo ci-dessous, locale ja 不可用,因此,它加载 fallbackLocale (j'ai ajouté une chaîne vide à toutes les propriétés de la locale par défaut).

    Démo en direct :

    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>

    répondre
    0
  • Annulerrépondre