What I need is to add menu item to some menu, but it should have different parameters (title and url) depending on language. So I created new module and added links.menu.yml
like:
my_menu_item_id:
title: 'Dummy Title'
description: 'Dummy Description'
url: http://www.google.com
parent: mainmenu
menu_name: mainmenu
weight: -100
And item appears well. Then I added menu_links_discovered_alter
hook like:
function mymodule_menu_links_discovered_alter(&$links) {
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$links['my_menu_item_id']['title'] = 'Title:'.$language;
}
And title really get's altered, but that renaming is cached. So when I visit some page in other language previous title remains until I clear the cache. How to solve this. How to make Drupal execute this code with every page instead of using cached value?