Skip to content

How translation works, from saving to a live page

WP Provider Translate translates your site in the background, when content changes, not when a visitor arrives. Translations are stored in your own WordPress database, and every page view is served from there without waiting for anything outside your site. A page appears in a language once all of its text is translated; until then visitors see it in your site’s own language.

Translation happens when the page is served

WordPress builds each page as usual, in your site’s language. Just before the page goes out, WP Provider Translate replaces its text with the stored translations for the visitor’s language. Because of this:

  • Any text on the page is covered, whatever theme, builder or plugin wrote it. See What gets translated.
  • Your original pages never change. Your content stays in one language in the editor; the translations live next to it.
  • A missing translation never breaks a page. A text without a translation is shown in the original language and queued for translation. If anything goes wrong, the original page is served.

When you save a page

When you publish or update a page, post or product, WP Provider Translate opens it in every language in the background, about 15 seconds after you save. New and changed text is sent for translation right away and the translations come back shortly after. You don’t have to wait or click anything.

Background sync

New text is sent and finished translations are collected by a background task that runs every minute. Under WP Provider Translate → Settings → Status you see how many translations each language has and the queue: how many texts are not sent yet, waiting for a translation, or failed.

The same section says how your site runs this background work:

  • “Translations are processed when someone visits your site, so on a quiet site they may take a while.” WordPress runs scheduled work when someone visits. On a site with few visitors, translations arrive later.
  • “Translations are processed on a schedule by your server.” Your host runs WordPress’s scheduled tasks on a timer, so translation keeps going without visitors.

The first run over your whole site

When you connect your site or add a language, WP Provider Translate opens every public page of your site in each language, so all text is queued without anyone visiting it first. It goes in this order: the home page, then every public post type with the newest first, then category and tag pages. On a shop it also opens the cart and checkout with a product in the cart.

The Status section shows the progress (“Translating the whole site: … pages rendered.”) and says when the whole site is done.

Blog lists, shop pages and “load more”

Lists that continue on more pages, such as the blog, categories, the shop, query loops and “load more” buttons, are followed up to page 20 of each list. That way text that only a list shows, such as excerpts, is translated before the first visitor opens page 2.

Widgets visitors use

Some widgets fetch their content after the page has loaded, such as a product filter or a sort menu. When visitors use such a widget, WP Provider Translate remembers the request and makes it again during the next run over your site, so the next visitor sees the result translated from the start. Requests that carry something of one visitor, such as a search term or an email address, are never remembered.

When a page goes live in a language

A page is shown in a language once all of its text is translated. WP Provider Translate → Pages shows each page per language:

  • Not seen yet: the page has not been opened in this language yet.
  • Being translated: its text is on its way.
  • Live: visitors see it in this language. Live, 2 changes waiting means you changed the page and the changes are being translated; the page stays live meanwhile.
  • Does not fit in your plan: the page needs more of your plan than is left. See Settings and your plan.
  • Left out: you chose Leave out for this page. Translate again undoes it.

Translate first moves a page to the front of the queue. The home page is always shown in every language.

Until a page is live in a language, it is left out of the language switcher, menus, lists, hreflang links and the sitemap in that language, and its address leads to that language’s home page. Choose your languages shows this screen step by step.

Choose which languages a page appears in

By default every page appears in every language. You can limit a page to some languages, or mark a page as written in another language.

  1. Open the page, post or product in the WordPress editor.
  2. In the Languages box in the sidebar, under Available in, choose Only these: and tick the languages the page should appear in.
  3. If the page itself is written in one of your other languages, choose that language under Written in. It is then served as written in that language, translated into the other languages you ticked, and not shown in your site’s own language.
  4. Save the page.

You can set the same in the pages and posts lists with Quick Edit and Bulk Edit, and in Elementor under the page settings. To do this for many pages at once by their address, such as everything under /blog/, use address rules; see Images and content per language.

In a language where the page is not available, it is left out of the switcher, menus, lists, hreflang links and the sitemap, and its address leads to that language’s home page.

How translations are marked

Every translation has a state, which you see on the Translations screen and in the live editor:

  • Machine: translated automatically.
  • Reviewed: someone checked it and marked it as good.
  • Corrected: someone edited it.
  • Imported: brought over from WPML or TranslatePress when you switched.

Only Machine translations are ever replaced automatically. Reviewed, Corrected and Imported translations are yours: WP Provider Translate never overwrites them. See Correct and review translations.

What happens to your corrections when the original changes

When you edit the original text of a sentence you corrected or reviewed:

  • A small change, such as capitals, punctuation, spacing or one typo, keeps your translation as it is.
  • A real change brings a proposal for the new text, based on your translation, and asks you to choose: keep yours, use the proposal or edit. Your translation stays on the page until you choose. WP Provider Translate → Translations shows how many texts need review.

Machine translations simply follow the new text.

Pages that are gone or never count

Error pages, search results and one-off shop pages (such as an order confirmation) are not counted as pages. Pages you delete, unpublish or move to a new address, and pages that no longer exist, are forgotten before any of your plan goes to them.

Troubleshooting

  • A page stays on “Being translated”. Large pages take a few minutes. On a quiet site, translations arrive when someone visits; see Background sync above. Check the Status section for failed texts.
  • The Status section says the translation service could not be reached. Your pages keep working and show the original text where a translation is missing. Your site tries again by itself; the message says when.
  • Some texts failed repeatedly. Failed texts are retried automatically, waiting longer each time. When they are no longer retried, click Retry failed now under WP Provider Translate → Settings → Status.
  • A page shows in the original language at its translated address. The page is not live in that language yet, or it is not available in it. Check WP Provider Translate → Pages and the page’s Languages box.
  • A change I made is not translated yet. It is on its way: the page stays live with the earlier translation and shows the change once it is translated. If you use a caching plugin, see Caching plugins.
For developers
  • wp wpprovider-translate translate <id> translates posts now and waits for the result; wp wpprovider-translate crawl runs over the whole site.
  • wp wpprovider-translate sync sends and collects once; wp wpprovider-translate retry sends failed texts again; wp wpprovider-translate status shows the queue.
  • wppt_crawl_pages sets how many pages of one list are followed (20 by default, 1 turns it off); wppt_crawl_extra lets you render extra pages during the run.

Details: WP-CLI commands and Filters and actions.