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

Как вывести локализацию во всех компонентах React?

Здравствуйте.

Решил добавить на проект локализацию с помощью библиотеки - https://github.com/stefalda/react-localization

Подключить в определённом компоненте смог, всё работает. Но, не могу понять как подключить локализацию один раз, чтоб работала во всех компонентах, а то если в каждом компоненте добавлять:

import LocalizedStrings from 'react-localization';

let strings = new LocalizedStrings({
  en:{
    how:"How do you want your egg today?",
    boiledEgg:"Boiled egg",
    softBoiledEgg:"Soft-boiled egg",
    choice:"How to choose the egg"
  },
  it: {
    how:"Come vuoi il tuo uovo oggi?",
    boiledEgg:"Uovo sodo",
    softBoiledEgg:"Uovo alla coque",
    choice:"Come scegliere l'uovo"
  }
 });


class OldChatt extends React.PureComponent {
  constructor(props) {
    super(props);
    this.state = {
      language: 'en'
    }

    this.handleLanguageChange = this.handleLanguageChange.bind(this);
  }

  handleLanguageChange(e) {
    e.preventDefault();
    let lang = e.target.value;
    this.setState(prevState => ({
      language: lang
    }))
  }

render(){
strings.setLanguage(this.state.language);

return (

<div>
        Change Language: <select onChange={this.handleLanguageChange}>
          <option value="en">En- English</option>
          <option value="it">It- Italian</option>
        </select>
        <br /><br />
        {strings.how}
      </div>


и т.д.


Будет большая каша. Свожусь к тому, что стоит создать ещё компонент, который бы можно было выводить в других, но не пойму как бы это правильно реализовать.

При переключение

<option value="en">En- English</option>
<option value="it">It- Italian</option>


Из массиваlet strings = new LocalizedStrings приходит перевод в {strings.how}
  • Вопрос задан
  • 142 просмотра
Подписаться 1 Средний Комментировать
Решения вопроса 1
@grinat
https://ryandrewjohnson.github.io/react-localize-r... или создать синглтон, и подписываться на изменения языка синглтона(через колбэк), последний предпочтительней, поскольку судя по всему эти либы крайне бедны на функционал.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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