成功。第一links.menu.yml链接我是这样创造的:
my_menu_item_id:
title: 'Dummy Title'
description: 'Dummy Description'
url: http://www.google.com
parent: mainmenu
menu_name: mainmenu
weight: -100
然后我加入了我的模块
hook_menu_links_discovered_alter()
这样地:
function mymodule_menu_links_discovered_alter(&$links) {
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
$links['my_menu_item_id']['title'] = 'Title:'.$language;
}
所以我不得不采用不同的解决方案:
我没有使用钩子函数,而是将“class”参数添加到links.menu.yml链接:
my_menu_item_id:
class: Drupal\my_module\Plugin\Menu\MyPluginClass
title: 'Dummy Title'
description: 'Dummy Description'
url: http://www.google.com
parent: mainmenu
menu_name: mainmenu
weight: -100
当然,我是在
my_module/src/Plugin/Menu
<?php
namespace Drupal\my_module\Plugin\Menu;
use Drupal\Core\Menu\MenuLinkDefault;
use Drupal\Core\Url;
class MyPluginClass extends MenuLinkDefault {
/**
* {@inheritdoc}
*/
public function getTitle() {
$language = \Drupal::languageManager()->getCurrentLanguage()->getId();
return (string) 'Title: '.$language;
}
public function getUrlObject($title_attribute = TRUE) {
return Url::fromUri('http://www.yahoo.com');
}
}