Tiqa / redux-polyglot

Polyglot.js bindings for Redux
MIT License
58 stars 13 forks source link

translate enhancer can take a mapPhrasesToProps function in parameter #60

Open guillaumearm opened 7 years ago

guillaumearm commented 7 years ago

As we discussed with @JalilArfaoui :

/*
const phrases = {
  catalog: {
    product: {
      counter: '%{smart_count} product |||| %{smart_count} products',
    },
  },
}
*/
const mapPhrasesToProps = (p, ownProps) => ({
    nbProducts: p.t('counter', ownProps.nbProducts), // nbProducts ownProps will be overwritten
});
const TranslatedDummy = translate(mapPhrasesToProps, { polyglotScope: 'catalog.product' })(DummyComponent);
// <TranslatedDummy nbProducts={42} />
// DummyComponent will receive a new nbProducts props as a string : '42 products'

/*
  DummyComponent.propTypes.nbProducts === string
  TranslatedComponent.propTypes.nbProducts === number
*/