react intl 国际化
2018-06-24 00:57:47来源:未知 阅读 ()
方案描述:由于采用单页面,所以按钮切换时会刷新页面
1、安装 react-intl babel-plugin-react-intl json-loader
npm i react-intl babel-plugin-react-intl json-loader --save-dev
2、修改webpack.config.js 与 webpack.production.config.js
entry: { en_US: path.resolve(__dirname, './en-US.js'), zh_Hans_CN: path.resolve(__dirname, './zh-CN.js'), index: path.resolve(__dirname, 'react/inxex.js') }, output: { path: __dirname + '/build', publicPath: '/build', filename: '[name].js', chunkFilename: "[id].[name].js" },
<script src="/build/en-US.js"></script> <script src="/build/index.js"></script>
index-zh.html同理
en.json
{ "Home.Title": "username", "Home.BUtton": "login" }
zh.json { "Home.Title": "用户名", "Home.BUtton": "登录" }
import antdEn from 'antd/lib/locale-provider/en_US'; import appLocaleData from 'react-intl/locale-data/en'; import MSGS from './locals/en.json'; import MSGS1 from './M/en.json' window.appLocale = { messages: { ...MSGS, ...MSGS1 }, antd: antdEn, locale: 'en-US', data: appLocaleData, };
import ReactDOM from 'react-dom'; import React from 'react'; import App from '../component/App'; import { LocaleProvider } from 'antd'; import { addLocaleData, IntlProvider } from 'react-intl'; const appLocale = window.appLocale; addLocaleData(appLocale.data); ReactDOM.render( <LocaleProvider locale={appLocale.antd}> <IntlProvider locale={appLocale.locale} messages={appLocale.messages}> <App /> </IntlProvider> </LocaleProvider>, document.getElementById('react-content') );
import React from 'react'; import { DatePicker, Pagination, Table, Icon } from 'antd'; import { FormattedMessage, defineMessages } from 'react-intl'; import InjectExample from './InjectExample'; const messages = defineMessages({ datePicker: { id: 'App.datePicker.title', defaultMessage: '日期选择', }, name: { id: 'App.talbe.name', defaultMessage: '姓名', } }); class App extends React.Component { componentDidMount() { console.log('componentDidMount') } render() {return (<div style={{ margin: 20 }}> <div style={{ margin: 10 }}> <p><a href="index.html">中文</a></p> <p><a href="index-en.html">english</a></p> </div> <div style={{ margin: 10 }}> <FormattedMessage {...messages.datePicker} />: <DatePicker /> </div> </div>); } } export default App;
参考demo: https://github.com/yangstar/intl-example
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 前端笔记之React(八)上传&图片裁切 2019-08-14
- 前端笔记之React(七)redux-saga&Dva&路由 2019-08-14
- 前端笔记之React(六)ES6的Set和Map&immutable和Ra 2019-08-14
- 前端笔记之React(五)Redux深入浅出 2019-08-14
- 前端笔记之React(四)生命周期&Virtual DOM和Diff 2019-08-14
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash