web-dev-qa-db-ja.com

react、formatjs、react-intl用のi18n

反応アプリでi18nのICU標準を使用したい。 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')
);

それからいくつかのコンポーネントで私は持っています

...
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"
    }
};

パーサー/コンバーターはありますか?

13
DeBoer

このリポジトリを確認する必要があります https://github.com/gpbl/isomorphic5 。 intlサブディレクトリには、さまざまな言語の入力ファイルがあります。

また、どのタイプの構文解析を採用しているかを確認できます。お役に立てれば。

6
piratz