aboutsummaryrefslogtreecommitdiffstats
path: root/src/I18n.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/I18n.js')
-rw-r--r--src/I18n.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/src/I18n.js b/src/I18n.js
new file mode 100644
index 000000000..ae3ba2fa9
--- /dev/null
+++ b/src/I18n.js
@@ -0,0 +1,28 @@
1import React, { Component } from 'react';
2import PropTypes from 'prop-types';
3import { inject, observer } from 'mobx-react';
4import { IntlProvider } from 'react-intl';
5
6import { oneOrManyChildElements } from './prop-types';
7import translations from './i18n/translations';
8import UserStore from './stores/UserStore';
9
10@inject('stores') @observer
11export default class I18N extends Component {
12 render() {
13 const { stores, children } = this.props;
14 const { locale } = stores.app;
15 return (
16 <IntlProvider {...{ locale, key: locale, messages: translations[locale] }}>
17 {children}
18 </IntlProvider>
19 );
20 }
21}
22
23I18N.wrappedComponent.propTypes = {
24 stores: PropTypes.shape({
25 user: PropTypes.instanceOf(UserStore).isRequired,
26 }).isRequired,
27 children: oneOrManyChildElements.isRequired,
28};