Polylang Bulk Translate Background
Fix Polylang bulk translation timeouts with background processing and real-time progress tracking
by Matthew @ Winners Media · github.com/winnersmedia/polylang-bulk-translate-background · website
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/winnersmedia/polylang-bulk-translate-background/archive/refs/heads/main.zipFix Polylang bulk translation timeouts with background processing and real-time progress tracking.
🚨 Problem Solved
Are you experiencing these issues with Polylang bulk translations?
- ✅ Bulk translate timeouts when translating 50+ posts
- ✅ Server timeouts during large translation operations
- ✅ Cloudflare 524 timeouts on bulk translation requests
- ✅ Cloudflare 522 connection timeouts during bulk operations
- ✅ Cloudflare gateway timeouts blocking translation completion
- ✅ Memory limit exceeded errors during bulk operations
- ✅ PHP max execution time exceeded errors
- ✅ White screen of death during bulk translations
- ✅ Failed bulk translations with no error message
- ✅ WordPress admin freezing during translation operations
This plugin solves all these problems by moving bulk translations to the background.
🔥 Key Features
⚡ Background Processing
- No more timeouts - translations process in the background
- Queue-based system with configurable batch sizes
- Real-time progress tracking with AJAX updates
- Automatic retry for failed translations
🎯 Works with All Post Types
- Dynamic post type detection - works with any post type automatically
- Custom post types supported out of the box
- WooCommerce products, Pages, Posts, Custom Content Types
- No configuration needed - just install and use
🛠️ Multiple Processing Options
- WordPress Cron for standard setups
- WP-CLI commands for servers with disabled WP-Cron
- Manual processing button for immediate processing
- System cron support for high-performance servers
📊 Professional Admin Interface
- Settings page with configurable options
- Queue status monitoring with detailed statistics
- Pending items viewer showing what's being processed
- Progress tracking page with real-time updates
- Manual cleanup tools for queue management
🚀 Installation
- Download the plugin files
- Upload to
/wp-content/plugins/polylang-bulk-translate-background/ - Activate the plugin through the WordPress admin
- Go to Settings → Bulk Translate BG to configure
🛡️ Cloudflare Compatibility
This plugin specifically solves Cloudflare timeout issues that occur during Polylang bulk translations:
- Cloudflare 524 errors (Connection timeout) - Fixed by background processing
- Cloudflare 522 errors (Connection timeout) - Eliminated with batched operations
- Gateway timeout errors - Prevented by splitting large operations into small chunks
- 100-second timeout limit - Bypassed by processing translations in background queue
The plugin processes translations after the initial request completes, so Cloudflare never sees long-running operations.
⚙️ Configuration
Basic Settings
- Batch Size: Number of translations to process per batch (1-50)
- Batch Delay: Delay between batches to prevent server overload (1-60 seconds)
- Cleanup Days: Automatically remove completed items after X days (1-365)
For Servers with Disabled WP-Cron
If your server has DISABLE_WP_CRON set to true, use these WP-CLI commands:
# Process translation queue (add to system cron)
wp pbtb process --batch-size=20
# Check queue status
wp pbtb status
# Clean up completed items
wp pbtb cleanup --days=30
System Cron Example (process every 5 minutes):
*/5 * * * * /usr/local/bin/wp pbtb process --path=/var/www/html --allow-root --batch-size=20 >/dev/null 2>&1
🎯 How It Works
- Intercepts Polylang bulk actions using WordPress hooks
- Queues translations in the database instead of processing immediately
- Processes in background using WordPress cron or WP-CLI
- Shows real-time progress with AJAX updates
- Handles errors gracefully with retry mechanisms
📋 Requirements
- WordPress 5.0+
- PHP 7.4+
- Polylang or Polylang Pro plugin activated
- MySQL/MariaDB database
🔧 WP-CLI Commands
Perfect for high-performance servers and system cron setups:
# Process pending translations
wp pbtb process
# Process with custom batch size
wp pbtb process --batch-size=50
# Process with delay between batches
wp pbtb process --delay=3
# Limit number of items to process
wp pbtb process --limit=100
# Check queue status
wp pbtb status
# Clean up completed items
wp pbtb cleanup
# Clean up items older than 7 days
wp pbtb cleanup --days=7
📈 Performance Benefits
Before (Standard Polylang)
- ❌ Timeouts with 50+ posts
- ❌ Cloudflare 524/522 timeout errors
- ❌ Server memory exhaustion
- ❌ PHP execution time limits
- ❌ Failed translations with no feedback
After (Background Processing)
- ✅ No timeouts - unlimited post quantities
- ✅ Cloudflare compatible - no more gateway timeouts
- ✅ Memory efficient - processes in small batches
- ✅ Progress tracking - see exactly what's happening
- ✅ Error handling - clear error messages and retry logic
🔍 SEO Keywords Covered
This plugin solves these commonly searched problems:
- Polylang bulk translate timeout
- WordPress translation timeout fix
- Polylang bulk translation not working
- WordPress bulk translate memory limit
- Polylang timeout error solution
- WordPress translation queue plugin
- Background translation processing
- Polylang bulk operation timeout
- WordPress translation batch processing
- Polylang performance optimization
- Cloudflare timeout Polylang bulk translate
- Polylang Cloudflare 524 error fix
- WordPress Cloudflare timeout solution
- Bulk translate Cloudflare gateway timeout
⚠️ Important Notes
- Limited Testing: This plugin has been tested on one WordPress installation where it worked excellently
- Production Use: While it solved major timeout issues successfully, use caution on production sites
- Backup First: Always backup your database before bulk translation operations
- Test Environment: Consider testing on a staging site first
🐛 Known Limitations
- Only tested on one WordPress site (worked perfectly there)
- New plugin - limited real-world testing
- Requires Polylang plugin to be active
- Background processing means translations aren't instant
📞 Support & Issues
- GitHub Issues: Report bugs and request features
- WordPress.org Support: (Coming soon)
- Documentation: This README and inline code comments
🤝 Contributing
This plugin solved a real problem and is shared to help others facing the same issues. Contributions welcome:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
📄 License
GPL v2 or later - same as WordPress
🔗 Related Plugins
- Polylang - The multilingual plugin this extends
- Polylang Pro - Advanced Polylang features
- WPML - Alternative multilingual plugin
Fix your Polylang bulk translation timeouts today! This plugin transforms frustrating timeout errors into smooth, monitored background processing.