riddlr
@riddlr

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

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

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

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

Например

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

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

Может есть способ проверки существует ли перевод? Но это тоже плохой вариант, цеплять v-if каждому элементу с локализацией выглядит полным идиотизмом.
  • Вопрос задан
  • 242 просмотра
Решения вопроса 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]"
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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