react-intl-phraseapp is the official library for integrating Phrase Strings In-Context Editor with react-intl in your React application.
To use react-intl-phraseapp with your application you have to:
- Sign up for a Phrase account: https://app.phrase.com/signup
- Use the excellent react-intl module by yahoo for localization in your react app
You can find a demo project in the examples/demo
folder, just run yarn && yarn start
npm install react-intl-phraseapp
yarn add react-intl-phraseapp
You can also build it directly from source to get the latest and greatest:
yarn dist
# install deps
yarn install
Add the following JavaScript snippet to your react app.
import {initializePhraseAppEditor} from 'react-intl-phraseapp'
let config = {
projectId: '<YOUR_PROJECT_ID>',
accountId: '<YOUR_ACCOUNT_ID>',
phraseEnabled: true,
prefix: "[[__",
suffix: "__]]",
fullReparse: true
};
initializePhraseAppEditor(config);
You can find the Project-ID in the Project overview in the PhraseApp Translation Center. You can find the Account-ID in the Organization page in the PhraseApp Translation Center.
If this does not work for you, you can also integrate the JavaScript snippet manually.
To use the old version of ICE, use option useOldICE: true
in your PHRASEAPP_CONFIG or integration options
let config = {
projectId: '<YOUR_PROJECT_ID>',
phraseEnabled: true,
useOldICE: true,
};
initializePhraseAppEditor(config);
In addition to the settings in your config, set the US datacenter to enable it working with the US endpoints.
datacenter: 'us',
Find all available imports for react-intl
by changing the source from react-intl
to react-intl-phraseapp
, such as FormattedMessage
, useIntl
, WrappedComponentProps
, and injectIntl
.
import { FormattedMessage } from 'react-intl-phraseapp'
import { useIntl, WrappedComponentProps } from 'react-intl-phraseapp'
import { injectIntl, WrappedComponentProps } from 'react-intl-phraseapp'
This library might not work out of the box for some older browser or IE11. We recommend to add Babel to the build pipeline if those browser need to be supported.
The library inherits common components of the react-intl packages. In case you enabled Phrase by calling initializePhraseAppEditor
the behaviour of the components will be changed.
Run unit tests using jest:
npm test
We welcome anyone who wants to contribute to our codebase, so if you notice something, feel free to open a Pull Request! However, we ask that you please use the Conventional Commits specification for your commit messages and titles when opening a Pull Request.
Example: chore: Update README
Please use GitHub issues to share your problem, and we will do our best to answer any questions or to support you in finding a solution.
Detailed changes for each release are documented in the changelog.