Polyglot Power Tools
Plagin
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/gloutlaw/ppt/archive/refs/heads/main.zipWordPress plugin for multilingual sites — AI translation (Claude / OpenAI), Yoast SEO generation, menu and taxonomy sync, bulk WP-CLI workflows.
License: GPLv2 or later
Requirements
- WordPress 6.0+
- PHP 8.0+
- Polylang Pro (required)
- Yoast SEO (for SEO module)
- Anthropic and/or OpenAI API key (your account)
Features
- Auto-translate posts/pages and custom post types via Polylang
- AI SEO title, description, and focus keyphrase (Yoast)
- Full-article SEO rewrite (Claude)
- Menu and taxonomy structure sync across languages
- WP-CLI bulk commands for translation and SEO
- Site-specific CPTs and redirects via WordPress filters (no hardcoded site assumptions)
Installation
Zip
- Download the latest release or clone this repository into
wp-content/plugins/polyglot-power-tools/ - Activate Polyglot Power Tools in WordPress admin
- Configure under Polyglot Tools → Settings
Git submodule (recommended for teams)
git submodule add https://github.com/gloutlaw/ppt.git wp-content/plugins/polyglot-power-tools
git submodule update --init --recursive
See INSTALL.md for full setup.
API Keys
Define keys in wp-config.php or a private env.php included from wp-config.php:
define('ATP_ANTHROPIC_KEY', '<YOUR_ANTHROPIC_KEY>');
define('ATP_ANTHROPIC_MODEL', 'claude-sonnet-4-6');
define('ATP_OPENAI_KEY', '<YOUR_OPENAI_KEY>');
define('ATP_OPENAI_MODEL', 'gpt-4o-mini');
Constants take priority over values stored in the database.
External Services Disclosure
When translation or SEO features run, post content and metadata are sent to Anthropic and/or OpenAI using your API keys. No data is sent without configured keys and explicit plugin actions (save, bulk CLI, admin tools).
Prompts, company name, and service links are stored in WordPress options (ppt_global_settings), not in git.
Site-Specific Configuration
Default post types are post and page. Extend via mu-plugin:
add_filter('ppt_default_post_types', fn () => ['post', 'page', 'faq-post']);
add_filter('ppt_seo_post_types', fn () => ['post', 'page', 'faq-post']);
add_filter('ppt_redirect_mu_plugin_path', fn () => WP_CONTENT_DIR . '/mu-plugins/my-redirects.php');
Documentation
- INSTALL.md — setup and development
- docs/POLYGLOT-POWER-TOOLS.md — full technical reference
- CHANGELOG.md — release notes
- SECURITY.md — secrets and vulnerability reporting
Quick Start (WP-CLI)
wp ppt:bulk --lang=de --type=post --mode=missing --allow-root
wp ppt:seo-fill --type=page --allow-root
Debug Logging
define('PPT_DEBUG', true); // wp-config.php — logs to wp-content/ppt-logs/
Disable in production. See SECURITY.md.