WPML lets you translate WordPress menus and create different menus per language. You can translate menus automatically, manually, or have WPML synchronize menu content.
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:
- Option 1 – Translating Menus Automatically
- Option 2 – Translating Menus Manually
- Option 3 – Automatic Menus Sync by WPML
- Translating Custom Links
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.
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.
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.
You may need to translate your menus manually if:
- You want to create a completely different menu in your secondary languages
- You are using the Translate What You Choose translation mode and do not want to sync the menu structure across all languages
- Your menu items use custom navigation labels
To manually translate your menu, go to Appearance → Menus and click on the plus icons next to your secondary language(s).
Create a new menu in your secondary language. WPML automatically links it as a translation of the menu in your default language.
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.
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.
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.
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.
- 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:
- Go to the WPML → WP Menus Sync page and press Sync to sync the menu structure across languages.
- 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.
- 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.
- Once you add the translations, return to WPML → WP 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.