grunt-stonejs-tools
v2.1.0
Published
Stone.js Grunt plugin to extract / compile translatable strings
Downloads
78
Maintainers
Readme
grunt-stonejs-tools
Stone.js Grunt plugin to extract / compile translatable strings
Related projects:
Getting Started
This plugin requires Grunt ~1.0.0
If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:
npm install grunt-stonejs-tools --save-dev
Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:
grunt.loadNpmTasks('grunt-stonejs-tools');
The "stonejs" task
Overview
In your project's Gruntfile, add a section named stonejs
to the data object passed into grunt.initConfig()
.
grunt.initConfig({
stonejs: {
your_target: {
// Source files (js/html)
src: ['src/**/*.js', 'src/*.html'],
// Translation template (.pot)
pot: 'locales/catalog.pot',
// Localised translation files (.po)
po: ['locales/*.po'],
// Output folder (or file if the `merge` option is set to true)
output: 'locales/',
options: {
// your options here
}
},
},
});
Options
options.quiet
Type: Boolean
Default value: false
Do not output the stonejs-tools log.
options.functions
Type: Array
Default value: ['_', 'gettext', 'lazyGettext', 'gettext_noop', 'N_']
List of the translation functions
options.pluralFunctions
Type: Array
Default value: ['ngettext', 'lazyNgettext']
List of the translation functions with plural forms support
options.contextFunctions
Type: Array
Default value: ['pgettext', 'lazyPgettext']
List of the translation functions with context support
options.pluralContextFunctions
Type: Array
Default value: ['npgettext', 'lazyNpgettext']
List of the translation functions with context and plural forms support
options.merge
Type: boolean
Default value: false
Merge all locales into a single file.
options.format
Type: String
Values: json
or js
Default value: 'json'
Output format for the built catalog.
Usage Examples
Default Options
grunt.initConfig({
stonejs: {
default: {
src: ['src/**/*.js', 'src/*.html'],
pot: 'locales/catalog.pot',
po: ['locales/*.po'],
output: 'locales/',
options: {
quiet: false,
functions: ['_', 'gettext', 'lazyGettext', 'gettext_noop', 'N_'],
pluralFunctions: ['ngettext', 'lazyNgettext'],
contextFunctions: ['pgettext', 'lazyPgettext'],
pluralContextFunctions: ['npgettext', 'lazyNpgettext'],
merge: false,
format: 'json'
}
}
},
});
Custom Options
In this example, we output a merged javascript catalog.
grunt.initConfig({
stonejs: {
default: {
src: ['src/**/*.js', 'src/*.html'],
pot: 'locales/catalog.pot',
po: ['locales/*.po'],
output: 'locales/catalog.js',
options: {
quiet: false,
functions: ['_', 'gettext', 'lazyGettext', 'gettext_noop', 'N_'],
pluralFunctions: ['ngettext', 'lazyNgettext'],
contextFunctions: ['pgettext', 'lazyPgettext'],
pluralContextFunctions: ['npgettext', 'lazyNpgettext'],
merge: true,
format: 'js'
}
}
},
});
Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.
Support this project
Want to support this project?
Changelog
[NEXT] (changes on
master
but not released yet):- Nothing yet ;)
v2.1.0:
- Updated dependencies
- Now requires stone-tools >= 1.5.0
v2.0.0:
- Updates to support new stonejs-tools version.
- Support of Grunt < 1.0.0 dropped
v1.0.2: Updates peer dependencies to support Grunt 1.0
v1.0.1: Clean useless files in the NPM package
v1.0.0: First release