Skip Navigation
December 4, 2023

WPML lets you translate WordPress menus and create different menus per language. You can translate menus automatically, manually, or have WPML synchronize menu content.

Using the Site Editor (formerly known as Full Site Editing or FSE) to create menus?

If you are using the Navigation block to add menus into templates, please see how to translate menus in Site Editor templates.

On This Page:

For all of the following options, your secondary language menu will only display translated items. This is the case even if the post types used in the menu are set as Translatable – use translation if available or fallback to default language

Option 1 – Translating Menus Automatically

WPML offers a translation mode called Translate Everything Automatically. This mode translates all your content automatically when it is set as Translatable – only show translated items and the Translate Automatically toggle is set to Yes.

Post types set to Translatable – only show translated items

If your menu item belongs to a post type with this setting, it will display on the front-end as translated without having to translate your menu.

Please note: If you have Translate Everything Automatically mode set to Review the translations before publishing, you must approve the translations of the page or post for the translated menu to display on the site’s front-end.

Option 2 – Translating Menus Manually

You may need to translate your menus manually if:

To manually translate your menu, go to AppearanceMenus and click on the plus icons next to your secondary language(s).

Menu with language controls

Create a new menu in your secondary language. WPML automatically links it as a translation of the menu in your default language.

WPML links the menu as a translation of the default language menu

Add the posts, pages, categories, and menu items of your choice. If you want your secondary language menu to use custom navigation labels, input the translated names. 

Add the menu items and if needed, input the custom navigation label names

Option 3 – Automatic Menus Sync by WPML

The menu sync tool aims to keep your menus in different languages synchronized. It does this by adding, removing, and updating items from the translated menus to match the default language menu.

To use WPML’s menu sync, go to WPML → WP Menus Sync. WPML will show you the changes it plans to make.

The menu sync tool shows you what needs updating

You’ll see which entries will be added or removed from the translated menus. Click on the Sync button to perform the selected operations. Once you review the changes, click the Apply changes button.

Review the changes, select what to apply and click Apply Changes

Anything you manually add to the translated menus will be preserved throughout the WPML sync operation.

On the Appearance → Menu page, you can add custom links to your WordPress menu. This allows you to:

  • Link out to social media profiles or external websites
  • Point to a page on your site that’s not covered by other menu categories
  • Link to internal pages, such as Archives, with custom descriptive text
  • Create a dropdown sub-menu with a title, but without a link

For every custom link that you add, you can input the URL of the website you want to direct visitors to and a label, which is the text you see in the navigation. WPML lets you translate the URLs and labels of custom links in two ways:

  • Manually from the Appearance → Menu page. This option requires you to click the plus icon next to each language you want to translate your menu into. You can then expand the Custom Links section to manually add the link and text you want to display in your secondary language menu.
Manually creating the secondary language menu with custom links
  • By syncing the menu structure and then using WPML String Translation to translate the URL and label of the custom menu item. To do this:
  1. Go to the WPMLWP Menus Sync page and press Sync to sync the menu structure across languages.
  2. After you confirm the entries and the synchronization finishes, a message at the bottom of the page informs you that you need to translate some items using String Translation. Clicking the link takes you to the String Translation page, where the table is already filtered to display the custom links from your menu.
Clicking the link to go to the String Translation page
  1. On the String Translation page, click the plus icon next to each menu item URL and label that you want to translate. In the example below, we are translating the label for Returns & Exchanges into Spanish.
Translate the menu item and the link
  1. Once you add the translations, return to WPMLWP Menus Sync and run the Sync again. This updates your menu with the newly translated links and labels.

To check if your custom links are working correctly in different languages, go to your site’s front-end and use the language switcher to switch to a secondary language. You should see the translated labels and the links should lead you to the URL you set in String Translation.

Custom link on the translated version of the page