
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
babel-plugin-i18n-export
Advanced tools
This babel-plugin used to export translation mapping file into json file from source code.
babel-plugin-i18n-export will check function identifier (name) in the code and extract parameters.
you can use the exported translation mapping for the next phase of translation work, instead of manually write the translation mapping.
source code file
i18n("1 繋がるってことが")
i18n("idPath"," ${0} passed, ${1} total ",{0:2, 1:24*5})
vue.i18n(`3 Listen to “Lemonade” from Mili’s new album “Millennium” `)
exported Export.language.json
{
"translationMap": {
"1 繋がるってことが": "1 繋がるってことが",
"$$$idPath= ${0} passed, ${1} total ": " ${0} passed, ${1} total ",
"3 Listen to “Lemonade” from Mili’s new album “Millennium” ": "3 Listen to “Lemonade” from Mili’s new album “Millennium” ",
}
}
npm i -D babel-plugin-i18n-export
your .babelrc or elsewhere babel config
{
"presets": [
"@babel/preset-env",
],
+ plugins:["babel-plugin-i18n-export"]
}
{
"presets": [
"@babel/preset-env",
],
+ plugins:[["babel-plugin-i18n-export",{functionName:'$i18n'}]]
}
If you don't want to add it to your workflow, you just can run it with bable cli
$ npx babel src --plugins=babel-plugin-i18n-export
if you can't find
npxcommand trynpm install -g npx
When vue-loader processes a .vue single file, the <template> is not processed by Babel by default confign.
This will result in the inability to extract the function in the vue <template>, so you need to configure vue-loader:
webpack.config.js
module.exports = {
...
module: {
rules: [
{
test: /\.vue$/,
loader: "vue-loader",
options: {
loaders: {
"scss": "vue-style-loader!css-loader!postcss-loader!sass-loader",
"sass": "vue-style-loader!css-loader!postcss-loader!sass-loader?indentedSyntax",
},
+ postLoaders: {
+ html: 'babel-loader'
+ }
},
},
The exported file is placed in the local folder under the project directory.
ProjectDirectory
- local
- Export.language.json
your source code
i18n("Your General Literal")
// in translationMap:
// "Your General Literal"
If the target function has 2 parameters, and the second parameter is not an Object, the first parameter will be taken as the Path,it can distinguish between two literally the same text.
your source code
i18n("home/page1","Your General Literal")
i18n("home/setting","Your General Literal")
// in translationMap:
// "$$$home/page1=Your General Literal"
// "$$$home/setting=Your General Literal"
If the target function has 2 parameters and last parameter is not Object, and has 3 parameters, This literal will be treated as variable literal, which is supported by some i18n tools.
i18n("home/page1","Your ${0} Literal", {0:1+1})
i18n("Your ${0} Literal", {0:1+1})
// in translationMap:
// "$$$home/page1=Your ${0} Literal"
// "Your ${0} Literal"
functionNameassign a function identifier (name) for extract parameters.
defualt:18n
FAQs
create your js lib from zero.
We found that babel-plugin-i18n-export demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.