Я хочу использовать стандарт ICU для своего i18n в своем приложении для реагирования. Я хочу сохранить мои языковые файлы, например http://userguide.icu-project.org/locale/localizing#TOC-.txt-resource-bundles:
de {
key1 { "Deutsche Sprache "
"schwere Sprache" }
key2 { "Düsseldorf" }
}
Я нашел эту библиотеку http://formatjs.io/react/. http://formatjs.io/ поддерживает ICU, однако я не могу найти хороший пример, как подключить мои языковые файлы к моему приложению.
Я проходил их учебник, и, похоже, я мог использовать компонент <FormattedMessage>
. Так, например,
var intlData = {
"locales": "en-US",
"messages": {
"photos": "{name} took {numPhotos, plural,\n =0 {no photos}\n =1 {one photo}\n other {# photos}\n} on {takenDate, date, long}.\n"
}
};
React.render(
<Component {...intlData} />,
document.getElementById('example')
);
то в некотором компоненте I
...
render: function () {
return (
<p>
<FormattedMessage
message={this.getIntlMessage('photos')}
name="Annie"
numPhotos={1000}
takenDate={Date.now()} />
</p>
);
}
Моя самая большая проблема заключается в том, как преобразовать мой языковой файл, например.
en-US {
photos { "{name} took {numPhotos, plural,\n =0 {no photos}\n =1 {one photo}\n other {# photos}\n} on {takenDate, date, long}.\n" }
}
в формате:
var intlData = {
"locales": "en-US",
"messages": {
"photos": "{name} took {numPhotos, plural,\n =0 {no photos}\n =1 {one photo}\n other {# photos}\n} on {takenDate, date, long}.\n"
}
};
Есть ли какой-либо парсер/конвертер?