bogdan_uman
@bogdan_uman
шлЫмазл неукЪ-поцЪ

Как правильно сделать мультиязычность?

Здравствуйте. Подскажите пожалуйста. Как правильно сделать мультизычность. У меня идея. Сделать в Vuex -> state -> language. Ну а дальше в каждом компоненте, делать атрибуты через computed. Например
v-text-field(
  :label='username_label'
  v-model='username'
)

 computed: {
    username_label( ) { return this.$store.state.language =='ru' ? 'Имя' : 'Name' }
}

Или есть другие варианты? Спасибо.
  • Вопрос задан
  • 335 просмотров
Решения вопроса 2
yarkov
@yarkov Куратор тега Vue.js
Помог ответ? Отметь решением.
vue-i18n
Ответ написан
Комментировать
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Про плагин уже сказали, но можно еще самому навелосипедить типа такого:
делаем стору:
{
  state: {
    currentLang: 'RU',
    translations: {
      RU: {
        label1: 'some ru text',
        label2: 'some ru text',
      },
      EN: {
        label1: 'some en text',
        label2: 'some en text',
      }
    }
  },
  getters: {
    translate: (state) => (label) => {
      return state.translations[state.currentLang][label]
    }
  }
}


Потом обращаться в компоненте: this.$store.getters.translate('label1')
Т.е. все переводы будут у вас в этой сторе, что должно быть удобно. Также можно подкрутить, чтобы можно было какие-то параметры в строку передавать, чтобы динамически подставлять какие-то значения в нее.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы