https://github.com/fakundo/jed-webpack-plugin
Webpack i18n plugin
https://github.com/fakundo/jed-webpack-plugin
Last synced: about 1 year ago
JSON representation
Webpack i18n plugin
- Host: GitHub
- URL: https://github.com/fakundo/jed-webpack-plugin
- Owner: fakundo
- Created: 2016-07-11T14:53:24.000Z (almost 10 years ago)
- Default Branch: master
- Last Pushed: 2020-07-13T20:44:17.000Z (almost 6 years ago)
- Last Synced: 2025-05-12T19:07:59.728Z (about 1 year ago)
- Language: JavaScript
- Size: 175 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Jed (gettext style i18n) Webpack Plugin
[](https://www.npmjs.com/package/jed-webpack-plugin)
Complete i18n solution with webpack and Jed.
## Installation
```
npm install jed-webpack-plugin --save-dev
```
## Usage
webpack.config.js
```js
var locales = ['en-us', 'ru', 'de'];
module.exports = locales.map(function(locale) {
return {
entry: path.join(__dirname, 'src', 'index'),
devtool: 'source-map',
output: {
filename: locale + '.app.js',
path: path.join(__dirname, 'dist'),
publicPath: '/'
},
plugins: [
new HtmlWebpackPlugin({
template: path.join(__dirname, 'index.html'),
filename: locale + '.index.html'
}),
new webpack.DefinePlugin({
'process.env.locale': JSON.stringify(locale)
}),
new JedWebpackPlugin({
mo: path.join(__dirname, 'locales', locale + '.mo'),
defineJedIdentifier: 'jed'
}),
new webpack.ContextReplacementPlugin(/moment[\/\\]locale$/, new RegExp(locale))
]
};
});
```
entry - index.js
```js
var label = gettext('Hello World');
// Plurals
var n = 10;
var appleLabel1 = ngettext('One apple', '%% apples', n).replace(/%%/, n);
// or
var appleLabel2 = jed.sprintf(ngettext('One apple', '%1$d apples', n), n);
```
## Options
```
mo - translation file path (.mo)
defineJedIdentifier - (optional) name identifier for providing access to jed instance
```
Use Poedit to create translation files from your source code and see examples.