Drupal 7の多言語主義。メニュー

前に、コンテンツ(ノード)をD7にどれだけ迅速かつ簡単に変換できるかについて説明しました。
次に、メニューを翻訳する2つの方法について説明します。

どちらの場合も、i18n、i18n_menuモジュールを使用します。 今回はエンティティの翻訳はエンティティのみを翻訳できるため、私たちのヘルパーではありません。 Drupal 6では、このためにメニュー翻訳が使用され、後に国際化とマージされました。


i18nモジュールがすでにオンになっており、言語定義が構成されていると想定されます(そうでない場合は、 ここで )。
まず、メニューを翻訳するためのサブモジュールをオンにして、drushを使用しましょう。
drush en -y i18n_menu

最初の方法


メニュー「admin / structure / menu / manage /%menu%/ edit」を編集するためのページで、「Translate and Localize」項目を選択します。


ご覧のとおり、メニューページに新しいタブ「翻訳」が表示されました。


これを使用して、このメニューの名前と説明を翻訳できます。


新しいリンクを作成すると、メニューに言語選択フィールドが表示されます。
重要 :言語を選択する必要があります。選択しないと、このリンクをこの方法で翻訳できません。


「admin / structure / menu / item /%menu_item_id%/ translate」ページで、このリンクに新しい翻訳を追加するか、既存の翻訳を翻訳として指定できます。


翻訳の結果、リンクは複製されますが、言語は異なります。


第二の方法


2番目の方法では、同じモジュールを異なる方法で使用します。

重要:新しいリンクを作成するときは、中立言語を選択する必要があります


すべてを翻訳できるようになりました。 これは、選択した2つのページのいずれかで行われます。
リンク編集ページの「翻訳」タブから。

または、「admin / config / regional / translate / translate」ページで。

2番目の方法を使用する場合、リンク自体は複製されません

結果

英語:
ドイツ語:

更新する

プログラムで出力する場合は、関数を使用する必要があります
 <?php print render( i18n_menu_translated_tree('menu-name') ); ?> 
の代わりに
 <?php print render( menu_tree('menu-name') ); ?> 

Source: https://habr.com/ru/post/J150677/


All Articles