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 distin rootyarn && yarn startinexamples/demo
npm install react-intl-phraseappyarn add react-intl-phraseappYou can also build it directly from source to get the latest and greatest:
yarn dist# install deps
yarn installAdd 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 testWe 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.