Name: babel-plugin-react-intl
Owner: Yahoo Inc.
Description: Extracts string messages from React components that use React Intl.
Created: 2015-08-20 19:03:35.0
Updated: 2018-01-17 10:53:46.0
Pushed: 2017-12-11 13:26:43.0
Homepage: http://formatjs.io/react/
Size: 75
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Extracts string messages for translation from modules that use React Intl.
Note: This Babel plugin works with React Intl v2.x, and 1.x of this plugin works with Babel 5, 2.x works with Babel 6.
m install babel-plugin-react-intl
This Babel plugin only visits ES6 modules which import
React Intl.
The default message descriptors for the app's default language will be extracted from: defineMessages()
, <FormattedMessage>
, and <FormattedHTMLMessage>
; all of which are named exports of the React Intl package.
If a message descriptor has a description
, it'll be removed from the source after it's extracted to save bytes since it isn't used at runtime.
.babelrc
(Recommended).babelrc
lugins": [
["react-intl", {
"messagesDir": "./build/messages/"
}]
messagesDir
: The target location where the plugin will output a .json
file corresponding to each component from which React Intl messages were extracted. If not provided, the extracted message descriptors will only be accessible via Babel's API.
enforceDescriptions
: Whether message declarations must contain a description
to provide context to translators. Defaults to: false
.
extractSourceLocation
: Whether the metadata about the location of the message in the source file should be extracted. If true
, then file
, start
, and end
fields will exist for each extracted message descriptors. Defaults to false
.
moduleSourceName
: The ES6 module source name of the React Intl package. Defaults to: "react-intl"
, but can be changed to another name/path to React Intl.
The extract message descriptors are available via the metadata
property on the object returned from Babel's transform()
API:
ire('babel-core').transform('code', {
ugins: ['react-intl']
/ => { code, map, ast, metadata['react-intl'].messages };