这是从react-intl wiki
看一下下面的代码修改的一个例子,在<IntlProvider>
你需要在messages={{post.title: "Hello World", post.body: "Amazing Content"}}
道具通过。这将是您从构建脚本中翻译过来的键的对象。
将区域设置切换到'en'将加载默认消息。 addLocaleData添加数据来转换数字和日期格式,而不是字符串。
import React, {PropTypes} from 'react';
import ReactDOM from 'react-dom';
import {addLocaleData} from 'react-intl';
import en from 'react-intl/locale-data/en';
import fr from 'react-intl/locale-data/fr';
import es from 'react-intl/locale-data/es';
import pt from 'react-intl/locale-data/pt'
addLocaleData([...en, ...fr, ...es, ...pt]);
import {
injectIntl,
IntlProvider,
FormattedRelative,
FormattedMessage
} from 'react-intl';
const PostDate = injectIntl(({date, intl}) => (
<span title={intl.formatDate(date)}>
<FormattedRelative value={date}/>
</span>
));
const App = ({post}) => (
<div>
<h1>{post.title}</h1>
<p><PostDate date={post.date}/></p>
<div>{post.body}</div>
</div>
);
ReactDOM.render(
<IntlProvider locale={'pt'} messages={{post.title: "Olá Mundo", post.body: "conteúdo surpreendente"}}>
<App
post={{
title: <FormattedMessage id='post.title' defaultMessage='Hello, World!'} />,
date: new Date(1459913574887),
body: <FormattedMessage id='post.body' defaultMessage='Amazing Content!'} />,
}}
/>
</IntlProvider>,
document.getElementById('container')
);
你弄明白了一些例子,请分享一下如果你已经完成或者发现了一个基本的例子,使用了reac-intl,因为我也面临着与你相同的问题 – iamsaksham