2014-12-30 15 views
6

Biz, elbette yerelleştirme yapmaya yolu vardır react.js içinde konumlanma üzerine gitmek ama ya tavsiyesini olacağı yer kararında mı? yerelleştirme ve örnek

Denedim yahoo en intl-tepki ama boşuna:

var ReactIntl = require('react-intl') // we did npm install react-intl 
// somewhere in the react component 
render: function() { 
    return (<div><ReactIntl.Number>{600}</ReactIntl.Number></div>); 
} 

hata veriyor: tanımsız

malı '_mockedReactClassConstructor' okunamıyor birkaç saat yine de, bu hatayı gidermek için denemek geçirdi' t çözmek ->

Eğer Sugge olacağını merak react.js

birlikte çalışacağız eğer mozilla tarafından l20n ama emin değilim çalıştı vazgeçmek react.js lokalizasyonu için teşekkürler, teşekkürler! Soruma cevap olarak

+1

evet, dokümantasyon tepki-intl ve ebeveyn sitelerinde yetersizdir. Strugg – Marc

+2

Ayrıca ben hata yahoo, v1.1.0-rc-2 sürümü – Jim

+0

sorunu çözdünüz mü buldu? eğer öyleyse, çözümünüzü gönderir misiniz? tepki-yönlendirici kullanmaya çalışırken aynı hatayla karşılaşıyorum. – fraxture

cevap

0

buna daha kaç ay oldu. Belki orada daha fazla yerelleştirme modülleri var.

en bizim yönlendirici kurulum, şeylere bir kök sayfası ve giriş sayfası (var diyelim: Eğer (biz sadece zorunlu modüller yükü azaltmak kullanın) bu kadar çok modüllerini kullanarak basit bir şey ve bypass yapmak istiyorsanız Fakat, burada düzmece kök sayfa)

  1. bir durum (
  2. Dil algılayıp
  3. nesne t set i18n init) getInitialState içinde i18n çağrıda

    kök dayanmaktadır o i18n devlet işlemek içinde

  4. () bu

render: function() { 
 
    var route; 
 
    if (this.state.configLoaded && this.state.i18n) { 
 
     route = (
 
      <RouteHandler i18n={this.state.i18n} onLanguageChange={this._languageChangedHandler} /> 
 
     ); 
 
    } 
 
    return (
 
     <div> 
 
      <Loading /> 
 
      {route} 
 
     </div> 
 
    ); 
 
}

gibi bir şey kullanmak ve sahne aşağı i18n geçmektedir. ya da isterseniz, miksleri kullanarak.

giriş

this.props.i18n.t('...') 
3

. Yahoo'nun tepki-intlını kullanmamaya karar verdik ama bunun yerine i18next'i kullandık. Üretimimiz için daha istikrarlı ve popüler bir şey kullanmak düşünülürse önemlidir. ne yapabildiğini

sayfanızın kökünde i18next başlatmak ve sahne aracılığıyla aşağı geçmektir. I18next başlatılmadan önce sayfa oluşturmayı önlemek için bir durum kullanın.

0

Ben belki amaçla Tepki-Intl FormattedNumber kullanmak düşünüyorum. Eğer size sadece çeviriler değil Times/Tarih/Döviz vb verdiği i18next kullanırsanız
şeyler, dikkate almak, sen Moment.js gibi ek kütüphaneler gerekir. React-Intl size her şeyi verir. IE < 9 dikkat , sen Intl.js polyfill veya polyfill servisi (https://cdn.polyfill.io/v2/docs/) olması gerekir. Bu polyfill'i sorunlu yüklemesi için webpack'i buldum. :

Son olarak Tepki-Yönlendirici son sürümüyle {React.cloneElement (bir şey} this.props.children, {someExtraProp)} kullanın https://github.com/rackt/react-router/blob/master/UPGRADE_GUIDE.md

Muhtemelen değerli RouteHandler bölümüne bulacaksınız bkz Louçlarınızı/mesajlarınızı görünümlere aktarmak için.

+1

Oh evet ve içeriğiyle içerik aktarımı sahne kullanmaktan çok daha kolay görünüyor – Davet