@alenov
Программист

Можно ли в плагине Vue использовать $t (Vue I18n)?

Vue CLI, приложение на однофайловых компонентах.
Vue 2.x, Vue i18n

Создаю плагин, который будет являться глобальной библиотекой функций, до которых можно дотянуться из любого компонента. Например, нужно из разных компонент запрашивать дату, в которой месяц - в текстовом формате, и месяц нужно переводить на текущий язык. Вопрос такой: можно ли как-то прямо в плагине обращаться к транслятору $t?
Например, вот так не работает:
export default {
  install (Vue) {
    const fn = {
      getBirthLabel (year, month, day) {
        let label = ''
        if (day) label += `${day} `
        if (month) label += `${this.$t('month')} `
        if (year) label += year
        return label
      }
    }
    Vue.prototype.$f = fn
  }
}

Пытался передать $t в функцию:
getBirthLabel (year, month, day, t) {
        let label = ''
        if (day) label += `${day} `
        if (month) label += `${t('month')} `
        if (year) label += year
        return label
      }

- не получилось.
  • Вопрос задан
  • 178 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Aleks_Ko
A что если в этом случаи первую роль отвести
Intl.DateTimeFormat
https://developer.mozilla.org/ru/docs/Web/JavaScri...

Как-то так
- сделать фильтр к дате;
- в фильтре поместить Intl.DateTimeFormat и там менять нужную локаль уже с помощью vue 18

Со сменой локали будет меняться и формат даты + название месяца должно быть на другом языке
Ответ написан
Ваш ответ на вопрос

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

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