Changelog
Release history and version notes
1.0.0
Initial release
Everything below is in the first public release of PerfLocale.
A performance-first multilingual plugin for WordPress. Translate posts, pages, products, strings, and slugs with a 3-layer cache (static → object cache → transients) that keeps overhead around 1.2 ms median per page and 100% of sampled requests under 5 ms. Every feature follows WordPress standards - prepared SQL, escaped output, nonce-verified forms, capability-gated endpoints - with no third-party PHP libraries.
- Core translation: posts, pages, any custom post type, categories, tags, custom taxonomies, and per-language URL slugs. Configurable fallback chains when a translation is missing (show_404, show_default, redirect_default).
- URL routing: subdirectory (/en/), subdomain (en.example.com), or per-language domain modes. Language detection from URL, cookie, browser preference, or GeoIP (IPinfo, IPinfo Lite, ipapi.co, ipstack, ip-api.com). Self-healing rewrite rules rebuild automatically if language patterns go missing.
- String translation: translate gettext strings from any plugin or theme without code changes. Two storage modes - pre-generated .l10n.php files for speed, or database mode with lazy-loaded gettext filters. Built-in scanner with MO/PO hint lookup.
- Language switcher: Gutenberg block (inline / simple / dropdown), shortcode, automatic nav-menu integration, and admin-bar switcher. Full ARIA listbox accessibility and keyboard navigation (role, aria-expanded, aria-current, Home/End/Escape).
- SEO: hreflang tags in both <link> head and HTTP Link response headers with x-default. WordPress sitemap integration with alternate URLs. Schema.org JSON-LD enrichment (inLanguage + workTranslation) for Yoast, Rank Math, AIOSEO, SEOPress, Slim SEO, The SEO Framework. Content-Language HTTP header (BCP-47). data-nosnippet guard around fallback content. IndexNow push-indexing to Bing/Yandex with sibling-URL coordination. Speculation Rules prerender (WP 6.8+ Core API or standalone fallback on 6.4–6.7). View Transitions API crossfade on language switch with prefers-reduced-motion respected.
- Machine translation: DeepL, Google, Microsoft, and LibreTranslate. Auto-translate on publish, bulk translation, monthly character-limit tracking. Glossary enforcement for brand names and technical terms. Translation memory with configurable fuzzy-match threshold. SSRF-protected requests with SSL enforcement and exponential backoff retry.
- Translation workflow: custom translator role, assignments with priorities and deadlines, and a clear status pipeline (Unassigned → Assigned → In Progress → In Review → Approved → Published). Email notifications in the recipient's admin language. Publish gate to prevent unapproved translations from going live.
- WooCommerce: translate products, variations, categories, attributes, and attribute terms. Variation attribute names translated in cart, mini-cart, checkout, and order emails. Multi-currency with automatic exchange-rate sync (ECB, Open Exchange Rates, Fixer, CurrencyFreaks, Frankfurter). Inventory sync mirrors stock / SKU / weight / dimensions across language variants. Order emails sent in the customer's checkout language and stored on the order for later re-sends.
- 20+ auto-detecting integrations: WooCommerce; Elementor, Beaver Builder, Bricks, Oxygen Classic, Oxygen 6+; Yoast, Rank Math, AIOSEO, SEOPress, The SEO Framework, Slim SEO; ACF, Meta Box, Pods; Gravity Forms, Contact Form 7, WPForms; Blocksy, Kadence, Neve.
- Addon system for third-party authors: three capability interfaces (HasSchema for versioned database tables, HasUninstallTargets for declarative purge targets, HasCustomUninstall for external resource cleanup). Each addon lives in its own namespaced schema (wp_perflocale_addon_{addon_id}_{short_name}) with pattern-validated short names, strict uninstall-prefix enforcement, and manifest-backed orphan safety.
- Migration: bundled importers for WPML, Polylang, and TranslatePress. Preserves translation groups, string translations, term translations, and slug mappings. Migration guides published for each source plugin.
- Developer API: 120+ action and filter hooks, a full REST API (translations, machine translation, glossary, translation memory, XLIFF round-trip, webhooks), WP-CLI commands (language management, bulk translation, string scanning, glossary, addon lifecycle, health checks, data migration), WordPress Abilities API (WP 6.9+) with 6 opt-in abilities for AI tools, and a PHP helper API for theme developers.
- Multisite: per-subsite languages, translations, glossary, and workflow state. Auto-provision on new subsite creation. Clean per-subsite uninstall respecting each subsite's own delete_data_on_uninstall preference. Chunked network activation (filter perflocale/activation/chunk_size) so thousand-subsite networks don't exhaust memory.
- Performance: three-layer cache (per-request static array → WP object cache → transients), batch-preloaded translation lookups on the_posts, conditional hook registration so disabled features add no listeners, LEFT JOIN queries instead of NOT IN subqueries for language filtering, language-specific WooCommerce cart fragment keys. Measured overhead: ~1.2 ms median per page, 100% of sampled requests under 5 ms across 324 benchmarked scenarios (published at perflocale.com/benchmarks/).
- Security: prepared SQL throughout, escaped output at every render site, nonce verification on every form and AJAX request, capability checks on every privileged action, HTTPS + SSL verification on every external HTTP request. No third-party PHP libraries.
- Privacy & accessibility: GDPR-integrated (contributes to WordPress's personal-data export and erasure hooks). WCAG 2.1 AA-aligned across the language switcher, admin UI, and View Transitions; axe-core audited on release.