Aurelia renders the WordPress menu assigned to the active language and consumes the Free-owned Language Navigation public contract. It does not call WPML or Polylang directly and it does not create fallback menu items from private plugin state. Secondary pages such as Contact, Privacy Policy, My Bookings and Booking remain ordinary WordPress or Hotel Booking routes with theme-owned presentation.
Configure and verify
- Open Appearance → Menus and assign a primary menu to each language. Include page-backed Home, Booking, Rooms and customer links where those pages exist.
- Add Custom Links for virtual Rooms or Search Availability paths in each language menu. Keep the localized path, such as
/vi/rooms/or/vi/search-availability/, in the corresponding menu. - The header reads
hotel_booking()->languages()and renders only safe, switchable items. Check the current marker, native label, direction and keyboard focus at desktop and mobile widths. - Switch from Vietnamese to English while on Rooms or Booking. The virtual route hotfix must preserve the route; sensitive confirmation and payment routes remain locked without a switch URL.
If a custom link disappears, repair the language-specific menu assignment before changing theme code. Keep menu labels concise, provide a visible focus style and let Core own URL security and locale persistence.