drupal-translations-webpack-plugin

Extract Drupal.t and Drupal.formatPlural from your webpack builds.

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
drupal-translations-webpack-plugin
1.1.12 years ago6 years agoMinified + gzip package size for drupal-translations-webpack-plugin in KB

Readme

DrupalTranslationsWebpackPlugin
Extract Drupal.t and Drupal.formatPlural calls from your webpack bundles.
The plugin will gather all those calls in one single file and emit them. Then you can add this file to your Drupal theme library. Drupal will pick it up and run its regex over it, so that those translations end up in the Frontend.
Compatible with Webpack 4 and 5.
Install
The plugin is available on npm:
npm install --save-dev drupal-translations-webpack-plugin
How to use

Add the plugin to your webpack config

const DrupalTranslationsWebpackPlugin = require('drupal-translations-webpack-plugin')

plugins: [
  new DrupalTranslationsWebpackPlugin({
    output: 'drupal-translations.js'
  })
]

You can use both translation functions everywhere. But maybe you need to declare that Drupal is a global object. It worked for me without, in another project it didn't.
webpack.config.js
plugins: [
  new webpack.ProvidePlugin({
    'Drupal': 'window.Drupal'
  })
]

Also, if you use ESLint, you want to declare Drupal a global object:
.eslintrc.js
globals: {
  'Drupal': true
}

It's important that you use the functions like normal, e.g. not write window.Drupal.t or otherwise wrap them in your own function, etc. The plugin is rather "dumb"; it will just go through all JS files and parse out the actual "string" where the function is called.
For a detailled example on how to use this plugin, check out this Drupal webpack example:
https://github.com/dulnan/drupal-webpack-setup-example