Drupal7で多言語サイトを構築し、i18nとメニュー翻訳モジュールを有効にしています。メニュー項目を翻訳できますが、小さな問題が1つだけあれば問題なく機能します。
メニュー項目が内部ページ(つまり/ user)を指している場合は問題ありませんが、メニュー項目がノードを指している場合、タイトルは翻訳されますが、指定できるパスは1つだけです。
つまり:node/1である英語のページ「About us」があり、URLエイリアス/ about-usがあります。
node/18およびURLエイリアス/ magunkrolの下にこのノード「Manunkról」のハンガリー語翻訳があります。
各言語で正しいタイトルが表示され、クリックすると正しい言語バージョンが表示されます。 [〜#〜] but [〜#〜]英語のページでは、リンクに/ about-usが含まれていますHREF、ただしハンガリー語のページにはnode/1(英語版のノードパス)があります。リンクはリダイレクトされますが、これはSEOに関して理想的なソリューションではありません。各言語のHREFにURLエイリアスを表示する方法はありますか?
言語ごとにメニューを設定すること(他の回答で述べたように)は、問題を修正するのではなく、回避することに似ているようです。 https://drupal.org/node/2051041 で問題を作成し、パッチを添付しました。
そのパッチを使用すると、hrefが期待どおりにレンダリングされないという理由だけで、言語ごとに大量のメニュー項目を設定するという不必要な手間を省くことができます。
これを行う方法は、各言語に1つずつ「固定言語」メニューを作成することです。私はこのトピックについての投稿を書きました。 D7での多言語メニューの設定 。
これに対するもう1つのアプローチは、エンティティ変換を使用し、すべてのノードに単一の言語に依存しないエイリアスを持つことです。 URLは(すべての言語で同じ)ニースではありませんが、他のすべてはうまく機能するはずです。
言語固有のエイリアスすべきは実際に機能するようですが、機能しません。結果は404になります。これはEntity Translationモジュールのバグ/既知の制限のようです。
エイリアスのデフォルトは現在の言語です。この方法を使用する場合は、すべてのエイリアスを手動で編集して「すべての言語」にリセットするか、コードを微調整してこれを自動化する方法を理解してください。