Troubleshoot WooCommerce translations

Identify the failing surface first. Product content, gettext messages, request locale, routes, and email fields use different sources.

Product or taxonomy text is missing

  • Confirm product and the required taxonomy are enabled.
  • Save the base product or term after changing its source.
  • Check the target locale under Translations → Translate contents.
  • Translate the product and its categories, tags, and attribute terms separately.
  • Clear product, object, page, and Store API caches.

An untranslated value falls back to its source; it does not create another product or term.

Cart, mini-cart, or checkout uses another language

Open the target prefixed route before adding the item. Remove old cart lines and refresh fragments. Verify WC AJAX or Store API requests carry a lang value, X-Pom-Translate-Lang header, locale prefix, or saved preference.

If standard WooCommerce controls remain in the source language, install the WooCommerce gettext catalog. Registered or product translations cannot replace missing software language files.

My Account returns a 404

Confirm the My Account page exists, refresh Settings → Permalinks, and clear routing caches. Test the localized account page, the endpoint without a value, then a route with a trailing value.

Extension endpoints should use the WordPress page-endpoint API. Manually constructed URLs can bypass WooCommerce's localized endpoint helper.

Order confirmation returns a 404

Open the URL generated by WooCommerce rather than typing an endpoint manually. Confirm that the configured Checkout page is published, save Settings → Permalinks once, clear routing caches, and test both the localized pretty URL and its query-string equivalent.

Keep the order key intact while testing. A wrong or missing key should never reveal order details, even when the route itself resolves correctly.

An email uses the wrong locale

Confirm that the order was created through a supported checkout flow in the intended language. For a legacy order, check the linked customer locale and fallback behavior. Make sure the email object carries its order or customer context and is not an excluded gateway or PDF template.

Email changes did not persist

Preview and Send test email use unsaved fields. Select the form's save action and confirm No unsaved changes.

If saving is blocked, restore every required placeholder and remove unexpected tokens. Regenerate stale previews after changing a field, template, order, or format.

One extension remains untranslated

Determine whether its text comes from:

  • a gettext catalog;
  • a registered label;
  • product or term content;
  • a WooCommerce email object;
  • a generic wp_mail() message;
  • a PDF/gateway integration with its own locale lifecycle.

Apply the matching workflow. Do not register rendered customer or order messages merely to make them appear in the Translation Manager.