WPEstate Translate turns a WPResidence website into a multilingual one: properties, agents, agencies, developers, pages, menus, categories and theme texts in every language you add. These steps are for version 1.0.9. Update the plugin first if your version is older.
What You Can Translate
| Content | Where you translate it |
|---|---|
| Properties, agents, agencies, developers, pages, posts | A linked copy of each item, one per language |
| Property categories, actions, cities, areas, features | A linked copy of each term |
| Menus | A separate menu for each language |
| Buttons, labels, forms, dashboard and email texts | .po files and WPEstate Translate > Theme & Plugins Strings |
| Headers, footers and property page layouts built in Studio | A linked copy of each Studio template |
How Visitors Get Their Language
The language comes from the address. The default language has no prefix, for example example.com/properties/. Every other language opens under its own prefix, for example example.com/br/. Visitors change the language with the language switcher. The plugin also adds hreflang tags so search engines find each version.
Set Up the Languages
- Install and activate WPEstate Translate. The WPEstate Translate menu appears in wp-admin.
- Open WPEstate Translate > Languages. Pick a language in Language Catalog and click Add language. Repeat for each language.
- Choose the default language with the Default radio button. It is the language of your existing content.
- Click Save languages.
Use Content language in the top admin bar to choose which language you see in the wp-admin lists.
Translate Properties, Pages and Posts
A translation always starts as a copy of the original: text, Elementor layout, images, property details, agent and floor plans. You then change the text yourself or let a translation service do it.
By hand
- Open the original from Properties, Pages, Posts, Agents, Agencies or Developers.
- Click Add Português translation (your language) in the Automatic Translation box on the right. For an item that already has a translation, the link reads Edit Português translation.
- Change the title and the texts. For Elementor pages click Edit with Elementor and replace the text in each widget.
- Publish.

The Language column of each list does the same: Add br creates the translation, View br opens it.

With automatic translation
- Connect a service. In WPEstate Translate > Automatic Translation, tick Automatic Translation, choose OpenAI, Google Translate, DeepL or Microsoft Azure in Translation Engine, paste the API key and click Save Settings. Details: Automatic translation with OpenAI, Google, DeepL or Azure.
- One item: create the translation as above and click Auto translate in Português in the same box. Afterwards the button reads Redo the translation.
- Many items: under Select Post Type for Translation, choose the language, set Translate for the content types you want and click Start translation. Pages go last.


Read every machine translation before you publish it.
Translate Categories, Cities and Features
- Open WPEstate Translate > Taxonomy Translation. Keep Translatable for the taxonomies you want in several languages. Tick Automatically duplicate missing translations to let the plugin create the missing terms. Click Save Settings.
- Open the term list, for example Properties > Categories.
- Click Add br in the Language column, type the translated name and click Update.


Translate the terms first, then the properties. A translated property takes the translated terms, and a term without a translation stays off the translated property unless automatic duplication is on.
Translate Menus
- Translate the pages first, so the menu has pages to link to.
- Go to Appearance > Menus and create a new menu. Name it, for example Main Menu PT, and pick its language in the dropdown next to the name.
- Tick the locations (Primary Menu, Mobile Menu, Footer Menu and so on) and click Create Menu. The menu fills those locations only for its language.
- Fill it with Menu Synchronization. In WPEstate Translate > Menu Synchronization, choose the default menu in Source Language Menu and the new menu in Translated Menus, then click Menu synchronization. Links go to the translated pages. For pages without a translation, add a Fallback link. Items can also be added by hand.


Custom Field Rules
WPEstate Translate > Custom Field Rules sets what each field does when a translation is created. WPResidence ships with the rules ready.
| Rule | Result |
|---|---|
| Translate | Each language keeps its own value |
| Copy | Same value as the original, updated with it |
| Copy Once | Copied at creation, then edited per language |
| Ignore | Not touched |
Property fields set to Translate: state, country, status, label, the texts before and after the price and the second price, owner notes, and the header title and subtitle over the image or video. Everything else (price, size, rooms, bedrooms, bathrooms, address, map position, agent, gallery, video, virtual tour, floor plans, energy class) is Copy. Agents, agencies and developers have their own groups on the same screen.
To change a rule, open a group such as Property Fields > Translate and pick another rule next to the field. It saves right away and applies to translations created or refreshed after that.

Translate Theme and Plugin Texts
Buttons, labels, search forms, the dashboard and emails are theme and plugin texts. Two tools translate them and work together:
| Tool | Use it for |
|---|---|
| .po files, edited with Loco Translate | The default language, and full translation files for other languages, for example pt_BR.po in the child theme and wpresidence-core-pt_BR.po for WPResidence Core. See How to translate WPResidence. |
| WPEstate Translate > Theme & Plugins Strings | The other languages: check what the .po files already hold, add what is missing, change any text |
The page loads the .po file of the language in the address. A text saved in Theme & Plugins Strings replaces the same text from the .po file. Texts left empty there keep the .po translation.
- Open WPEstate Translate > Theme & Plugins Strings. The box Where are translation files loaded from? lists the .po files in use.
- Click Scan for translations. Each language gets a column, already filled with the translations from your .po files.
- Find the text with Search and Domain (for example Theme: Wpresidence), then click Filter.
- Type the translation. It saves when you click outside the box and the label below changes to Saved. The default language column is read only.
- Click Generate translation files. The site shows the new texts after this step.
To let a service fill a whole domain, choose the domain and the language under Automatic translate strings and click Automatic Translate.

Theme Options Texts
Some labels are typed in Theme Options, for example Theme Options > Property Page > Listings Labels. The Theme Options field holds the default language. For the other languages, translate the label in Theme & Plugins Strings, domain wpresidence_admin, and click Generate translation files.
Save Theme Options with Content language set to the default language. In any other language the changes are not saved, so a translation never replaces your default text.
Property, Agent, Agency and Developer URL Names
Each property, agent, agency and developer page has a name in its address, for example example.com/properties/sea-view-villa/. Every language can use its own name.
- Default language: go to Theme Options > General > Property, Agent, Agency, Developer Links Names, change the names and click Save Changes.

- Other languages: go to WPEstate Translate > Languages and fill Properties URL, Agents URL, Agency URL and Developer URL in the row of that language. With imoveis for Portuguese, a property opens at example.com/br/imoveis/sea-view-villa/. An empty field keeps the default name. Click Save languages.
- Save the permalinks: go to Settings > Permalinks, keep Post name and click Save Changes. Do it after each change of a URL name.

Category, city, area and state names in the address stay the same in every language.
Add the Language Switcher
| Header type | How to add the switcher |
|---|---|
| Theme header | WPEstate Translate > Settings > Menu Language Dropdown: for each menu location choose Before menu items or After menu items and click Save Settings. Style it in Theme Options > Header > Language Switcher. |
| Elementor header or footer made in WPResidence Studio | Open the template with Elementor and add the Language Switcher widget. A Navigation Menu widget also shows the dropdown when its menu sits in a location that has it turned on. Style the switcher from the widget settings. |
| Sidebar or footer widget area | Appearance > Widgets, widget WPResidence Language Switcher |


More: The WPResidence Language Switcher widget and Menu translation and language-specific menu locations.
Translate WPResidence Studio Templates
Headers, footers, mega menus and the property, agent, agency and developer templates made in Studio each need a translation.
- Go to Studio Templates. The Language column shows what is translated.
- Click Add br, or open the template and click Add Português translation in the Automatic Translation box.
- The copy opens as a draft with the same design, template type and display location, so it shows on the pages of its language.
- Click Edit with Elementor and change the texts in each widget, or click Auto translate in Português if a service is connected.
- Publish, then repeat for each template and language.


A Text Is Still Not Translated
- Update WPEstate Translate if it is older than 1.0.9.
- Find where the text lives. Page content, Elementor widgets and Studio templates are changed on their translated copy. Theme Options labels and theme texts are changed in Theme & Plugins Strings.
- Default language: fix the text in the .po file with Loco Translate, or in its Theme Options field.
- Other language: open Theme & Plugins Strings, search the text, type the translation and click Generate translation files. If the text is not listed, click Scan for translations first.
- Clear the cache: WPResidence cache, caching plugin, server, CDN and browser.
