Dropdown Language Switcher
DrupalのDropbutton要素を使用してサイトの言語を切り替えるブロックを提供します。コアのLanguage Switcher Blockと比較して、より充実した表示オプションを備えています。
dropdown_language
インストール
composer require 'drupal/dropdown_language:^4.1'
composer require 'drupal/dropdown_language:^3.1'
概要
Dropdown Languageモジュールは、単純なリンクの箇条書きリストではなく、Drupalの組み込みDropbutton UI要素を使用する拡張された言語切り替えブロックを提供します。これにより、多言語Webサイトに対して、よりコンパクトでユーザーフレンドリーなインターフェースを提供します。
このモジュールは、言語名、言語ID(コード)、ネイティブ言語名、またはブロックインスタンスごとの完全にカスタマイズ可能なラベルなど、柔軟なラベリングオプションを提供します。また、未翻訳コンテンツへのリンクをオプションでフィルタリングすることにより、言語切り替えリンクが実際に利用可能な翻訳のみを指すようにするSEO強化機能も含まれています。
このブロックは、言語が1つだけ設定されている場合は自動的に非表示になり、403/404エラーページではレンダリングされません。現在の言語はドロップダウンの上部に目立つように表示され、クリック不可のリンクとしてアクティブとしてマークされます。
Features
- コンパクトな表示のためにDrupalのdropbutton要素を使用する言語切り替えブロック
- 複数の表示オプション:言語名、言語ID(コード)、ネイティブ名、またはカスタムラベル
- 視覚的なグループ化のための「Switch Language」タイトル付きオプションのfieldsetラッパー
- SEO強化:未翻訳コンテンツをフィルタリングして利用可能な翻訳へのリンクのみを表示
- 翻訳が1つだけ利用可能な場合でもブロックを表示し続けるオプション
- 403/404エラーページでの自動ブロック非表示
- 現在の言語がアクティブスタイリングとクリック不可で上部に表示
- 複数の言語タイプをサポート:インターフェース言語とコンテンツ言語
- カスタムラベルモードが選択されている場合のブロックインスタンスごとのカスタムラベル
- Drupalの言語ネゴシエーションシステムと統合
Use Cases
基本的な多言語Webサイト
訪問者が言語バージョンを切り替える必要がある複数の言語を持つWebサイト向け。Dropdown Languageブロックをヘッダーリージョンに配置し、言語名を表示するように設定します。コンパクトなドロップダウン形式はスペースを節約しながら、明確な言語選択を提供します。
SEO最適化された言語切り替え
SEOが重要で、未翻訳コンテンツへの言語リンクの表示を避けたいWebサイト向け。「未翻訳をフィルタリング」オプションを有効にすると、実際に翻訳がない言語オプションが自動的に非表示になり、検索エンジンが空のページやフォールバックコンテンツページをインデックスするのを防ぎます。
ブランディング用カスタム言語ラベル
特定の言語ラベルが必要なWebサイト向け(例:フラグ付きテキスト、略語、またはカスタム用語の表示)。グローバル設定で「カスタムラベル」を選択し、各ブロックインスタンスで各言語の希望するラベルを設定します。
コンパクトな言語コード表示
スペースが限られており、コンパクトな表現が好ましいデザイン向け。「言語ID」表示モードを選択すると、完全な言語名の代わりに2文字の言語コード(EN、DE、FR)が表示されます。
インターフェースとコンテンツの言語切り替えを分離
インターフェース言語(メニュー、UI要素)とコンテンツ言語が異なる可能性がある高度な多言語設定向け。各言語タイプに対して別々のDropdown Languageブロックを配置し、ユーザーがインターフェースとコンテンツの言語を独立して制御できるようにします。
Tips
- 簡単にアクセスできるよう、ヘッダーのような目立つリージョンにブロックを配置する
- 訪問者が自分の言語をより簡単に識別できるため、国際的なオーディエンス向けにはネイティブ名表示を使用する
- カスタムラベルモードを使用する場合、言語ごとに別々のブロックインスタンスを作成し、言語可視性条件を使用して各言語に適切なラベルを表示する
- 現在の言語は自動的にドロップダウンの上部に配置され、カスタムスタイリング用の「active-language」CSSクラスでスタイル設定される
- 言語切り替えをより目立たせてアクセスしやすくするために、fieldsetラッパー(「Switch Language」装飾)を有効にすることを検討する
Technical Details
Admin Pages 1
/admin/config/regional/dropdown-language-switcher
すべてのDropdown Language Switcherブロックのグローバル設定。言語ラベルの表示方法と視覚的なプレゼンテーションオプションを制御します。
Hooks 1
hook_help
管理ヘルプページでモジュールのヘルプテキストを提供
Troubleshooting 5
管理 > 環境設定 > 地域と言語 > 言語で少なくとも2つの言語が設定されていることを確認してください。「ブロックを表示し続ける」オプションが有効でない限り、言語が1つだけ利用可能な場合、ブロックは自動的に非表示になります。
管理 > 環境設定 > 地域と言語 > 言語に移動し、デフォルト言語(例:English)の「編集」をクリックし、「Enable interface translation to English」にチェックを入れて保存します。その後、ユーザーインターフェース翻訳を使用して文字列を翻訳します。
これは想定された動作です - 混乱と壊れたリンクを避けるため、モジュールは意図的にエラーページ(403 Forbiddenと404 Not Found)でブロックをレンダリングしません。
/admin/config/regional/dropdown-language-switcherのグローバル設定で「カスタムラベル」が選択されていることを確認してください。その後、各ブロックインスタンスを編集して各言語のカスタムラベルを設定します。
グローバル設定で「翻訳が検出されない場合はリンクを削除」を有効にしてください。これはEntityベースのコンテンツ(Node、Taxonomy Termなど)でのみ動作し、適切な翻訳設定が必要です。
Security Notes 2
- 設定ページにアクセスするには「administer site configuration」権限が必要です
- filter_untranslatedが有効な場合、言語リンクを表示する前に翻訳アクセスがチェックされます - 翻訳への表示アクセス権がないユーザーにはその言語オプションが表示されません