2015-07-27 4 views
13

Ich möchte ICU-Standard für meine i18n in meiner Reaktion App verwenden. Ich möchte meine Sprachdateien wie http://userguide.icu-project.org/locale/localizing#TOC-.txt-resource-bundles speichern:i18n für reagieren, formatjs, react-intl

de { 
    key1 { "Deutsche Sprache " 
     "schwere Sprache" } 
    key2 { "Düsseldorf" } 
} 

Ich habe diese Bibliothek gefunden http://formatjs.io/react/. http://formatjs.io/ unterstützt ICU, aber ich kann kein gutes Beispiel finden, wie man meine Sprachdateien mit meiner App verbindet.

Ich ging durch ihr Tutorial und es scheint, ich könnte die Komponente <FormattedMessage> verwenden. So z.B.

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') 
); 

dann in irgendeiner Komponente habe ich

... 
render: function() { 
     return (
      <p> 
       <FormattedMessage 
        message={this.getIntlMessage('photos')} 
        name="Annie" 
        numPhotos={1000} 
        takenDate={Date.now()} /> 
      </p> 
     ); 
    } 

Mein größtes Problem ist, wie meine Sprachdatei konvertieren z.B.

en-US { 
    photos { "{name} took {numPhotos, plural,\n =0 {no photos}\n =1 {one photo}\n other {# photos}\n} on {takenDate, date, long}.\n" } 
} 

in Format:

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

Gibt es einen Parser/Konverter überhaupt?

+0

Warum kämpfen mit icu Nachrichtenformat, wenn Sie https://react.i18next.com/ haben können;) – jamuhl

Antwort

6

Sie sollten dieses Repository https://github.com/gpbl/isomorphic500 überprüfen. Im Unterverzeichnis intl befinden sich die Eingabedateien für die verschiedenen Sprachen.

Sie können auch sehen, welche Art von Parsing sie übernehmen! Hoffe das hilft.

+0

Danke für das Zeigen dieser Beispielanwendung heraus. Dies ist ein sehr gutes Beispiel für die Verwendung von FormatJS in einer Flux/Fluxible-Anwendung – djskinner