Open Translations → Strings.
- Pick the language in the first box.
- Filter by status:
- All — all of them;
- To translate — waiting;
- Machine — translated by the machine;
- Reviewed — reviewed by you;
- Failed — the service could not translate them.
- Use Search… to look for a sentence.
- Click the translation, fix it and click outside the field. It saves on its own — there is no button.
The Where column says where the sentence appears; hover over it to see the address.
A translation reviewed by hand is never replaced by the machine again.
Texts that failed
A text the service cannot translate — not even on its own — is marked Failed and does not block the others. Write the translation by hand in Strings → Failed. The Translate the site button also retries them.
One sentence, one translation
Each sentence has a single translation across the whole site. “Free” is always translated the same way, wherever it appears. If you need different translations for the same word in different places, rewrite the source text to tell them apart.
Recording mode
The plugin reads the site the way an anonymous visitor sees it. That never shows a cart with items, a checkout with validation errors or the message for an invalid coupon — and that is exactly where the sentences that stand out most when left untranslated live.
To catch them:
- Signed in as an administrator, open the site with
?pht_record=1in the address (or click turn on recording mode on the Dashboard). - Browse in the source language: add items to the cart, trigger checkout errors, use an invalid coupon, submit incomplete forms.
- Go back to the Dashboard and click Import recording.
- Click Translate the site to translate what was imported.
It only works for administrators and costs nothing for any visitor.
WordPress translation packs
A translated site has two sources of text:
| Source | What it translates | Cost |
|---|---|---|
| Official WordPress.org packs | The software interface: “Subtotal”, “Proceed to checkout”, “Add coupon”, error messages, dates, currency | Free, reviewed by people |
| This plugin’s dictionary | The site’s content: products, pages, menus, theme texts | License characters |
If a language’s packs are not installed, WooCommerce shows the cart and the checkout in English, with no error explaining why.
That is why the panel shows the Missing translation packs notice with the Install now button, which installs them one language at a time and says what failed.
The packs are not installed automatically when you save a language: the installation can take a while and, with several languages at once, could exceed the server’s time limit.
If the button does not solve it
The installation needs access to WordPress.org and write permission on wp-content/languages. If the server does not have them, the panel shows the WP-CLI commands to run on the server, such as:
wp language core install es_ES
wp language plugin install woocommerce es_ES
Keeping text from being translated
- Brand names and fixed terms — use the Glossary in Settings.
- A whole block of HTML — add the
translate="no"attribute:
<span translate="no">Name That Stays The Same</span>
- Addresses — text inside
<address>is never translated. - Names of people, emails, phone numbers, tax numbers and addresses are kept exactly as written.
- A bad translation? Fix it in Strings — it becomes reviewed and protected.