Bladeren bron

rebase: rebase v2

陈帅 7 jaren geleden
bovenliggende
commit
81774c23d8
1 gewijzigde bestanden met toevoegingen van 30 en 17 verwijderingen
  1. 30 17
      src/router.js

+ 30 - 17
src/router.js

@@ -1,39 +1,52 @@
 import React from 'react';
 import { routerRedux, Route, Switch } from 'dva/router';
-import { Spin } from 'antd';
+import { LocaleProvider, Spin } from 'antd';
 import dynamic from 'dva/dynamic';
-import { LocalComponent } from './locale/localeContext';
+import { addLocaleData, IntlProvider } from 'react-intl';
 import { getRouterData } from './common/router';
 import Authorized from './utils/Authorized';
 import { getQueryPath } from './utils/utils';
 import styles from './index.less';
+import enLocale from './locale/en-US';
+import cnLocale from './locale/zh-CN';
 
 const { ConnectedRouter } = routerRedux;
 const { AuthorizedRoute } = Authorized;
-
 dynamic.setDefaultLoadingComponent(() => {
   return <Spin size="large" className={styles.globalSpin} />;
 });
 
+function getLang() {
+  return (window.localStorage && localStorage.getItem('locale')) ||
+    (navigator.language || navigator.browserLanguage).toLowerCase() === 'en-us'
+    ? 'en-US'
+    : 'zh-CN';
+}
+
 function RouterConfig({ history, app }) {
   const routerData = getRouterData(app);
   const UserLayout = routerData['/user'].component;
   const BasicLayout = routerData['/'].component;
-
+  const appLocale = getLang() === 'zh-CN' ? cnLocale : enLocale;
+  addLocaleData(appLocale.data);
   return (
-    <LocalComponent>
-      <ConnectedRouter history={history}>
-        <Switch>
-          <Route path="/user" component={UserLayout} />
-          <AuthorizedRoute
-            path="/"
-            render={props => <BasicLayout {...props} />}
-            authority={['admin', 'user']}
-            redirectPath="/user/login"
-          />
-        </Switch>
-      </ConnectedRouter>
-    </LocalComponent>
+    <IntlProvider locale={appLocale.locale} messages={appLocale.messages}>
+      <LocaleProvider locale={appLocale.antd}>
+        <ConnectedRouter history={history}>
+          <Switch>
+            <Route path="/user" component={UserLayout} />
+            <AuthorizedRoute
+              path="/"
+              render={props => <BasicLayout {...props} />}
+              authority={['admin', 'user']}
+              redirectPath={getQueryPath('/user/login', {
+                redirect: window.location.href,
+              })}
+            />
+          </Switch>
+        </ConnectedRouter>
+      </LocaleProvider>
+    </IntlProvider>
   );
 }