2016-09-12 106 views
0

我試圖通過編程方式創建菜單鏈接。但是它不適用於源語言不是英語的地方。這是我的代碼。如何以編程方式在Drupal 7中創建多語言菜單鏈接

$language_list = language_list(); 
foreach ($language_list as $language_code => $language_object) { 
    $menu_item = array(
     'link_title' => t('Fruit'), 
     'menu_name' => 'menu-main-footer', 
     'customized' => 1, 
     'link_path' => $custom_path, 
     'language' => $language_code, 
     'weight' => 30, 
    ); 
    menu_link_save($menu_item); 
    } 

任何人都有這個想法嗎?

回答

0

我改變了我的代碼。它適用於我。

// Create menu translation set. 
$menu_translation_set = i18n_translation_set_create('menu_link'); 

    // Create translated menu link for all site enable language. 
    $language_list = language_list(); 
    foreach ($language_list as $language_code => $language_object) { 

    // Add Fruit link in menu-main-footer. 
    // 'change-fruit' is node title. 
    $fruit_path = drupal_get_normal_path('change-fruit', $language_code); 
    if (!menu_link_get_preferred($fruit_path, 'menu-main-footer')) { 
     $menu_item = array(
     'link_title' => t('fruit'), 
     'menu_name' => 'menu-main-footer', 
     'customized' => 1, 
     'link_path' => $fruit_path, 
     'language' => $language_code, 
     'weight' => 30, 
     'i18n_tsid' => $menu_translation_set->tsid, 
     ); 
     menu_link_save($menu_item); 
     $menu_translation_set->add_item($menu_item, $language_code); 
     $menu_translation_set->save(); 
    } 
    } 

對其他人可能有幫助。

相關問題