What gets translated on your WordPress site
WP Provider Translate translates everything a visitor reads or hears on your site: page text, titles, menus, page addresses, image descriptions, button labels, SEO tags, structured data, text that appears after the page has loaded, and WooCommerce emails. It works on the finished page, so it does not matter whether the text comes from your editor, your theme, a page builder or another plugin. Codes, prices, email addresses and what visitors type are left as they are.
Page text and page titles
Everything on the page is translated: content, headings, theme texts, widgets, footers and sidebars. Each sentence is translated as a whole, including words inside a link or in bold, so the translation reads naturally and the link and formatting stay in place. The page title shown in the browser tab and in search results is translated too.
Menus
Menus are translated like the rest of the page. A menu item that links to a page that is not available in a language yet is removed from the menu in that language, so visitors never land on a page in the wrong language. See How translation runs for when a page becomes available.
Translated page addresses (slugs)
Each page, post, product and category gets an address in the visitor’s language, made from its translated title. For example, /about-us/ can become /es/sobre-nosotros/. The untranslated address keeps working: it redirects permanently to the translated one. A translated address is made once and does not change when you correct the translated title later, so links people shared keep working. What follows an address, such as an order confirmation, is kept.
Links
Links to other pages on your site point to the same language, so visitors stay in their language as they click around. The same goes for forms and the canonical address. Links to other sites, files (images, PDFs), wp-admin and feeds are left alone. If a language has its own domain, links point to that domain; see A domain per language.
Image alt text, button labels and placeholders
Text that visitors read or hear but that is not visible as page text is translated too:
- Image alt text and titles, which screen readers read out and search engines use.
- Accessibility labels (
aria-label) on any element, such as “Open menu”. - Tooltips on links and buttons.
- Placeholder text in search fields, text fields and text areas.
- Button labels on submit and reset buttons.
Meta description and social share previews
The meta description and the texts that social networks and chat apps show when someone shares a link are translated: the title, description and site name, plus the image description and the article category and tags. The share image itself can be different per language; see Images and content per language.
Structured data (schema)
Structured data that SEO plugins and themes add for search engines is translated: names, descriptions, headlines, captions, FAQ answers, HowTo steps, article sections and keywords. Addresses in it point to the page in the visitor’s language, and the language of the page is filled in. Names of people, organisations and brands stay as they are, because a name is not translated. See Multilingual SEO for everything else search engines get.
hreflang, canonical and sitemaps
Every translated page tells search engines which language versions exist (hreflang), points its canonical to itself in its own language, and gets the right language for share previews. Your XML sitemaps list the language versions of every page. Multilingual SEO explains this in full.
WordPress, theme and plugin texts
Buttons, dates, messages and labels that come from WordPress itself, your theme and your plugins (“Add to cart”, “Read more”, “Leave a comment”) use the official WordPress translations where they exist. WP Provider Translate installs these language packs for you in the background. A text that no language pack translates is translated like page text, so nothing stays behind in the original language.
Text in scripts, blocks and page builders
Many themes, blocks and page builders keep some of their text in data that a script turns into the page. WP Provider Translate finds and translates the visitor text in it:
- Block data, such as the WooCommerce block cart and checkout and other blocks that load their content as data.
- Script labels that plugins hand to their scripts (“Loading…”, “No results”), when no language pack translates them.
- WordPress block labels, such as “Previous products” or “Open menu” in the navigation and query blocks.
- Divi’s text per device, so the mobile and desktop versions of a text are both translated.
- Hidden templates that a script shows later, such as the WooCommerce mini cart and notices in block themes.
Settings, codes and numbers in that data are left unchanged, so the scripts keep working. More about builders on Page builders.
Text that appears after the page loads
Some text only appears when a visitor does something: a “load more” button, a filter, a search that updates as you type, a form’s result message. This text is translated too:
- Content loaded into the page, such as more products or a filtered list, is shown in the visitor’s language, and its links point to the same language.
- Messages that a form or widget shows, such as “Thank you for your message” or an error, are translated.
- Text a widget adds later in the browser is looked up among the translations your site already has. Text seen for the first time is translated within seconds, and later visitors see it translated right away.
Only translations your site already has are used here. Values a script sends back, such as names and ids, are never changed.
Form messages
Messages that a form only shows after someone sends it, such as “Your message has been sent” or “This field is required”, are translated with the page, before anyone sends the form. This works out of the box for Elementor Pro forms; see Forms and donations for other form plugins.
WooCommerce cart and checkout
The cart, checkout and order confirmation are shown in the visitor’s language, including what the block cart and checkout load after the page opens, product options in the cart, and responses after adding a product or placing an order. The customer’s own details, such as names and addresses, are never translated or sent. See WooCommerce.
WooCommerce emails and payment texts
Customer emails go out in the language the order was placed in. Two kinds of text are translated for that:
- Texts you saved in the WooCommerce settings: email subjects, headings, additional content and the email footer, and the titles, descriptions and instructions of your payment methods. Placeholders such as
{order_number}stay intact. - Texts in the email templates that no language pack covers, for example from another plugin or a customised template. WP Provider Translate builds every enabled customer email once with WooCommerce’s sample order, in each language, so these texts are translated before your first order comes in. The sample order’s own details are left out.
You can read and correct these texts under WP Provider Translate → Translations; see Correct and review translations.
Images, videos and documents
Text inside an image, a PDF or a video cannot be translated. Instead, you can choose a different image, video, audio file, embed, document or share image per language. See Images and content per language.
Payment notifications and form posts
Payment providers and forms often send data back to your site. WP Provider Translate never redirects such a request, also not when it arrives at a language address, because a redirect would lose what was sent. Only ordinary page views are redirected, for example from an untranslated address to a translated one. Login and wp-admin on a language domain move to your main domain and keep what was sent, so logging in keeps working.
What is not translated
Some things are left as they are on purpose:
- Code and technical content: scripts, styles, code blocks, preformatted text, embedded frames and SVG graphics.
- Data instead of text: product codes with digits (SKUs), email addresses, web addresses, and values without at least two letters.
- What visitors type or own: values from the address bar such as order numbers, reference numbers and search terms, and customer names and addresses. The sentence around such a value is translated, the value itself is never sent.
- Names in structured data of people, organisations and brands.
- Script templates that contain template code, so they cannot break.
- wp-admin, page builder editors and the live editor’s own buttons.
Nothing is sent for translation from pages only logged-in users see, previews, form posts or WooCommerce order pages. See Privacy and what is sent.
Keep a text from being translated
To keep a word or a section in its original language, such as a brand slogan, add the class notranslate or the attribute translate="no" to the element. Everything inside it is left as it is. Most page builders have a CSS class field for this under the element’s advanced settings. The language switcher uses this too, so language names always show in their own language.
To show a section only in some languages instead, see Images and content per language.
Troubleshooting
- A text is still in the original language. It may be new and not translated yet: it shows translated once its translation arrives. If it stays, check whether it sits inside an element marked
notranslate, or whether it is text inside an image. You can also open the page with Edit translations and check the text under All texts. - WordPress or plugin texts stay in the original language. Check the Status section of WP Provider Translate → Settings. If it says the language packs could not be installed because the host does not allow it, these texts are translated like page text instead, which can take a little longer.
- A product code or email address was not translated. That is on purpose: codes, email addresses and web addresses are left as they are.
For developers
wppt_page_textsadds texts a page shows only after an action, so they are translated with the page.wppt_json_keys,wppt_json_attributesandwppt_rest_routestell WP Provider Translate where else visitor text lives in JSON, HTML attributes and REST responses.wppt_may_extractandwppt_visitor_valueskeep pages or values that belong to one visitor from being sent.wppt_stored_textsqueues texts saved in settings that no page shows.wp wpprovider-translate textsandwp wpprovider-translate email-textsqueue and list the settings and email texts.
Details: Filters and actions and WP-CLI commands.