In this tutorial, you’ll learn how to translate different kinds of WordPress menus, which include different types of menu items, using WPML.
WordPress allows you to create menus in several ways, including:
- Using the WordPress Menu Editor under Appearance → Menus
- With the Navigation block in the Site Editor (part of Full Site Editing or FSE)
This guide focuses on the different ways you can translate the menus you create from the Appearance → Menus page.
If you only see Appearance → Editor and not Appearance → Menus on your site, it means your theme uses the Site Editor (formerly known as Full Site Editing or FSE). Learn how to translate menus created with the Site Editor.
On This Page:
- 1. Translate the Content that Appears in the Menu
- 2. Choose the Right Menu Translation Method
Your website’s menu guides visitors through your WordPress website. It likely includes links to pages, posts, products, and categories. You might also enhance it with custom links to external sites or social media.
Before you jump into translating the menu itself, you need to translate the content it links to.
For example, let’s say you have a gardening blog that features a “Gardening Basics” page in the menu, offering invaluable tips for beginners. Next to it, you place a category named “Organic Gardening,” leading readers to all your posts about eco-friendly gardening methods.
To ensure your visitors can smoothly navigate your multilingual site:
- Translate your posts and pages. This includes the “Gardening Basics” page, posts assigned to the “Organic Gardening” category, and any other content your menu links to.
- Translate your categories and other taxonomies. Go to WPML → Taxonomy translation to translate your “Organic Gardening” category and any other taxonomies in your menu.
If your menu includes custom links you can translate them later, while creating menus for your secondary languages.
Once you translate your content, you can proceed to creating your translated menus. To help you choose the best method for your needs, here’s a brief overview of each option.
- WPML automatically creates translated menus with the same structure and items in all languages
- Menu can’t include custom links or custom navigation labels
Easy & Customizable
- Keeps your menus in sync across languages
- Gives you the flexibility to translate and adjust custom links
- More manual work
- Complete control over menu translations and structure for each language
If you need the same menus in all your site’s languages, WPML simplifies it for you. WPML can automatically create and show these translated menus on your site’s front-end, as long as they don’t have custom links or labels. Just translate the posts, pages, categories, and any other items in your default language menu, and WPML will handle the rest.
To get started:
- Go to Appearance → Menus and create a menu in your default language.
- Go to WPML → Settings and confirm your post types are set to one of the two Translatable options. Your secondary language menus will only display content that you translate, even if the post types added to the menu are set as Translatable – use translation if available or fallback to default language. If you’re translating your site automatically, make sure the Translate Automatically toggle is set to Yes.
- Translate all the posts, pages, and other content included in your default language menu. If you have chosen to review automatic translations before publishing, approve the translations for the pages and posts.
Once you translate your content, view your site from the front-end. You’ll see that WPML automatically displays the translated version of your menu. Although the backend of your site will only show the menu in the default language, WPML will continue to automatically update your front-end menus whenever you add, remove, or rearrange pages in your default language menu. You only need to remember to keep the translations of any newly added or edited content up-to-date.
To maintain this automatic process, don’t use the manual synchronization feature in WPML → WP Menus Sync and don’t create the translated menus on the backend of your site. Doing this even once disables WPML from automatically creating menus.
If you want menus to be the same across languages but with customization, like custom links to social media or external websites, use WPML’s WP Menus Sync feature.
It synchronizes your menus across languages, matching your translated menus to your default language menu. You can then translate URLs and labels of custom links using String Translation.
To get started:
- Go to WPML → WP Menus Sync. WPML shows you planned changes and items to be added or removed. Click Sync to synchronize.
- You’re taken to a screen where you can review the changes. Click the Apply changes button.
After the synchronization finishes, a notification at the bottom of the WP Menus Sync page prompts you to translate custom items using String Translation.
Click the link to go to String Translation, where you can translate URLs and labels of custom links. Add your translations, then run the sync again in WPML → WP Menus Sync. This updates your menu with the newly translated links and labels.
You can now go to your site’s front-end and check if your custom links are working correctly in different languages. You should see the translated labels and the links should lead you to the correct URL.
For a fully custom approach, WPML allows you to create individual menus for each language from the Appearance → Menus page. After creating your secondary language menus, WPML links them as translations of your default language menu. However, it won’t try to synchronize or update your translated menus to match your default language menu. It grants you complete control to manually customize each menu as you wish. You can add, remove, or reorder items without worrying about automatic updates.
This method is ideal if you want:
- Entirely different menu items or structures per language
- Links to internal pages, such as Archives, with custom navigation labels
- A different amount of custom links per language
A menu in the default language
A Different menu translation
To get started with this option, ensure all posts, pages, and categories have been translated. Then:
- Go to Appearance → Menus and click the plus icons next to your secondary language(s).
- Give your new menu a name in your secondary language and click Create Menu. 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. You can also add any custom links and custom navigation labels you want your translated menu to display.
Once you’ve saved your menu, visit your site’s front-end. You should see the different menus you created across pages in your default and secondary languages.