Skip to documentation content

Multilingual Sites

Assign menus and custom links per language

Give every language its own primary menu, including custom links for virtual booking routes, so language switching does not lose navigation items.

Aurelia renders the assigned WordPress menu; it does not create a menu from the language provider. A language without an assigned menu can fall back to a page list, which cannot contain user-authored custom links. This is why a Vietnamese menu may appear to lose Booking or Rooms links while English still looks right.

Configure each menu

  1. Open Appearance → Menus and create or select the primary menu for the target language.
  2. Add translated page items for Home, My Bookings, Contact and Privacy Policy.
  3. Add a Custom Links item for the language’s virtual /rooms/ route and another for /search-availability/ or Booking.
  4. Set the visible link text in that language and paste the provider-localized path, such as /vi/rooms/ or /vi/search-availability/.
  5. Assign the menu to the target language in WPML or Polylang, then save.
  6. Repeat for every language and test the header at desktop and mobile widths.

Switch from English to Vietnamese and back. Confirm custom links remain, the active item follows the route and the CTA submits to the same language. Each language-specific menu must be assigned before testing. If a menu is missing, fix its provider assignment; do not duplicate WPML or Polylang logic in a child theme.

The language switcher itself consumes hotel_booking()->languages() and is locked on sensitive booking and payment URLs. See persistent booking routes for form handoff behavior.

Was this article helpful?

Your feedback helps us improve the documentation.