Ducky Translator
Let Ducky handle your translations! A fun and efficient plugin that turns your WordPress site into a multilingual experience.
by Duckname · github.com/duckyname/ducky-translator · 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/duckyname/ducky-translator/archive/refs/heads/main.zipDucky Translator - Wordpress Plugin
A powerful WordPress plugin that provides real-time translation of your website content using the DeepL API. Translate your entire website into multiple languages with ease.
Features
- 🌍 Multi-language Support - Support for 30+ languages
- 🚀 Real-time Translation - Instant translation of all frontend content
- 💾 Smart Caching - Translations are cached to save API quota and improve performance
- 🎨 Flexible Display - Choose between flags only, text only, or flags + text
- 🔒 Primary Language - Set your site's primary language that's always available
- ⚡ Fast Performance - Optimized batch translation with localStorage caching
Installation Guide
Step 1: Install the Plugin
- Download the plugin files
- Upload the
ducky-translatorfolder to/wp-content/plugins/directory - Activate the plugin through the 'Plugins' menu in WordPress
Step 2: Register for DeepL API
- Go to DeepL API website
- Click on "Sign up" or "Get API key"
- Create a free account (DeepL offers a free tier with 500,000 characters per month)
- Complete the registration process
- Navigate to your DeepL account dashboard
Step 3: Get Your API Key
- In your DeepL account dashboard, find the "API keys" section
- Click on "Create API key" or "Generate new key"
- Copy your API key (it will look like:
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx:fxfor free tier) - Important: Keep your API key secure and don't share it publicly
Step 4: Configure the Plugin
- Go to WordPress Admin → Settings → Ducky Translator
- Click on the "License Key" tab
- Paste your DeepL API key in the "DeepL API Key" field
- Click "Save Changes"
- Click "Test API Connection" to verify your API key is working correctly
Step 5: Set Up Languages
- In the "License Key" tab, set your "Primary Language" (the default language of your website)
- Go to the "Settings" tab
- Select the languages you want to make available for translation
- Choose your preferred display mode (Flags only, Text only, or Flags + Text)
- Click "Save Changes"
Step 6: Verify Installation
- Visit your website's frontend
- Look for the language selector in the bottom-left corner
- Select a different language to test the translation
- Your content should translate automatically
Requirements
- WordPress 5.0 or higher
- PHP 7.4 or higher
- OpenSSL extension enabled (required for HTTPS API requests)
- cURL extension (recommended, but not required)
allow_url_fopenenabled in php.ini (if cURL is not available)
Configuration
Primary Language
The primary language is your website's default language. This language:
- Is always available in the language selector
- Serves as the source language for all translations
- Cannot be removed from available languages
Available Languages
Select which languages should be available for your visitors. The primary language is automatically included.
Display Mode
Choose how the language selector appears:
- Flags + Text: Shows both flag icon and language name (default)
- Flags Only: Shows only flag icons
- Text Only: Shows only language names
Troubleshooting
Translation Not Working
- Check API Key: Ensure your DeepL API key is correctly entered in the License Key tab
- Test Connection: Use the "Test API Connection" button to verify your API key
- Check PHP Extensions: Ensure OpenSSL is enabled in your php.ini file
- Check Error Logs: Review WordPress error logs for detailed error messages
SSL/HTTPS Issues on Localhost
If you're running WordPress on localhost without SSL:
- The plugin includes fallback methods for localhost environments
- Ensure OpenSSL extension is enabled in php.ini
- Check that
allow_url_fopenis enabled
OpenSSL Not Loaded
If you see "OpenSSL Extension: NOT LOADED":
- Open your
php.inifile - Find the line:
;extension=openssl - Remove the semicolon:
extension=openssl - Save the file and restart your web server
API Quota
DeepL Free tier includes:
- 500,000 characters per month
- Translations are cached for 30 days to minimize API usage
- localStorage caching on the frontend for even better performance
Support
For issues, questions, or feature requests, please open an issue on GitHub.
License
This plugin is provided as-is for free use.
Changelog
1.0.0
- Initial release
- DeepL API integration
- Multi-language support
- Smart caching system
- Flexible display options