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


8

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

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

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

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

回答:


3

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

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

ここに画像の説明を入力してください


ビューにphpを追加しますか?それは醜い.....それは問題を解決しますが、これは良い考えではないと思います。
itsdarrylnorris

これはハッキーかもしれませんが、これはわずかに異なる要件に必要なものを正確に取得しました-言語プレフィックスを持つ1つのビューページ:site.com/enおよびsite.com/ja ...ユーザーがENにいる場合、すべてのコンテンツを表示しますENコンテンツ。JAインターフェースに切り替えると、JA変換のあるコンテンツのみが表示されます。ありがとう!
jaesperanza

2

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

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

できました。


そのページに[言語のフォールバックを有効にする]オプションが表示されません。以前にエンティティ変換モジュールをインストールする必要があると思います...
ヘッドキット2012

他にどのようにモジュール構成ページにアクセスしますか?それでももっとはっきりと指摘すべきだったので、その情報を追加してくれてありがとう。
cjoy

1

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

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


1

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

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

ここに画像の説明を入力してください

ここに画像の説明を入力してください

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.