UNPKG

admin-on-rest-fr05t1k

Version:

A frontend Framework for building admin applications on top of REST services, using ES6, React and Material UI

35 lines (27 loc) 994 B
import { Children, PropTypes } from 'react'; import Polyglot from 'node-polyglot'; import { connect } from 'react-redux'; import { compose, withContext } from 'recompose'; import defaultMessages from './messages'; const withI18nContext = withContext({ translate: PropTypes.func.isRequired, locale: PropTypes.string.isRequired, }, ({ locale, messages = {} }) => { const userMessages = messages[locale] || {}; const polyglot = new Polyglot({ locale, phrases: { ...defaultMessages, ...userMessages }, }); return { locale, translate: polyglot.t.bind(polyglot), }; }); const TranslationProvider = ({ children }) => Children.only(children); TranslationProvider.propTypes = { locale: PropTypes.string.isRequired, messages: PropTypes.object, children: PropTypes.element, }; const mapStateToProps = state => ({ locale: state.locale }); export default compose(connect(mapStateToProps), withI18nContext)(TranslationProvider);