2016-04-15 19 views
7

में प्रतिक्रिया-intl अनुवादित संदेशों का उपयोग करें, मैं अपने आवेदन में कई भाषाओं का समर्थन करता हूं और इसके लिए प्रतिक्रिया-intl का उपयोग करता हूं। मेरे पास रेडक्स मिडलवेयर है जहां मैं सर्वर पर कॉल करता हूं और त्रुटि के मामले में मैं यूआई पर एक त्रुटि दिखाना चाहता हूं।रेडक्स मिडलवेयर

मुझे पता है कि मैं कुछ ऐसा कर सकते हैं:

1) संदेश कुंजी के साथ मिडलवेयर से एक कार्रवाई प्रेषण:

<FormattedMessage id={this.props.message_error_key}/> 
:

{type: SHOW_ERROR, message: 'message_error_key'} 

2) मेरे में घटक उपयोग प्रतिक्रिया

लेकिन क्या मिडलवेयर से पहले से अनुवादित संदेश के साथ कार्रवाई करने का कोई तरीका है?

{type: SHOW_ERROR, message: [translated_message_should_be_here]} 

उत्तर

2

मुझे नहीं लगता कि आप मिडलवेयर से सीधे formatMessage उपयोग कर सकते हैं क्योंकि यह केवल injectIntl के माध्यम से घटकों के संपर्क में लगता है। आप शायद अपने उपयोग के मामले का वर्णन करने के लिए कोई समस्या दर्ज कर सकते हैं, और शायद घटकों के बाहर formatMessage() तक पहुंचने के लिए एक सादा जावास्क्रिप्ट एपीआई माना जाएगा, लेकिन अब यह उपलब्ध नहीं लगता है।

0

स्थानीयकृत संदेशों में एक reducer के डिफ़ॉल्ट स्थिति को प्रारंभ करने का प्रयास करते समय मैं कुछ हद तक समान समस्या में भाग गया। ऐसा लगता है कि घटकों के बाहर प्रतिक्रिया-इंटेल के किसी भी हिस्से का उपयोग करना कुछ भी नहीं है जिसे एपीआई में माना गया है। दो विचारों:

  1. जो एक आवेदन चौड़ा सिंगलटन के माध्यम से यह componentWillReceiveProps में उपलब्ध बनाता <IntlProvider> नीचे एक कस्टम घटक में इंजेक्ट intl। अगली जगह से सिंगलटन तक पहुंचें और intl.formatMessage और अन्य का उपयोग करें।

  2. घटकों का उपयोग करना संभव है जो प्रतिक्रिया-intl आवश्यक कार्यक्षमता को लागू करने का हिस्सा है। इस मामले में yahoo/intl-messageformat और yahoo/intl-format-cache पर विचार किया जा सकता है। यह निश्चित रूप से बॉक्स के बाहर प्रतिक्रिया-इंटेल के साथ अच्छी तरह से एकीकृत नहीं होगा।

संबंधित मुद्दे