Задать вопрос
riddlr
@riddlr

Как не показывать элемент, если перевода не существует (i18n с Vue/Nuxt)?

Вопрос об vue-i18n либо модуле nuxt-i18n

Если перевода данных не существует, как не показывать вообще ничего?

Просто отключение fallbackLocale все равно показывает название ключа, вместо данных.

Например

<h3>{{ $t('anotherMessage') }}</h3>

Это существует только на англ. Если я переключу на другой язык браузер показывает мне anotherMessage. Нафига, блин? Я не хочу ничего показывать.

Может есть способ проверки существует ли перевод? Но это тоже плохой вариант, цеплять v-if каждому элементу с локализацией выглядит полным идиотизмом.
  • Вопрос задан
  • 279 просмотров
Подписаться 1 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Frontend-разработчик
    9 месяцев
    Далее
  • Loftschool
    Профессия Веб-разработчик
    7 месяцев
    Далее
  • Avenue
    Javascript. Frontend
    5 месяцев
    Далее
Решения вопроса 1
yarkov
@yarkov Куратор тега Vue.js
Помог ответ? Отметь решением.
Но это тоже плохой вариант, цеплять v-if каждому элементу с локализацией выглядит полным идиотизмом.

Тем не менее это единственный вариант. По крайней мере мне в свое время не удалось это победить. Придется лепить проверки типа такого:
<h3 v-if="'anotherMessage' in i18n.messages">{{ $t('anotherMessage') }}</h3>

UPD: Рабочий вариант:
v-if="'anotherMessage' in $i18n.messages[$i18n.locale]"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы