---
title: "PerfLocale 1.0.0 - Changelog - PerfLocale"
description: "What changed in PerfLocale 1.0.0, released 2026-08-31. Initial release"
canonical: "https://perflocale.com/changelog/1.0.0/"
source: "https://perflocale.com/changelog/1.0.0/"
format: "markdown"
---
[← All releases](https://perflocale.com/changelog/)

# PerfLocale 1.0.0

2026-08-31 — Initial release

-   Content translation for posts, pages, any custom post type, categories, tags, and custom taxonomies, with per-language URL slugs and configurable fallback chains when a translation is missing (show\_404, show\_default, redirect\_default).
-   URL routing in subdirectory (/en/), subdomain (en.example.com), per-language domain, or query-parameter (?lang=de) mode, with language detection from URL, cookie, browser preference, or GeoIP. No GeoIP provider is bundled — register a source through the perflocale/geo/lookup\_country filter. Rewrite rules self-heal if language patterns go missing.
-   String translation for gettext strings from any plugin or theme, with no code changes. Two storage modes: pre-generated .l10n.php files for speed, or database mode with lazy-loaded filters. Includes a built-in scanner, PO import/export, and full CLDR plural rules (up to six forms).
-   Language switcher as a Gutenberg block, shortcode, PHP template tag, widget, nav-menu item, and admin-bar item, plus native components for Blocksy, Kadence and Neve and widgets for Elementor, Beaver Builder and Bricks. Full ARIA listbox semantics with keyboard navigation and type-ahead, per-option lang/dir attributes, reduced-motion support, RTL via logical properties, and eight filters for customising the markup.
-   SEO: hreflang in both the HTML head and HTTP Link headers with x-default, sitemap alternates, and JSON-LD schema enrichment. Integrates with Yoast, Rank Math, AIOSEO, SEOPress, The SEO Framework and Slim SEO without duplicating their output. Opt-in Speculation Rules prerender and View Transitions.
-   Machine translation via DeepL, Google, Microsoft, LibreTranslate, a custom agency endpoint, or the WordPress AI Client on WP 7.0+ (which reuses your host's configured provider without a second key). Auto-translate on publish, bulk translation from the Translations page, monthly character caps, and circuit breakers around every provider.
-   Machine translation of SEO meta and custom fields: SEO titles and descriptions translate with the post (template variables protected), and ACF, Meta Box and Pods text fields can opt in. Translator edits are never overwritten.
-   Pre-flight cost estimates in bulk actions, the site-wide panel, REST and WP-CLI (--dry-run) show items, characters and budget before anything is sent, and over-budget dispatches are refused up front.
-   Whole-site translation as a resumable, chunked background job with estimate-first confirmation, startable from the Translations page, REST, or wp perflocale translate --all --async.
-   API keys resolve in env-var → wp-config.php constant → WordPress Connectors API (WP 7.0+) → database order, so containerised and version-controlled deployments can keep secrets out of the database entirely.
-   A dedicated Translator role plus seven perflocale\_\* capabilities gating the plugin's admin screens, REST routes and CLI commands. Translators get perflocale\_translate and perflocale\_use\_mt; Editors also get perflocale\_manage\_translations and perflocale\_approve\_translations.
-   Block editor integration: the link picker is scoped to the language of the post being edited (so editing a /de/ post surfaces DE targets with /de/ URLs), featured images can differ per language, and a block-toolbar control translates the selected block or fills a draft from its source.
-   WooCommerce: translate products, variations, categories, attributes and attribute terms, with variation attribute names translated in cart, mini-cart, checkout and order emails. Multi-currency with scheduled rate sync — no rate provider ships with the plugin; register one through perflocale/woocommerce/exchange\_rate\_providers. Inventory stays single-source across languages.
-   20+ auto-detecting integrations: WooCommerce; Elementor, Beaver Builder, Bricks, Oxygen, 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.
-   An addon system for third-party authors: five capability interfaces (versioned tables, declarative purge targets, custom uninstall, version gating, and card metadata), per-addon namespaced schemas, enable/disable toggles with quarantine on repeated failure, a typed settings layer with conditional fields, and WP-CLI management commands.
-   Migration importers for WPML, Polylang and TranslatePress. Translation groups come from all three; term translations from WPML and Polylang; string translations from WPML and TranslatePress; slug mappings from TranslatePress. Polylang's string catalogue is not imported — rebuild it with the scanner. Runs are batched, transaction-safe and idempotent on re-run.
-   Developer API: 200+ actions and filters, 24 REST routes under perflocale/v1, WP-CLI commands for languages, translation, strings, migration, jobs and diagnostics, XLIFF 2.0 export/import, and signed webhooks.
-   Background processing moves long-running work (imports, exports, bulk translation, migrations, site-wide scans) off the request path — Action Scheduler when available, WP-Cron otherwise — with state in a dedicated jobs table, resumable chunking, and a Jobs admin screen.
-   Multisite: per-subsite languages, translations and strings, auto-provisioned on subsite creation, with clean per-subsite uninstall and chunked network activation for large networks.
-   Performance: a three-layer cache (per-request static → object cache → transients), batch-preloaded lookups, conditional hook registration so disabled features add no listeners, JOIN-based language filtering, and an eager link map for sites under ~2,000 translation links. Larger sites should run a persistent object cache.
-   Security: prepared SQL throughout, escaped output at every render site, nonce verification on forms and AJAX, capability checks on privileged actions, and SSL verification on every outbound request. No third-party PHP libraries.
-   Privacy and accessibility: GDPR-integrated export and erasure of the data the plugin stores per user, an uninstall path that respects your delete-on-uninstall preference, and a WCAG 2.1 AA-aligned admin and frontend (labelled form fields, table captions and scopes, no inline event handlers).
