2016-09-12 1 views
0

Ich versuche, die Menüverknüpfung programmgesteuert zu erstellen. Aber es funktioniert nicht, wenn die Ausgangssprache nicht Englisch ist. Hier ist mein Code.So erstellen Sie mehrsprachige Menüverknüpfung programmgesteuert in 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); 
    } 

Hat jemand eine Idee zu diesem Thema?

Antwort

0

Ich habe meinen Code geändert. Und es funktioniert für mich.

// 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(); 
    } 
    } 

Kann für andere hilfreich sein.

Verwandte Themen