Build multilingual navigation

Use one WordPress menu and let POM Translate localize its public labels and eligible destinations.

Prepare the menu

  1. Remove obsolete and duplicate items.
  2. Prefer native post, term, archive, and home links where WordPress can identify the destination.
  3. Classify custom URLs as internal or external.
  4. Save the menu so item labels and descriptions are extracted.

Translate and localize

  1. Translate menu labels and enabled descriptions for each target locale.
  2. Add localized post and term slugs for native destinations.
  3. Translate registered custom internal destinations through the custom URL workflow.
  4. Leave genuine external URLs unchanged unless the external service publishes a separate supported localized destination.
  5. Add the POM Translate language selector as a menu item or render a selector elsewhere.

Validate behavior

Open a nested target-language route while logged out. Confirm:

  • the correct menu is rendered;
  • every internal link retains the active locale;
  • hierarchical parent and child paths are localized;
  • the home link follows the configured base-prefix policy;
  • the current-language selector state and alternate links are correct;
  • external and download links are not accidentally prefixed.

Test desktop, mobile, sticky, and cached menu variants. After changing a label, slug, or custom URL, clear integration-owned page/CDN caches if they do not respond to POM Translate change events.

Do not create a separate menu per locale merely to work around one unsupported link. Diagnose the destination type and use its matching translation contract.