equal
deleted
inserted
replaced
1 import React from 'react'; |
|
2 |
|
3 import { addLocaleData, IntlProvider } from 'react-intl'; |
|
4 import en from 'react-intl/locale-data/en'; |
|
5 import fr from 'react-intl/locale-data/fr'; |
|
6 |
|
7 |
|
8 export default function setIntl(messagesData, WrappedComponent) { |
|
9 addLocaleData([...en, ...fr]); |
|
10 |
|
11 let language = (navigator.languages && navigator.languages[0]) |
|
12 || navigator.language |
|
13 || navigator.userLanguage; |
|
14 |
|
15 let language6391 = language.toLowerCase().split(/[_-]+/)[0]; |
|
16 |
|
17 if (!(language6391 in messagesData)) { |
|
18 language = 'en'; |
|
19 language6391 = 'en'; |
|
20 } |
|
21 |
|
22 const messages = messagesData[language6391] || messagesData[language] || messagesData.en; |
|
23 |
|
24 return props => ( |
|
25 <IntlProvider |
|
26 locale={language} |
|
27 messages={messages} |
|
28 > |
|
29 <WrappedComponent {...props} /> |
|
30 </IntlProvider> |
|
31 ); |
|
32 } |
|