Skip Navigation
May 6, 2024

In this tutorial, you’ll learn how to translate different kinds of WordPress menus, which include different types of menu items, using WPML.

A Menu In The Default Language On The Front-End
A Translated Menu On The Front-End

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

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:

If your menu includes custom links you can translate them later, while creating menus for your secondary languages.

2. Choose the Right Menu Translation Method

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 

Use WPML’s WP Menus Sync

Keeps your menus in sync across languages

Gives you the flexibility to translate and adjust custom links

Complete control over menu translations and structure for each language

More manual work

Easiest – Let WPML Create the Translated Menus For You

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:

  1.  Go to Appearance → Menus and create a menu in your default language.
An example of a menu on the backend of the site
  1. 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.
Making post types translatable in WPML Settings
  1. 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.

Viewing the translated menu on the front-end

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. 

Easy and Customizable – Use WPML’s WP Menus Sync Feature

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.

A default language menu with custom links on the backend

To get started:

  1. Go to WPML → WP Menus Sync. WPML shows you planned changes and items to be added or removed. Click Sync to synchronize.
Clicking the Sync button to synchronize your menu across languages
  1. 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.

Translating the labels and URLs for custom links in String Translation

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.

Fully Custom – Create the Menu Translations By Yourself

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:

  1. Go to Appearance → Menus and click the plus icons next to your secondary language(s).
Clicking the plus icon to create a menu in the secondary language
  1. 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.
Creating the secondary language menu
  1. 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.
Adding menu items and creating translated custom navigation labels

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.