|
@@ -1,4 +1,4 @@
|
|
|
-import React from 'react';
|
|
|
|
|
|
|
+import React, {Component} from 'react';
|
|
|
import ReactDOM from 'react-dom';
|
|
import ReactDOM from 'react-dom';
|
|
|
import './index.css';
|
|
import './index.css';
|
|
|
import App from './components/app/App'
|
|
import App from './components/app/App'
|
|
@@ -7,8 +7,8 @@ import * as serviceWorker from './serviceWorker';
|
|
|
import ApolloClient from "apollo-boost";
|
|
import ApolloClient from "apollo-boost";
|
|
|
import { ApolloProvider } from "react-apollo";
|
|
import { ApolloProvider } from "react-apollo";
|
|
|
|
|
|
|
|
-//如果浏览器没有自带intl,则需要在使用npm安装intl之后添加如下代码
|
|
|
|
|
import { IntlProvider,addLocaleData } from 'react-intl';
|
|
import { IntlProvider,addLocaleData } from 'react-intl';
|
|
|
|
|
+//如果浏览器没有自带intl,则需要在使用npm安装intl之后添加如下代码
|
|
|
// import intl from 'intl';
|
|
// import intl from 'intl';
|
|
|
import zh from 'react-intl/locale-data/zh';
|
|
import zh from 'react-intl/locale-data/zh';
|
|
|
import en from 'react-intl/locale-data/en';
|
|
import en from 'react-intl/locale-data/en';
|
|
@@ -19,40 +19,59 @@ addLocaleData([...en,...zh]);
|
|
|
|
|
|
|
|
const client = new ApolloClient({
|
|
const client = new ApolloClient({
|
|
|
// uri: "http://service-eucrnpse-1254337200.ap-guangzhou.apigateway.myqcloud.com/release/graphql"
|
|
// uri: "http://service-eucrnpse-1254337200.ap-guangzhou.apigateway.myqcloud.com/release/graphql"
|
|
|
- uri: "http://localhost:3000/graphql"
|
|
|
|
|
|
|
+ uri: "http://localhost:4000/graphql"
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
let browserLanguage = (navigator.language || navigator.browserLanguage).toLowerCase().split('-')[0];
|
|
let browserLanguage = (navigator.language || navigator.browserLanguage).toLowerCase().split('-')[0];
|
|
|
-sessionStorage.setItem("language",browserLanguage);
|
|
|
|
|
-
|
|
|
|
|
-function chooseLocale(language) {
|
|
|
|
|
- // console.log('language',language);
|
|
|
|
|
- let locale,messages;
|
|
|
|
|
- switch(language){
|
|
|
|
|
- case 'en':
|
|
|
|
|
- locale = 'en';
|
|
|
|
|
- messages = en_US;
|
|
|
|
|
- return {locale,messages};
|
|
|
|
|
-
|
|
|
|
|
- case 'zh':
|
|
|
|
|
- locale = 'zh';
|
|
|
|
|
- messages = zh_CN;
|
|
|
|
|
- return {locale,messages};
|
|
|
|
|
-
|
|
|
|
|
- default:
|
|
|
|
|
- locale = 'zh';
|
|
|
|
|
- messages = zh_CN;
|
|
|
|
|
- return {locale,messages};
|
|
|
|
|
|
|
+
|
|
|
|
|
+class MainApp extends Component{
|
|
|
|
|
+ constructor() {
|
|
|
|
|
+ super();
|
|
|
|
|
+ sessionStorage.setItem("language",browserLanguage);
|
|
|
|
|
+ this.state = {
|
|
|
|
|
+ nowLanguage: sessionStorage.getItem("language")
|
|
|
|
|
+ };
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ changeLanguage = (language) => {
|
|
|
|
|
+ console.log("changeLanguage",language);
|
|
|
|
|
+ this.setState({language});
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ chooseLocale = (language)=> {
|
|
|
|
|
+ console.log('language',language);
|
|
|
|
|
+ let locale,messages;
|
|
|
|
|
+ switch(language){
|
|
|
|
|
+ case 'en':
|
|
|
|
|
+ locale = 'en';
|
|
|
|
|
+ messages = en_US;
|
|
|
|
|
+ return {locale,messages};
|
|
|
|
|
+
|
|
|
|
|
+ case 'zh':
|
|
|
|
|
+ locale = 'zh';
|
|
|
|
|
+ messages = zh_CN;
|
|
|
|
|
+ return {locale,messages};
|
|
|
|
|
+
|
|
|
|
|
+ default:
|
|
|
|
|
+ locale = 'zh';
|
|
|
|
|
+ messages = zh_CN;
|
|
|
|
|
+ return {locale,messages};
|
|
|
|
|
+ }
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ render(){
|
|
|
|
|
+ let {nowLanguage} = this.state;
|
|
|
|
|
+ let {locale,messages} = this.chooseLocale(nowLanguage);
|
|
|
|
|
+ return(
|
|
|
|
|
+ <ApolloProvider client={client}>
|
|
|
|
|
+ <IntlProvider locale={locale} messages={messages} >
|
|
|
|
|
+ <App changeLanguage={()=>this.changeLanguage}/>
|
|
|
|
|
+ </IntlProvider>
|
|
|
|
|
+ </ApolloProvider>
|
|
|
|
|
+ )
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
-let language = sessionStorage.getItem("language");
|
|
|
|
|
-
|
|
|
|
|
-ReactDOM.render(
|
|
|
|
|
- <ApolloProvider client={client}>
|
|
|
|
|
- <IntlProvider locale={chooseLocale(language).locale} messages={chooseLocale(language).messages} >
|
|
|
|
|
- <App />
|
|
|
|
|
- </IntlProvider>
|
|
|
|
|
- </ApolloProvider>, document.getElementById('root')
|
|
|
|
|
-);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ReactDOM.render(<MainApp />, document.getElementById('root'));
|
|
|
|
|
|
|
|
serviceWorker.unregister();
|
|
serviceWorker.unregister();
|