With Drupal core alone, user-defined menu items are not translatable. The Menu translation module, part of the Internationalization (i18n) package, allows users to select a translation mode for each menu (Figure 1).
The following modes are available:
- No Multilingual Options
- Translate and Localize
- Fixed Language
Translate and Localize Menus
For most use cases, and especially if the structure of your menus is consistent across languages, Translate and Localize is the preferred method of translating menus. You can create one menu for all languages, and translate or localize each menu item. There are two ways that menu items will be translated:
- You can set a language when creating a custom menu item so that the menu item will only show up for that language (Figure 1). Menu items that link to nodes in a particular language will be treated this way.
- You can localize other custom menu items without a language (for example, menu items linking to Views pages). Use the Translate tab to translate the menu item title and description (Figure 2). Translators can also use the 'Translate interface' pages to translate these menu items (Figure 3).
Fixed Language Menus
If you choose Fixed Language, you'll have to set up a separate menu in each language. This could become tedious if have a lot of languages enabled on your site, but is useful if the content or menu structure is different for each language.
Menu Items Linked to Nodes
- For Entity translation use entity_translation_i18n_menu submodule of Entity translation.
- For content translation use Menu translation - Node.
A menu item linked to a node will be displayed only when the node language matches the page language. This is due to how the menu system works and the 'Language selection' feature in i18n. Therefore, to get translated menus items that link to nodes, you first need translated content: see Translating content to different languages.