/* * grunt-wp-i18n * https://github.com/cedaro/grunt-wp-i18n * * Copyright (c) 2014 Cedaro, LLC * Licensed under the MIT license. */ 'use strict'; module.exports = function(grunt) { grunt.loadTasks( 'tasks' ); grunt.loadNpmTasks( 'grunt-contrib-clean' ); grunt.loadNpmTasks( 'grunt-contrib-copy' ); grunt.loadNpmTasks( 'grunt-contrib-jshint' ); grunt.loadNpmTasks( 'grunt-contrib-nodeunit' ); grunt.config.init({ jshint: { options: { jshintrc: '.jshintrc' }, all: [ 'Gruntfile.js', 'tasks/*.js', 'tasks/lib/*.js' ] }, // Before generating any new files, remove any previously-created files. clean: { tests: ['tmp'] }, copy: { tests: { files: [ { expand: true, cwd: 'test/fixtures', src: ['**'], dest: 'tmp/' } ] } }, addtextdomain: { options: { textdomain: 'newtextdomain' }, add_domain: { src: ['tmp/text-domains/add-domain.php'] }, update_domains: { options: { updateDomains: ['oldtextdomain', 'vendortextdomain'] }, src: ['tmp/text-domains/update-domains.php'] }, update_all_domains: { options: { updateDomains: true }, src: ['tmp/text-domains/update-all-domains.php'] } }, // Configuration to be run (and then tested). makepot: { basic_plugin: { options: { cwd: 'tmp/basic-plugin', type: 'wp-plugin' } }, persist_timestamp: { options: { cwd: 'tmp/basic-plugin', type: 'wp-plugin', updateTimestamp: false } }, different_slugs: { options: { cwd: 'tmp/different-slugs', type: 'wp-plugin' } }, plugin_headers: { options: { cwd: 'tmp/plugin-headers', potComments: 'A new comment header.', potHeaders: { 'report-msgid-bugs-to': 'https://github.com/cedaro/grunt-wp-i18n/issues', 'x-poedit-keywordslist': '', 'x-poedit-searchpath-0': '', 'x-poedit-searchpathexcluded-0': '', 'x-poedit-sourcecharset': '' }, processPot: function( pot, options ) { pot.headers['language-team'] = 'Team Name '; return pot; }, type: 'wp-plugin' } }, theme_headers: { options: { cwd: 'tmp/theme-headers', processPot: function( pot, options ) { pot.headers['language-team'] = 'Team Name '; return pot; }, type: 'wp-theme' } }, ignore_headers: { options: { cwd: 'tmp/plugin-headers', domainPath: '.', potFilename: 'override.pot', type: 'wp-plugin' } }, basic_theme: { options: { cwd: 'tmp/basic-theme', exclude: ['exclude/.*'], type: 'wp-theme' } }, plugin_include: { options: { cwd: 'tmp/plugin-include', include: ['include/.*'], type: 'wp-plugin' } }, common_pot_headers: { options: { cwd: 'tmp/common-pot-headers', potHeaders: { poedit: true }, type: 'wp-plugin' } }, customize_common_pot_headers: { options: { cwd: 'tmp/common-pot-headers', potFilename: 'custom-pot-headers.pot', potHeaders: { 'x-poedit-country': 'Spain', poedit: true, language: 'es', 'x-poedit-keywordslist': '', 'Project-Id-Version': 'Custom Value' // Testing case. }, type: 'wp-plugin' } }, translator_comments: { options: { cwd: 'tmp/translator-comments', type: 'wp-plugin' } }, msg_merge_merging: { options: { cwd: 'tmp/msg-merge', updatePoFiles: true } }, msg_merge_no_merging: { options: { cwd: 'tmp/msg-merge-no-merge', updatePoFiles: false } }, msg_merge_theme: { options: { type: 'wp-theme', cwd: 'tmp/msg-merge-theme', updatePoFiles: true } } }, // Unit tests. nodeunit: { tests: ['test/*_test.js'], } }); // Register default task. grunt.registerTask( 'default', ['jshint', 'test']); // Whenever the "test" task is run, first clean the "tmp" dir, // copy the "fixtures", then run this plugin's task(s), then test the result. grunt.registerTask( 'test', ['clean', 'copy', 'makepot', 'addtextdomain', 'nodeunit']); };