[WordPress] 外掛分享: PerfLocale

首頁外掛目錄 › PerfLocale
WordPress 外掛 PerfLocale 的封面圖片
全新外掛
安裝啟用
尚無評分
剛更新
最後更新
問題解決
WordPress 6.4+ PHP 8.1+ v1.0.0 上架:2026-08-30

內容簡介

PerfLocale 是一款以效能為優先的多語言 WordPress 外掛,透過三層快取、批次預加載查詢和條件掛鉤註冊,確保其程式碼對頁面加載時間的影響降至最低,提供流暢的多語言網站體驗。

【主要功能】
• 內容翻譯:支援文章、頁面及自訂文章類型翻譯
• URL 路由:多種模式,包括子目錄和子域名
• 字串翻譯:支援多種插件和佈景主題的翻譯
• 語言切換器:多種顯示方式,具備無障礙功能
• SEO 支援:整合主要 SEO 外掛,提供 hreflang
• 機器翻譯:支援多種翻譯服務,並設有使用上限

外掛標籤

開發者團隊

⬇ 下載最新版 (v1.0.0) 或搜尋安裝

① 下載 ZIP → 後台「外掛 › 安裝外掛 › 上傳外掛」
② 後台搜尋「PerfLocale」→ 直接安裝(推薦)
📦 歷史版本下載

原文外掛簡介

PerfLocale is a performance-first multilingual plugin for WordPress. A 3-layer cache, batch-preloaded queries, and conditional hook registration keep its own code to a small fraction of total page time — a few milliseconds per page, A/B-measured.
What you get

Content translation – posts, pages, any custom post type, taxonomies, and URL slugs, with translation-status tracking
URL routing – subdirectory (/en/), subdomain (en.example.com), per-domain, or query-parameter (?lang=en) modes; auto-detect from URL, cookie, browser, or an edge/CDN hint
String translation – gettext strings from any plugin or theme, file-based (.l10n.php) or database-mode, with full CLDR plural rules (Arabic 6 forms, Russian 3) and context support
Language switcher – block, shortcode, widget, menu, admin-bar, and template tags with full ARIA listbox accessibility
SEO – hreflang (HTML + HTTP) and sitemap alternates; integrates with Yoast, Rank Math, AIOSEO, SEOPress, The SEO Framework, and Slim SEO
Machine translation – DeepL, Google, Microsoft, LibreTranslate, a custom agency endpoint, and the WordPress 7.0 AI Client, with monthly usage caps
Translator role – a dedicated role with translation-only capabilities for your translation staff
E-commerce – WooCommerce product/variation/attribute translation, multi-currency (rates supplied by your own provider hook), inventory sync, localized order emails
Reliability – circuit breakers around every external dependency, token-guarded atomic locks, self-healing background jobs, and Site Health diagnostics

Modern SEO & UX
Translation-aware features generic SEO plugins can’t provide: Content-Language HTTP header, data-nosnippet guard for fallback pages, and opt-in Speculation Rules prerender and View Transitions for switching between languages. Auto-detects and integrates with 20+ plugins and themes, including WooCommerce, Elementor, ACF, Meta Box, Pods, all major SEO plugins, Gravity Forms, and the Blocksy, Kadence, and Neve themes.
For developers
200+ action/filter hooks, a full REST API, WP-CLI commands, and a documented addon system. Every internal primitive is @api and semver-stable across 1.x. Multisite-ready. Full docs at https://perflocale.com/docs/.
Privacy
PerfLocale is privacy-first by default. No tracking, no analytics, no visitor fingerprinting.

Cookie: one cookie, perflocale_lang, stores only the active language slug. HttpOnly, Secure on HTTPS, SameSite=Lax, 365-day default lifetime (filterable via perflocale/cookie_lifetime). It can be turned off entirely (see “Cookieless mode” below) — language routing is URL-based and works without it.
Visitor IP: never logged or stored. The optional GeoIP-redirect feature (disabled by default) ships with no lookup provider and no endpoint, so out of the box it sends the IP nowhere. If you wire a source yourself through the perflocale/geo/lookup_country or perflocale/geo/providers filter, the IP is passed to that source once per first visit to resolve a country code; the country code is then cached server-side (24 hours by default) under a salted, non-reversible key – an HMAC-SHA256, keyed with the site’s auth salt, of the IP after wp_privacy_anonymize_ip() has zeroed the host bits – never the raw IP or any value reversible to it.
WordPress Privacy API integration: Tools → Export Personal Data and Tools → Erase Personal Data both work. The eraser zeroes created_by on the background jobs the data subject dispatched and deletes their per-user UI-state meta — returning items_removed/items_retained counts. The same flow runs on the admin delete_user path. Full detail in the docs.
Consent gating: the perflocale/privacy/consent_given filter lets any consent-management plugin (Cookiebot, Complianz, OneTrust, etc.) hold back PerfLocale until a visitor has consented. When the filter returns false, the perflocale_lang cookie is not set, and the GeoIP and browser-language redirects do not run (no outbound request is made).
Cookieless mode: PerfLocale → Settings → URL & Routing → “Language Cookie” turns the perflocale_lang cookie off entirely — no consent-management plugin required. URL-based language routing keeps working; you only lose “remember my language” on non-prefixed URLs.
Suggested privacy-policy text: auto-registered via wp_add_privacy_policy_content(). The sections shown adapt to which features are enabled — GeoIP wording only appears if GeoIP is on, MT wording only appears if MT is on.

Full technical detail: https://perflocale.com/docs/privacy/
External Services
PerfLocale can optionally connect to external services for machine translation. All external service calls are disabled by default and require explicit user configuration (entering an API key and enabling the feature in settings). No data is sent to any external service without your action. The hosted providers below are contacted over HTTPS; for self-hosted or user-configured endpoints (LibreTranslate, agency, webhooks) use an HTTPS URL.
The GeoIP-redirect and WooCommerce exchange-rate features ship with no provider and contact no service on their own: they call nothing unless you wire a source yourself through the perflocale/geo/lookup_country / perflocale/geo/providers and perflocale/woocommerce/exchange_rates_fetched / perflocale/woocommerce/exchange_rate_providers filters. If you connect one, disclosing that service is your responsibility as the site owner.
API keys for the providers below can be supplied via an environment variable, a wp-config.php constant, or the admin Settings field (see the “Can I keep API keys out of the database?” FAQ).
Machine Translation
When you enable machine translation and configure an API key in PerfLocale → Settings → Addons → Machine Translation, the plugin sends the text you ask it to translate to the selected provider, together with source/target language codes and your API key. That text is: post titles, content and excerpts; taxonomy term names and descriptions; interface strings listed on the Strings screen (which can include strings registered by other plugins and themes) when you use its machine-translation controls; and, when meta translation is enabled, registered meta values such as SEO titles and descriptions or custom text fields. It is sent when you click “Machine Translate”, run a bulk or site-wide translation, translate via WP-CLI or the REST API, or enable auto-translate on publish. Each provider below receives exactly that data, and only for the actions just listed. The provider API additionally defines a connection-test call that sends only your API key (no post content) so an add-on can verify credentials; no screen, WP-CLI command or REST route in PerfLocale itself invokes it.

DeepL – api.deepl.com / api-free.deepl.com. Commercial neural-translation API (free and paid tiers). Receives the text, language codes and API key described above.
Terms of Service | Privacy Policy
Google Cloud Translation – translation.googleapis.com. Google’s paid cloud translation API. Receives the text, language codes and API key described above.
Terms of Service | Privacy Policy
Microsoft Azure Translator – api.cognitive.microsofttranslator.com. Microsoft’s paid cloud translation API. Receives the text, language codes and API key described above.
Terms of Service | Privacy Policy
LibreTranslate – self-hosted or user-configured URL. Open-source translation server you host yourself or point at an instance you trust; the plugin calls no hard-coded LibreTranslate endpoint. Receives the text and language codes described above at the URL you configure. Terms of service and privacy policy are governed by the LibreTranslate instance you configure; the AGPL-3.0 linked below is the governing license of the software itself.
Terms (AGPL-3.0 License) | Source Code
WordPress AI Client – no hard-coded endpoint; delegated to WordPress core. When you select the “WP AI Client” provider on WordPress 7.0+ (or a host that ships the AI Client feature plugin), PerfLocale builds a short translation prompt (the text described above plus source/target language codes) and hands it to WordPress core’s wp_ai_client_prompt() function. PerfLocale itself makes no outbound HTTP request for this provider: WordPress core (and whichever AI provider you configured under core’s AI Connectors settings) performs the network call. The data sent, the destination, and the governing Terms of Service / Privacy Policy are therefore those of the AI provider you configured in WordPress core, only for the actions listed above.
WordPress AI Building Blocks

External Translation Agency
When you configure an external agency URL in PerfLocale → Settings → Addons → Machine Translation, the plugin sends post content to the configured endpoint for human or agency translation:

Custom Agency Endpoint – user-configured URL. A webhook endpoint you configure (use an HTTPS URL) to send post content to a human translator or translation agency for offline processing; the destination is entirely under your control and the plugin calls no hard-coded endpoint. The plugin sends post text, source/target language codes, and a unique request ID, only when you submit a translation request; the agency must return the translated text in the immediate response. Terms of service and privacy policy are governed by the agency whose endpoint you choose to configure; review their public policies before sending post content.

Webhooks
When you register webhooks via the PerfLocale REST API, the plugin sends event notifications to your configured webhook URLs when translations are created, updated, or content changes:

User-configured webhook URLs – registered via REST API (loopback and private-network destinations are rejected). Endpoints you register via the PerfLocale REST API to receive translation-lifecycle notifications (use HTTPS URLs); the destinations are entirely under your control and the plugin calls no hard-coded URL. The plugin POSTs the event type, translation data (post IDs, language codes, status), and a timestamp whenever a translation is created, updated, or otherwise changes, and signs each payload with HMAC-SHA256 when a shared secret is configured. Terms of service and privacy policy are governed by whatever destination you register; review the operator’s public policies before registering the URL.

PerfLocale can also publish a read-only public REST endpoint for edge runtimes (/wp-json/perflocale/v1/config). It is served by your own site, makes no outbound third-party request and sends no data anywhere – see the “Does PerfLocale expose anything to edge workers?” FAQ for the full description.

延伸相關外掛

文章
Filter
Mastodon