1.0.0 • Published 9 years ago

babel-plugin-format-message v1.0.0

Weekly downloads
3
License
MIT
Repository
github
Last release
9 years ago

babel-plugin-format-message

babel plugin to replace formatMessage calls with translations.

Installation

$ npm install babel-plugin-format-message

Usage

This plugin isn't terribly useful without configuration, so you probably won't add it via the .babelrc or CLI.

Via Node API

var formatMessagePlugin = require('babel-plugin-format-message');
require("babel-core").transform("code", {
  plugins: [
    formatMessagePlugin.withOptions({
      /* format-message options */
    })
  ]
});

Via webpack loader

var formatMessagePlugin = require('babel-plugin-format-message');
module.exports = [ "en", "pt", "de" ].map(function(locale) {
  entry: "path/to/entry.js",
  output: {
    path: "path/to/output/",
    filename: "bundle.js"
  },
  module: {
    loaders: [
      { test: /\.js$/, exclude: /node_modules/, loader: "babel" }
    ]
  },
  babel: {
    plugins: [
      formatMessagePlugin.withOptions({
        /* format-message options */
      })
    ]
  }
});

Via browserify / babelify

var b = browserify({
 /* browserify options */
}).transform(
  babelify.configure({
    plugins: [
      formatMessagePlugin.withOptions({
        /* format-message options */
      })
    ]
  })
);

Example options

See format-message for full options documentation.

{
  functionName: "formatMessage", // identifier of function to inline
  locale: locale, // default locale
  translate: function(pattern, locales) {
    // from call formatMessage(pattern, args, locales)
    // if no locales were passed to format, locales will be the default locale (specified above)
    return require("path/to/translations/" + locale + ".json")[pattern];
  },
  translations: { // or rather than a translate function, lookup from an object
    pt: { ... },
    de: { ... }
  },
  keyType: "underscored_crc32", // or "underscored", "normalized", or "literal", default is "underscored_crc32"
  missingTranslation: "warning", // warn instead of fatal error, default is "error", can also be "ignore"
  missingReplacement: "!!NOT TRANSLATED!!" // use this when no translation found, default is the original pattern
}

License

This software is free to use under the MIT license. See the LICENSE-MIT file for license text and copyright information.