web-dev-qa-db-ja.com

ビュー3、言語のコンテキストフィルター-複数の言語に対応

このサイトを構築するために、次のことができるようにする必要があります。

  1. ユーザーがサイトを英語で表示すると、すべての英語の記事が表示されます
  2. ユーザーがオランダ語でサイトを表示すると、オランダ語のすべての記事が表示されますが、翻訳されていない英語の記事も表示されます
  3. ユーザーがドイツ語でサイトを表示するときは、ドイツ語のすべての記事を表示しますが、翻訳されていない英語の記事も表示します。

コンテキストフィルター「コンテンツの翻訳:言語」では、1つの値しか入力できません。それは指定された言語、またはすべてです。

しかし、私の場合、たとえば "en + nl"または "en + de"を設定できる必要があります。 「Has Taxonomy」という分類法でできることのように、「Has Language」のようなものをお願いします。

8
Kasper

私はこのようにこのタスクを解決しました:

  • 「フィルター値が使用できない場合」については、オプション「デフォルト値を提供する」を選択します。
  • 次に、「タイプ」の値として「PHPコード」を使用します
  • 追加した実際のPHPコードは、次のスクリーンショットに示すとおりです。

enter image description here

1つの解決策は、フィールド変換を使用することです。

  1. エンティティの翻訳設定ページで「言語フォールバックを有効にする」をアクティブに設定します。
  2. 現在のユーザー言語を使用するようにビューを設定します([詳細]> [その他]> [フィールド言語])。

できました。

2
cjoy

ノード翻訳が存在しない場合にデフォルトの言語フォールバックを持つビューを作成し、デフォルトの言語1を表示するには、チェックを外すだけです。

X必要に応じて、フィールド言語条件をクエリに追加します

enter image description here

enter image description here

1
Jorge Díaz

このモジュールが必要だと思います: https://www.drupal.org/project/select_translation

ビューリスト内のコンテンツトランスレーション(エンティティトランスレーションではない)で翻訳されたノードに言語フォールバック機能を提供します。これは、コンテンツの翻訳で翻訳されたノードでは機能しないビューの「フィールド言語」オプションの代替手段です。

1
hugronaphor