私のサイトは複数の言語を使用しており、プログラムでメニューツリーを取得するために menu_tree_all_data() を使用しています。現在、すべてのノードとその変換されたノードは同じメニューツリーを使用しています。
メニューブロックを使用する場合、表示されるメニューは、ユーザーが使用しているサイトの言語バージョンによってフィルタリングされます。どっちがいい。
プログラムでメニューを作成するコードでmenu_tree_all_data()を呼び出すと、ツリー全体が返され、言語でメニューをフィルターするオプションがないようです。
特定の言語用にフィルタリングされたコードでメニューツリーを取得する方法を誰かが知っていますか?
I18n_menu.moduleがインストールされていると思います。この場合、i18n_menu_localize_tree($MENU_TREE)
を使用して、現在の言語のツリーを取得します。
たとえば、(template.phpの)セカンダリメニューを取得するには:
$tree = menu_tree_all_data('menu-secondary');
$variables['secondary_menu_expanded'] = menu_tree_output(i18n_menu_localize_tree($tree));