Skip to content
Snippets Groups Projects
Unverified Commit 0733048d authored by Anton Georgiev's avatar Anton Georgiev Committed by GitHub
Browse files

Merge pull request #6464 from KDSBrowne/2.2-fix-broken-locales

Fix broken locales on load
parents 3fbcb84b 7e304e08
No related branches found
No related tags found
No related merge requests found
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { IntlProvider } from 'react-intl';
import { IntlProvider, addLocaleData } from 'react-intl';
import Settings from '/imports/ui/services/settings';
import LoadingScreen from '/imports/ui/components/loading-screen/component';
// currently supported locales.
import en from 'react-intl/locale-data/en';
import uk from 'react-intl/locale-data/uk';
import zh from 'react-intl/locale-data/zh';
import ru from 'react-intl/locale-data/ru';
import de from 'react-intl/locale-data/de';
import fr from 'react-intl/locale-data/fr';
import pt from 'react-intl/locale-data/pt';
import fa from 'react-intl/locale-data/fa';
import tr from 'react-intl/locale-data/tr';
import ja from 'react-intl/locale-data/ja';
import km from 'react-intl/locale-data/km';
import es from 'react-intl/locale-data/es';
import id from 'react-intl/locale-data/id';
import el from 'react-intl/locale-data/el';
import it from 'react-intl/locale-data/it';
import bg from 'react-intl/locale-data/bg';
addLocaleData([
...en,
...uk,
...zh,
...ru,
...de,
...fr,
...pt,
...fa,
...tr,
...ja,
...km,
...es,
...id,
...el,
...it,
...bg,
]);
const propTypes = {
locale: PropTypes.string,
children: PropTypes.element.isRequired,
......@@ -29,14 +67,18 @@ class IntlStartup extends Component {
}
componentWillMount() {
this.fetchLocalizedMessages(this.props.locale);
const { locale } = this.props;
this.fetchLocalizedMessages(locale);
}
componentWillUpdate(nextProps) {
if (!this.state.fetching
&& this.state.normalizedLocale
&& nextProps.locale.toLowerCase() !== this.state.normalizedLocale.toLowerCase()) {
this.fetchLocalizedMessages(nextProps.locale);
const { fetching, normalizedLocale } = this.state;
const { locale } = nextProps;
if (!fetching
&& normalizedLocale
&& locale.toLowerCase() !== normalizedLocale.toLowerCase()) {
this.fetchLocalizedMessages(locale);
}
}
......@@ -69,9 +111,12 @@ class IntlStartup extends Component {
}
render() {
return this.state.fetching ? <LoadingScreen /> : (
<IntlProvider locale={DEFAULT_LANGUAGE} messages={this.state.messages}>
{this.props.children}
const { fetching, normalizedLocale, messages } = this.state;
const { children } = this.props;
return fetching ? <LoadingScreen /> : (
<IntlProvider locale={normalizedLocale} messages={messages}>
{children}
</IntlProvider>
);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment