WPML lets you translate WordPress menus and create different menus per language. You can translate menus automatically, manually, or have WPML synchronize menu content.
Option 1 – Translating Menus Automatically
WPML offers a translation mode called Translate Everything. 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 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
If you want to create a completely different menu in your secondary languages, or you choose to Translate Some of your content, you need to translate your menus manually.
To translate your menu, go to Appearance → Menus.
Click on the + icons next to the other languages. Now, you’re creating a new menu, which will be linked as the translation of this menu.
Add your translated pages and categories to the translated menu as you would the default language menu.
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.
You’ll see which entries will be added or removed from the translated menus. Click on the Sync button to perform the selected operations.
Anything you add manually to the translated menus will be preserved throughout WPML sync operation.
Translate Custom Links
If you do not have the WPML String Translation add-on, you can manually edit custom links and their labels in the translated menus.
If you have the WPML String Translation add-on active, you can use it to translate your menu items by following these steps:
- Go to the WPML → WP Menus Sync page and press Sync to add custom links to other languages.
- After the synchronization is done, visit WPML → WP Menus Sync one more time and click the Main menu link.
- On the String Translation page, click the + icon to translate the menu item and the link.
- Go to the WPML → WP Menus Sync page and click Sync one more time to update the translated menu links and labels.