This article is the developer companion to the user-facing string scanner documentation. It traces the scanner end-to-end through the wpresidence-translate plugin, names every function involved, and points out the option keys and cache signatures you need to know when debugging. Product context lives on the multi-language real estate website page. Files Involved File Role includes/admin/string-scanner.php […]
30. WPResidence Translate Plugin
The String Scanner
The WPResidence Translate string scanner is the engine that discovers every translatable label on your site and registers it in the plugin’s database. Without a scan, the translation grid under Theme & Plugins Strings is empty. This article explains what gets scanned, what gets skipped, and how to re-run the scanner after changes. For the […]
Gettext Pipeline & MO Files — Developer Guide
This article traces the full path from a stored translation row to a translated label rendered on the page: how MO files are compiled, where they land on disk, how the plugin injects them into WordPress’s textdomain loader, and how runtime gettext filters behave. It is the developer companion to the user-facing article. For product […]
Gettext & MO Files — Making Translations Appear on the Front End
Typing translations into the WPResidence Translate grid is only half the story. WordPress reads translated strings from compiled binary files called MO files, not from the database. This article explains what MO files are, where WPResidence Translate writes them, and what you need to do after editing strings so visitors see the translated interface. For […]
Automatic Translation — Developer Guide
This article documents the provider-layer of the wpresidence-translate plugin: the admin view, the settings option, the four provider files, the OpenAI request shape, glossary/memory storage, and the AJAX endpoints that drive bulk runs. It complements the user article and the broader multi-language real estate website overview. Files Involved File Role includes/admin/views/automatic-translation.php Settings form + bulk-run […]
Automatic Translation — OpenAI, Google, DeepL, Azure
The Automatic Translation screen in WPResidence Translate lets you pre-fill translations for posts, properties, agents, and individual strings using an AI translation service. This saves hours of manual work and gives translators a strong starting draft instead of a blank page. Automatic translation is one of several features covered in our complete multi-language real estate […]
Elementor Widget Translation — Developer Guide
This article is the developer companion to the user-facing article on Elementor translation. It documents the code paths that let WPResidence Translate read Elementor layouts, build a translation payload, and write translated values back into _elementor_data. Product context lives on the multi-language real estate website page. File Map File Role includes/elementor-widget-compat.php Front-end integration: re-renders Elementor […]
Translating Elementor Pages & Widgets
If you build your WPResidence pages with Elementor, the WPResidence Translate plugin extends the standard translation flow to cover Elementor widget content. This article explains what gets translated, where to edit it, and how to check that your translated pages look the same as the source language. For broader context, see our guide on building […]
Shortcode & Widget ID Remapping — Developer Guide
ID remapping is the plugin feature that rewrites numeric references inside shortcodes and Elementor widgets so translated pages render the translated equivalents of properties, agents, developers, and taxonomy terms. This article is the implementation-level companion to the user-facing article. Product context is on our multi-language real estate website page. File Map File Role includes/shortcode-compat.php Intercepts […]
Shortcode & Widget ID Remapping
When you build a page in one language and then translate it, shortcodes and Elementor widgets often carry hard-coded IDs — a specific property, a specific agent, a list of taxonomy terms. Those IDs are correct for the original language, but wrong for every other language. WPResidence Translate fixes this automatically through a process called […]
Menu Translation & Language-Specific Menu Locations — Developer Guide
This article documents how WPResidence Translate attaches languages to WordPress nav menus, stores per-language theme-location assignments, tracks menu translation groups in the database, and synchronizes menu structure. It is the implementation-level companion to the user article. Product context is on our multi-language real estate website page. File Map File Role includes/nav-menu-locations.php Storage + sanitizer for […]
Menu Translation & Language-Specific Menu Locations
Navigation menus are one of the first things your visitors see, so they need to match the active language. WPResidence Translate extends the native WordPress menu editor so you can create one menu per language, assign each to the same theme location, and keep their structure in sync. This article walks through the full workflow. […]
WPResidence Translate — Database Schema Reference
This is the full schema reference for the six custom tables created by the WPResidence Translate plugin (internal slug wpestate-translate, text domain wpr-translate). Schemas are defined inline in includes/activator.php inside wpr_translate_activator_create_tables() and installed via dbDelta() on activation. All tables use the active $wpdb->prefix and inherit $wpdb->get_charset_collate(). Context on the runtime that reads these tables is […]
Where Your Translations Live: The WPResidence Translate Database
When you add a second language to WPResidence with the WPResidence Translate plugin, your translated content does not disappear into a mystery box. Every language version, translated string, translated URL slug, and auto-translation helper lives in six dedicated tables the plugin adds to your WordPress database. You do not need to touch those tables manually […]
WPResidence Translate — Performance & Caching (Developer Reference)
This article maps the cache layers inside the WPResidence Translate plugin (wpestate-translate, text domain wpr-translate) so you can reason about invalidation, extend it safely from a child theme or companion plugin, and keep a multi-language real estate website fast at scale. Cache Layers Overview Layer Scope API Where Request-scoped static Single PHP request static $cache […]
Performance & Caching for a Multilingual WPResidence Site
Running a multi-language real estate website multiplies the work your server does on every page — search dropdowns, property grids, menus, and widget content all need to be resolved per language. The WPResidence Translate plugin is built around that reality. It layers caches and transients on top of its database tables so that, once warm, […]
WP_Query Language Filtering — Developer Guide
This article documents how the wpresidence-translate plugin (text domain wpr-translate) intercepts and rewrites WP_Query so every front-end query is language-aware. It covers the two main hooks (pre_get_posts and the_posts), the translations-table join, pin-query handling, taxonomy and meta adjustments, and the opt-out points. Broader context on the multilingual architecture is in the multi-language real estate website […]
WP_Query Language Filtering
The most invisible — and arguably most important — job of the WPResidence Translate plugin is making sure that every property list, archive, search result, map, and widget on your site shows only content in the visitor’s current language. You never need to pass a language parameter anywhere: the plugin intercepts WordPress queries automatically and […]
URL Structure & Permalinks — Developer Deep Dive
This article documents how wpresidence-translate (text domain wpr-translate) builds language-aware URLs from the moment WordPress asks for a permalink until the moment the localized string is returned to the caller. If you are integrating a custom post type, writing a child-theme override, or debugging a stray URL on a multi-language real estate website, start here. […]
URL Structure & Permalinks in WPResidence Translate
When your site is multilingual, every page needs a URL that tells both visitors and search engines which language they are on. The WPResidence Translate plugin handles this automatically: it prepends a language slug to every URL it generates, keeps the default language clean, and rewrites all theme links so they stay consistent. This article […]
Language Detection & Redirects — Developer Deep Dive
This article is the code-level companion to the user-facing detection guide. It walks through how wpresidence-translate resolves the active language on every request, how it avoids canonical redirect loops, and which hooks it exposes for integration work on a multi-language real estate website. Files & Entry Points File Responsibility includes/language-router.php Request path prep, language resolution, […]
Language Detection & Redirects
Every page load on a multilingual WPResidence site needs an answer to one question: which language should this visitor see? The WPResidence Translate plugin answers that question in a specific order, remembers the visitor’s choice, and protects against redirect loops that plague naive multilingual setups. This article explains the detection order, the cookie behavior, and […]
Rewrite Rules & Query Vars — Developer Deep Dive
This article documents the inbound routing layer of wpresidence-translate — how the plugin teaches WordPress to recognise language-prefixed URLs, which rewrite rules and query vars it registers, and where to hook in if you are wiring up a custom endpoint or a REST route on a multi-language real estate website. The Registration Point All inbound […]
Rewrite Rules & Query Vars — User Guide
Behind every /es/properties/modern-loft/ URL is a small piece of WordPress magic called a rewrite rule. It tells WordPress: “When the URL starts with /es/, treat the rest of the path as a normal request in Spanish.” The WPResidence Translate plugin adds these rules automatically whenever you configure a language. This article explains what rules get […]
Translating Theme & Plugin Strings — Developer Guide
This article documents how the string translation subsystem of the wpresidence-translate plugin (text domain wpr-translate) is wired internally: the admin screen, the storage table, how rows land there, and how the admin runtime provides translations back to gettext when editing. Read the user-facing version for the day-to-day workflow and the broader multi-language real estate website […]
Translating Theme & Plugin Strings
Beyond posts and pages, a real estate site is full of UI labels that come from PHP code: search filter labels, button captions, email subjects, dashboard messages, error notices, and widget titles. WPResidence Translate gives you one screen to translate every one of these strings into every language you activate, without editing PO files by […]
Translating Posts and Pages — Developer Internals
This article is the developer-facing companion to the post translation workflow. It documents the editor hooks, the AJAX handlers, the draft cloning path, and the meta/runtime layer that make the user-facing flow work. For product context see the user article and the multi-language real estate website landing page. Files Involved File Role includes/admin/post-editor.php Meta box, […]
Translating Posts and Pages
Once you have added your languages, the next step on a multi-language real estate website is translating your actual content. WPResidence Translate adds a dedicated workflow to the standard WordPress editor that lets you create a language variant of any post, page, property, agent, agency, or developer, edit it, and keep it linked to the […]
Post List Table Enhancements — Developer Internals
The WPResidence Translate post list integration is split into focused files under includes/admin/post-list-*.php. This article maps each file to a UI responsibility so you can trace behavior, override it, or extend it from a child plugin. For product context, read the user article and our multi-language real estate website guide. File Map File Responsibility post-list-hooks.php […]
Post List Table Enhancements
Once WPResidence Translate is active, the WordPress admin post list (for posts, pages, properties, agents, agencies, developers, and any translatable custom post type) gains a set of controls designed to make multilingual editing fast. This article walks through every addition from a site editor’s perspective. If you are running a multi-language real estate website, these […]
Translation Linking — The trid System
The trid (translation group ID) is the central identifier that binds language variants of the same content together in WPResidence Translate. This article documents the schema, the helper functions, the lookup paths used by queries, and the action hook you can use to observe group mutations. For the conceptual overview see the user article; for […]
How WPResidence Translate Links Translations Together
When you translate a post with WPResidence Translate, something has to remember that the French version and the English version are really the same piece of content — only in two languages. That connective tissue is called the translation group, and every group has a unique ID called a trid (short for translation ID). This […]
Meta Sync Across Language Variants — Developer Guide
This article covers the meta synchronization pipeline in thewpresidence-translate plugin (text domain wpr-translate): how rules are loaded, how they are normalized, which hooks drive the synchronization, and what safeguards prevent infinite loops. It is the companion to the user-facing Custom Field Rules article and feeds into the wider multi-language real estate website architecture. Files Involved […]
Meta Sync Across Language Variants
When you translate a property, some information should be identical in every language — the price, the number of bedrooms, the GPS coordinates — while other information should be unique per language — the title, the description, the SEO summary. WPResidence Translate gives you a per-field rule engine that decides, for each custom field, whether […]
Taxonomy Translation — Developer Guide
This article maps the taxonomy translation subsystem in the wpresidence-translate plugin (text domain wpr-translate). It covers the settings storage, the term duplication pipeline, the hierarchy synchronizer, admin list-table filters, and the adv6 search compatibility shim. For the broader plugin architecture underpinning a multi-language real estate website, see the plugin overview. Files In Scope File Role […]