Drupal 8 Multilingual Hack #1: build unique menus per languages

There are always unique needs for site structuring on multilingual sites. This hack applies if you need unique menus for each language.

  1. Install the Language module and add more than one language.
  2. At /admin/structure/menu, create menus for the languages or sets of languages you want to have independent navigation for. For example if you installed Drupal in English and added Hungarian in step 1, your existing Main navigation menu is English. You can add a Főmenü for Hungarian.
  3. At /admin/structure/types configure the Page content type to be able to be assigned to either of the menus (in this case both Main navigation and Main navigation (hu)).
  4. Now you can create pages on the site and place them either in the English or Hungarian menu. (Unfortunately there is no way in core to hide the menus not associated with the language of the page being edited).
  5. To actually display the menu appropriate for the language of the page, go to /admin/structure/block and edit the existing Main navigation menu block to only show on English pages. Add the Main navigation (hu) block to the same Primary navigation region and set it to not display its title and only show for Hungarian.

It is also possible to include the same page in multiple menus, if you are using Content translation to translate Page nodes. The content editing screen only allows you to edit one menu item for a piece of content, so the inclusion in another menu need to be manually configured at /admin/structure/menu by adding the node's path to the other menu.

Modules used: 

Features used: