реагировать на изменение языка с флагом - PullRequest
0 голосов
/ 15 ноября 2018

Я установил интернационализацию в своем приложении.Это учитывает изменение языка браузера.Я также хотел бы принять во внимание изменение языка с флагами.

Я создал свои флаги, которые я поместил в логин make-заголовок моей страницы.

class Header extends React.Component {

  constructor(props) {
  super(props);    
}

handleClick(codeLanguage) {
   console.log(codeLanguage);
}

render() {

return (
      <IconButton>
        <Flag country="fr" 
          height='30px' 
          witdh="30px" 
          onClick={() => {this.handleClick("fr")}} />
      </IconButton>
      <IconButton>
        <Flag country="gb" 
          height='30px' 
          witdh="30px"
          onClick={() => {this.handleClick("en")}} />
      </IconButton>
);
}
}

Мой индекс содержит коддля интернационализации:

const localeData = {
 "fr": messages_fr,
 "en": messages_en
};

addLocaleData([...en, ...fr]);

const language = (navigator.languages && navigator.languages[0]) || 
navigator.language || navigator.userLanguage;

const languageWithoutRegionCode = language.toLowerCase().split(/[_-]+/)[0];

const messages = localeData[languageWithoutRegionCode] || 
localeData[language] || localeData.fr;

const hist = createBrowserHistory();

ReactDOM.render(
 <IntlProvider locale={language} messages={messages}>
  <Router history={hist}>
   <Switch>
    {indexRoutes.map((prop, key) => {
     if (prop.redirect)
      return <Redirect from={prop.path} to={prop.to} key={key} />;
     return <Route path={prop.path} component={prop.component} key={key} />;
    })}
   </Switch>
  </Router>
 </IntlProvider>,
 document.getElementById("root")
);
serviceWorker.unregister();

Как указать моему index.js изменить язык в соответствии с выбором флага

...