Skip to content

fakundo/jed-webpack-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jed (gettext style i18n) Webpack Plugin

npm

Complete i18n solution with webpack and Jed.

Installation

npm install jed-webpack-plugin --save-dev

Usage

webpack.config.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

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.

About

Webpack i18n plugin

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published