babel-plugin-i18next-extract
babel-plugin-i18next-extract is a Babel Plugin that will traverse your Javascript/Typescript code in order to find i18next translation keys.
Features
☑️ Keys extraction in JSON v3 format.☑️ Detection ofi18next.t()
function calls.☑️ Full react-i18next support.☑️ Plurals support.☑️ Contexts support.☑️ Namespace detection.☑️ Disable extraction on a specific file sections or lines using comment hints.☑️ Overwrite namespaces, plurals and contexts on-the-fly using comment hints.- … and more?
Documentation
You can check out the full documentation at i18next-extract.netlify.com.
Quick Start
Installation
yarn add --dev babel-plugin-i18next-extract
# or
npm i --save-dev babel-plugin-i18next-extract
Minimal configuration
If you don't have a babel configuration yet, you can follow the Configure Babel documentation page to get started.
Declare the plugin like any other plugin in your .babelrc
and you're good to go:
{
"plugins": [
"i18next-extract",
// […] your other plugins […]
]
}
You may want to specify additional configuration options:
{
"plugins": [
["i18next-extract", {"nsSeparator": "~"}],
// […] your other plugins […]
]
}
For an exhaustive list of configuration options, check out the Configuration page.
Once the plugin is setup, you can build your app normally or run Babel through Babel CLI:
yarn run babel -f .babelrc 'src/**/*.{js,jsx,ts,tsx}'
# or
npm run babel -f .babelrc 'src/**/*.{js,jsx,ts,tsx}'
Extracted translations land in the extractedTranslations/
directory by default.
Troubleshooting
Error: EEXIST: file already exists, mkdir './extractedTranslations/en'
Make sure your node version is at least 10 by running node --version
. This plugin doesn't support node 8.
You can still use nvm to deal with multiple node versions.