3

フィールドコレクションフィールドが無制限の値に設定された分類用語があります。FC には、いくつかの texfield、textarea、および image フィールドが含まれています。FC とそのフィールドは、ユーザーが翻訳するように設定されています。分類用語はローカライズされています - すべての用語は、翻訳されているだけで、すべての言語で同じです。分類用語とノードに対してエンティティ変換を有効にしましたが、FC に対しては有効ではありません。無効なベース パスに関する通知がトリガーされるためです。

この構成では、用語を作成して保存します。最初の作成後、任意の数の FC を追加して保存できます。翻訳フォームでは、翻訳を追加できます。また、保存された値が異なる言語で保存されたままになっている場合。

FC との関係を持つビューを作成し、FC フィールドを追加し、コンテキスト フィルターを termID に設定すると、問題が発生します (分類用語のパネルを介してこのビューを表示します)。フィールドの言語設定は、現在のユーザー言語に設定されています。手動で設定された termID を使用したビューのプレビューでは、URL (en/admin/structure/views..) の言語に対して適切な結果が表示され、言語プレフィックスを変更すると正しい結果が表示されます。しかし、用語ページでは何も表示されません。

フィールド コレクション モジュールの最新の dev entiy 翻訳を使用しています。FC用にエンティティ変換を有効にしてセットアップも試みましたが、ビューから正しい出力が得られません。

どこで間違っていますか?FC セットアップ、多言語セットアップ、またはビューで。FCを翻訳可能にする方法のヒントはありますか?

4

2 に答える 2

4

クリーンインストールで再テストしました。これはすべて#9で説明したことに当てはまります。同じ結果ですが、いくつかの新しい/確認された観察と考えられる回避策:

FC には、フィールドを初めて変換したときに値が適切に保存されないというバグがあります。

  • 値は保存されますが、編集ページを更新すると、フィールドは存在しますが空/空白で、デフォルト言語のフィールドは問題ありません

    • 実際に何が起こるか: FC フィールドの翻訳を保存すると、翻訳された言語ではなくデフォルトの言語に誤ってリンクされます。また、デフォルトの言語を再度開いたときに表示されないため、削除できます。これは、私が行ったように誤ってビューでそれらをキャッチした場合に悪いことがあります (タイトルが同じだったので、しばらくの間、これは私を誤解させていました)。
    • 可能な回避策: 最初の翻訳時に、デフォルト言語からコピーされた値を削除して保存する必要があります。その後、翻訳された値を入力できます
    • FC 対応の ET: 同じ問題と回避策

用語に関するいくつかのコンテンツを作成し、それらを回避策で翻訳した後、ビューを介してパネルに表示しようとしました。

  • パネルを作成し、使用している分類ボキャブラリに選択を設定し、コンテンツの下に「新しいカスタム コンテンツ」を作成しました。これには、いくつかの置換が含まれていました - FC フィールド %term:field_test_fc (これは私のテスト コンテンツです)
    • 言語を変更すると、選択した言語の置換に応じて値が変更され、FC のすべてのフィールドがレンダリングされ、正しい言語で表示されます。これが、この問題が私を悩ませている理由です... 用語自体が FC の異なる言語を区別できる場合、ビューでも機能するはずですパネルから表示できるフィールド
  • その FC の関係を使用して用語名でグループ化されたすべての用語のすべての FC フィールドを一覧表示するビュー (ページ) を作成しました
    • コンテンツは選択した言語に応じて変化します =)
  • 上記のように別のビュー (コンテンツ ペイン) を作成し、コンテキスト フィルターを追加して、termID に設定し、パネルに添付しました。
    • ビューには、用語を保存するときに最後に使用された言語の FC フィールドのみが表示されます。これは、デフォルト言語で用語を編集および保存する場合、ビューにはデフォルト言語のフィールドのみが表示されることを意味します。奇妙な:S
  • FC の ET が有効になっている: 両方のビュー (どこでもすべての言語のフィールドを表示) が壊れていました。FC フィールド: 言語に基づいてフィルターを追加し、現在のユーザー言語に設定することで修正されました。
    • パネル ビューはまだ期待どおりに動作しませんでしたが、コンテキスト フィルターに問題があることはわかっていました
    • 私がしなければならなかったのは、コンテキストフィルター( termID )から検証基準を削除することです

最後の問題を解決した後、パネルのビューが機能し、両方の言語で用語を表示すると、正しい (翻訳された) FC フィールドが表示されます =)。

問題が発生する場所とその回避方法を理解するのに役立つことを願っています。修正はいいでしょう=)

于 2012-09-01T21:08:33.343 に答える
1

モジュールとしてのフィールド コレクションは、多言語を適切にサポートするためのパッチがまだ適用されていません。議論は、フィールド コレクション自体を言語に依存しないように設定して、基礎となるフィールドを言語固有にできるようにするかどうかです。

ただし、field-collection モジュール自体は現在、多言語をサポートしていません。Drupal.org には、次の 2 つの主要なパッチ スレッドを含む、これに関連する多数のパッチがあります。

https://drupal.org/node/1344672

https://drupal.org/node/1316162

Drupal 7 の Lingotek Translation モジュールは、hook_entity_load、hook_entity_update、および entity_translation モジュールの UI に依存しない翻訳プロセスの組み合わせを使用して Field Collection モジュールの制限を回避するため、フィールド コレクションの翻訳と表示に成功しています。

于 2014-04-12T21:34:25.220 に答える