web-dev-qa-db-ja.com

コンテンツの翻訳:言語フィルターはビューでは使用できません

ビューを使用して、グローバルフラグ(任意のユーザー、任意の言語)によってフラグが付けられたノードのリストを表示し、現在の言語に関連するノードのみを返したいと思います。

そのため、「コンテンツ翻訳:言語」のようなフィルターをビューに追加できるはずです。ただし、そのようなフィルターは使用できないようです。このフィルタが欠落している理由は何ですか?

2
SeifBh

ビューの結果を言語切り替えに対応させるには、Content Translation:User's Current Languageのフィルターを追加します。これは、認証されたユーザーが設定した言語ですユーザー設定(現在のブラウザの言語やサイトの言語とは異なります)。

If 'User's Current Language'のオプションがない場合、フィルター条件フォーム(次に構成->言語->検出と選択で構成を確認します:順序は 'URL、デフォルト、ユーザー、および「デフォルト、URL、ユーザー」などではありません( https://www.drupal.org/node/1701854#comment-6279474 でも説明されています)。

注: https://groups.drupal.org/node/47478 ...などのディスカッションでも示されているように、多言語サイトでビュー結果をフィルタリングすることは困難な場合があります。

1
Pierre.Vriens

フィルターの間に「コンテンツ翻訳:ユーザーの現在の言語」が表示されます。ビューのその他の翻訳オプションについては、 Internationalization Views モジュールも確認してください。

国際化を使用してビューを翻訳します。これは進行中の作業であり、すべてのビュープロパティをまだ翻訳できるわけではありません。

このモジュールは国際化パッケージから移動されたため、Viewsの各バージョンと互換性のある異なるブランチを持つことができます。使用しているビューバージョンと同じブランチを使用します(2.x. 3.x)。

3

これは、エンティティ変換を並行して有効にしている場合に発生します。

コンテンツ翻訳(モジュールtranslation、Drupal 7コア)と(= /// =)の両方を有効にした場合、「コンテンツ翻訳:言語」フィルターがビューから欠落しますエンティティの翻訳(モジュールentity_translation、contribプロジェクト) このビューの問題 がこの状況に対処し、環境も両方の翻訳システムが有効になっています。

これらの2つのシステムは互いの代替として意図されているため、これは通常意味がありません。エンティティ変換がより近代的なシステムです。ただし、一部の特殊なケースでは、それが意味を持つ場合があります(たとえば、コンテンツ変換でいくつかのレガシーノードタイプを処理したり、エンティティ変換で新しいノードタイプを処理したりする)。

代替ソリューション:

  • Use Select Translationこのモジュールは、コンテンツ翻訳専用に作成され、ビューフィルター「コンテンツ翻訳:翻訳の選択」を提供します。欠落している「コンテンツ翻訳:言語」と同じ可能性に加えて、フォールバック動作を構成するためのより多くの自由度を提供します。

  • エンティティの翻訳を無効にします。この代替手段では、フォールバック動作を備えた「コンテンツ翻訳:言語」フィルタが提供されます。おそらく無効にするだけでは十分ではなく、entity_translationモジュールもアンインストールする必要があります(同様の逆の状況については here を参照してください)。

  • 「コンテンツ:言語」を使用します(通常は適用されません該当しません)。エンティティ変換が有効になっている場合、独自または追加で、ビューフィルター "コンテンツ:言語"も提供します(同様に OPによって検出 )。 「コンテンツの翻訳:言語」と同じ設定オプションを提供し、コンテンツの翻訳を使用するノードをフィルタリングすることもできます。ただし、コンテンツトランスレーションの「トランスレーションセット」の概念については認識されていないため、ビュー結果には同じコンテンツの複数のトランスレーションが含まれる可能性があります(エンティティトランスレーションノードで使用する場合は、 nlike )。そのため、「コンテンツ:言語(=現在のユーザーの言語)」に設定するなど、1つの値のみがフィルターを通過できるようにする場合の解決策にすぎません。また nlike "コンテンツの翻訳:言語"フィルター。このフィルターはサイトのデフォルト言語へのフォールバックを提供しません。

0
tanius