wp-po-to-mo

A command-line tool and Node.js library for converting WordPress .po translation files to .mo format.
Features
- ✅ Convert single .po files to .mo format
- 📁 Batch convert entire directories of .po files
- 👀 Watch mode for automatic conversion on file changes
- 🔍 WordPress compatibility validation
- 📊 Conversion statistics
- 🚀 Fast and efficient processing
Installation
Global Installation
npm install -g wp-po-to-mo
Local Installation
npm install --save-dev wp-po-to-mo
Usage
Command Line Interface
Basic Usage
Convert a single file:
wp-po-to-mo languages/de_DE.po
Convert all .po files in a directory:
wp-po-to-mo languages/
Watch Mode
Watch a directory for changes and automatically convert .po files:
wp-po-to-mo watch languages/
Validation
Validate .po files for WordPress compatibility:
wp-po-to-mo validate languages/
Options
Options:
-o, --output <dir> Output directory for .mo files
-r, --recursive Search directories recursively (default: true)
--no-recursive Disable recursive search
-e, --exclude <pattern> Exclude files matching pattern
--validate Validate .po files for WordPress compatibility
--stats Show conversion statistics
-h, --help Show this help message
NPM Scripts Integration
Add to your package.json:
{
"scripts": {
"convert": "wp-po-to-mo languages/",
"convert:watch": "wp-po-to-mo watch languages/"
}
}
Then run:
npm run convert
# or
npm run convert:watch
Programmatic Usage
const { PoToMoConverter } = require('wp-po-to-mo');
// Create a converter instance
const converter = new PoToMoConverter();
// Convert a single file
converter.convertSingle('path/to/file.po')
.then(moFilePath => {
console.log(`Converted to: ${moFilePath}`);
})
.catch(error => {
console.error('Conversion failed:', error);
});
// Batch convert a directory
converter.convertBatch('path/to/directory', {
recursive: true,
outputDir: 'path/to/output',
exclude: ['backup', 'temp']
})
.then(convertedFiles => {
console.log(`Converted ${convertedFiles.length} files`);
})
.catch(error => {
console.error('Batch conversion failed:', error);
});
Requirements
License
MIT