web-dev-qa-db-ja.com

サイトを多言語にするときに、ノードの言語を既存のコンテンツにまとめて設定するにはどうすればよいですか?

数千ノードの既存サイトを多言語で作成しています。ソースは英語です。すべての既存のコンテンツを1つの一括コマンドでニュートラルの代わりに言語:英語に設定するにはどうすればよいですか?

6
blue928

これを行う1つの方法は、コードの記述を必要としません。

  1. [〜#〜] vbo [〜#〜] モジュールをインストールします。
  2. 変換する必要があるすべてのコンテンツタイプのContentを示す新しいビューを作成します。 Fields表示メソッドを使用します。
  3. フィールドを追加します一括操作:content
  4. 確認エンティティ値の変更と選択言語
  5. 適用を選択します。
  6. ビューを保存し(必要に応じて他のフィルターを追加して選択を制限し)、作成したビューページに移動します。
  7. ビューページから、すべてのページのすべてのアイテムを選択するオプションを選択し、エンティティ値の変更アクションを実行します。
  8. 言語を選択して、[次へ]をクリックします。

ノードの数が非常に多い場合、すべてが一度に実行されないようにキューイング設定をいじる必要があるかもしれませんが、最初は1つのパスで実行しようと思います。 (注:最初に必ずバックアップをテストしてください!)

12
Patrick Kenny

サイトで言語を一括設定する方法は次のとおりです。

  1. ビューの一括最適化を使用して、変更するすべてのノードを選択し、[値の変更]オプションを使用して、値を必要な言語に変更します。

  2. これを実行すると、ノードの編集時にフィールド値が表示されなくなるため、スクリプトを実行する必要があります。 UPDATE database.field_data_body SET language='en' WHERE bundle='page'(必要に応じて、db名、フィールド名、およびバンドルを使用します)。

重要:カスタムURLエイリアスがある場合、pathautoに問題があるため、この方法でエイリアスが上書きされますが、回避策があります。最初に/ admin/config/search/path/settingsに移動し、「 [アクションを更新]オプションを[何もしない]に変更します。古いエイリアスはそのままにしておきます。'ViewsBulk Operationsアクションを実行したら、この値を元に戻します。

(私は今、この回答で3つのStack質問に回答しました。うまくいけば、スパムとは見なされません)。

4
RogerRoger

ここで受け入れられた答えを参照して、これを行うビューのエクスポートを示します。 https://Gist.github.com/dasginganinja/7bfa862f379ade6e0f0f

1
dasginganinja