2016-09-12 9 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(); 
    } 
    } 

他にも役立ちます。

関連する問題