Sponsor webpack and get apparel from the official shop! All proceeds go to our open collective!

i18n-loader

Usage

./colors.json

{
	"red": "red",
	"green": "green",
	"blue": "blue"
}

./de-de.colors.json

{
	"red": "rot",
	"green": "gr�n"
}

call it

// assuming our locale is "de-de-berlin"
var locale = require("i18n!./colors.json");

// wait for ready, this is only required once for all locales in a web app
// because all locales of the same language are merged into one chuck
locale(function() {
	console.log(locale.red); // prints rot
	console.log(locale.blue); // prints blue
});

options

You should tell the loader about all your locales, if you want to load them once and than want to use them synchronous.

{
	"i18n": {
		"locales": [
			"de",
			"de-de",
			"fr"
		],
		// "bundleTogether": false
		// this can disable the bundling of locales
	}
}

alternative calls

require("i18n/choose!./file.js"); // chooses the correct file by locale,
					// but it do not merge the objects
require("i18n/concat!./file.js"); // concatinate all fitting locales
require("i18n/merge!./file.js"); // merges the resulting objects
					// ./file.js is excuted while compiling
require("i18n!./file.json") == require("i18n/merge!json!./file.json")

Don't forget to polyfill require if you want to use it in node. See webpack documentation.

License

MIT (http://www.opensource.org/licenses/mit-license.php)