Migration mehrsprachiger Inhalte von CSV zu Drupal 8

Veröffentlicht: 2021-07-13

Die Migration von Daten aus beliebigen Quellen zu Drupal 8 wird jetzt mit verschiedenen Modulen, die eine einfache Datenübertragung ermöglichen, zum Kinderspiel. Migration in Drupal ist ein Begriff für jeden Prozess, der Daten von einer externen Quelle auf die aktuelle Drupal-Site verschiebt. Sie können Daten migrieren, die Knoten, Benutzer, Konfiguration und alle anderen Komponenten der Site umfassen.

Drupal bietet Ihnen viele Möglichkeiten, Inhalte zu migrieren. Je nach Website und Quelle der Daten können Sie den besten Weg wählen. Die Migration mehrsprachiger Daten kann jedoch Ihren Migrationsprozess um einige weitere Schritte erweitern. Sie müssen zuerst den Basisinhalt migrieren und dann die Übersetzungen migrieren. In diesem Artikel werden wir diese Schritte näher erläutern, damit Sie die Migration mehrsprachiger Inhalte von CSV zu Drupal 8 besser verstehen.

CSV-Import

Drupal 8-Migrationsmodule, die Sie benötigen

Wie bereits erwähnt, bietet Drupal unzählige Optionen und Module, die Ihnen bei einer einfachen und problemlosen Migration helfen können. Für die Migration mehrsprachiger Inhalte benötigen Sie:

  1. Migrieren: Bietet einen flexiblen Rahmen für die Migration von Inhalten aus anderen Quellen in Drupal.
  2. Migrate plus: Bietet Plugins für Migrationen wie Quell-Plugins, Prozess-Plugins, Ziel-Plugins und API-Erweiterungen.
  3. Drupal migrieren : Bietet Unterstützung für die Migration von Inhalten und Konfigurationen.
  4. Quell-CSV migrieren: Bietet ein Plugin zum Importieren von Inhalten aus einer CSV-Datei in Drupal.
  5. Migrationstools: Dieses Modul bietet UI-Tools und Drush-Befehle, die für die Migration verwendet werden.
  6. Konfigurationsentwicklungsmodul: Dieses Modul wandelt Skripte in Konfigurationen um.

Schritt 1: Migrieren des Basisinhalts

Um mit der Migration der Basisinhalte zu beginnen, müssen wir zunächst ein benutzerdefiniertes Modul in Drupal 8 erstellen.

Benutzerdefiniertes Modul erstellen

Stellen Sie sicher, dass die info.yml diese Schlüssel und Werte enthält.

Sie müssen yaml- Dateien erstellen, die als Migrationsskripts bekannt sind, und sie im Verzeichnis config/install des erstellten benutzerdefinierten Moduls ablegen. Im Schlüssel config_devel/install von info.yml sollten alle yaml-Dateien geschrieben sein.

Yaml-Datei

Dies ist eine Beispiel-YAML-Datei zum Importieren von Taxonomiebegriffen. Das Migrationsskript besteht aus 4 Abschnitten:

  1. Metadaten: haben die ID, das Label und die Migrationsgruppen-ID.
  2. Quelle: Der Quellschlüssel sollte den Pfad zur CSV-Datei enthalten.
  3. Prozess: Die Zuordnung zwischen den Feldern und den CSV-Spalten.
  4. Ziel: Das Ziel, an dem die importierten Daten gespeichert werden.

Der Inhalt des yaml-Dateiknotens sollte ähnlich geschrieben werden. Der einzige Unterschied ist das Ziel.

Entitätsknoten

Das Ziel-Plugin sollte Entity:node sein und default_bundle hat den Maschinennamen des Inhaltstyps, in den der Inhalt importiert wird.

Nachdem alle yaml-Dateien erstellt wurden, sollten die IDs der yaml in die info.yml aufgenommen werden . Sobald alles erledigt ist, aktivieren Sie das benutzerdefinierte Modul.

Verwenden Sie den Drush-Befehl drush cdi <migration id> . Hier ist die Migrations-ID techx migration . Dadurch wird das Skript in Konfigurationen umgewandelt.

Nachdem Sie den Befehl ausgeführt haben, gehen Sie zu admin>structure>migration . Sie finden die von Ihnen erstellte Migrationsgruppe, indem Sie auf Listenmigration klicken. Dies zeigt Ihnen die Liste der erstellten Migrationsskripte.

Betrieb

Wenn Sie auf die Registerkarte Ausführen klicken, wird die Liste der verfügbaren Operationen angezeigt:

Verfügbare Operationen

Beim Importieren werden die Daten aus der Quelle abgerufen.

Rollback löscht die importierten Daten.

Der Stop soll den Import- oder Rollback-Prozess unterbrechen.

Manchmal bleibt ein Prozess stecken. Um den Status in den Ruhezustand zu versetzen, wird Reset verwendet.

Ausführlichere Informationen zum Migrieren der Daten verschiedener Entitäten wie des Benutzers finden Sie unter CSV-Import zum Migrieren von Drupal 7 bis 8 - Eine vollständige Anleitung.

Schritt 2: Migration der Übersetzungen des Basisinhalts

Wenn Sie auf Ihrer Drupal 8-Website bereits mehrsprachige Inhalte aktiviert haben, können Sie den ersten Schritt überspringen. Wenn Sie wissen möchten, wie Sie mehrsprachige Drupal 8-Websites erstellen (und warum Sie möglicherweise eine benötigen), lesen Sie diesen Artikel.

1. Hinzufügen von Sprache zur Drupal-Website

Um Übersetzungen zu importieren, müssen wir zuerst unsere Website mehrsprachig machen. Lassen Sie uns sehen, wie Sie Sprachen auf die Site herunterladen.

  1. Aktivieren Sie das Übersetzungsmodul für Sprache und Inhalt . Dies sind Kernmodule.
  2. Gehen Sie zu /admin/config/regional und language/language/add language.Sprache hinzufügen
  3. Wenn Sie auf das Dropdown-Menü klicken, erhalten Sie eine Liste mit Sprachen. Wählen Sie die gewünschte Sprache auf der Site aus und klicken Sie auf Sprache hinzufügen . Dadurch wird die Sprache für Ihre Site heruntergeladen.

2. Aktivieren der Übersetzung für Entitäten

Nachdem wir die benötigten Sprachen installiert haben, müssen wir die Übersetzungen für die Entitäten aktivieren, bevor wir die Übersetzungen importieren oder den Inhalten hinzufügen. Gehen Sie dazu zu admin/config/regional/content translation . Wählen Sie die Entitäten aus, für die Sie die Übersetzung aktivieren möchten, und klicken Sie auf Konfigurationen speichern .

In diesem Beispiel importiere ich den Blog-Inhaltstyp und aktiviere daher die Übersetzung für den Blog-Inhaltstyp.

Sprache

3. Aktualisieren Sie die Migrationsdateien

Es müssen einige Änderungen an den yaml-Dateien vorgenommen werden, um die Übersetzungen zu importieren. Geben Sie den Pfad der CSV-Datei des übersetzten Inhalts als Basisinhalt an und der übersetzte Inhalt wird in verschiedenen Dateien gespeichert. Änderungen in der Begriffsübersetzung.

Gezeiten

Fügen Sie einen neuen Schlüssel tid im Verfahrensteil des Skripts mit der Plugin Migration, Quelle als ID und Migrationswert sollte die Migration ID seiner Basis Content - Migration Skript sein.

Für Knoten Migration einen neuen Schlüssel nid im Verfahrensteil hinzuzufügen. Hier hat der Migrationsschlüssel den Wert der Migrations-ID seines Basis-Inhaltsmigrationsskripts.

Quell-ID

Ein weiterer Schlüssel, der hinzugefügt werden sollte, sind Übersetzungen mit dem Wert true . Dies sollte im Zielabschnitt aller Übersetzungsmigrationsskripte unabhängig von den Entitäten hinzugefügt werden.

Ziel

Definieren Sie die Sprache, in die die Übersetzung importiert wird, mit dem langcode- Schlüssel. In diesem Beispiel importiere ich japanische Übersetzungen, daher ist der Wert ja .

Sprachcode

Diese Änderungen weisen das Skript an, die ID des Inhalts aus der grundlegenden Inhaltsmigration zu übernehmen, von der diese Inhalte als Übersetzungen und nicht als neuer Knoten behandelt werden.

Punkte, die man sich merken sollte

  • Der Importvorgang sollte in Ordnung sein. Wenn beispielsweise im Knoten auf die Begriffe Bezug genommen wird, sollten die Begriffe zuerst vor dem Inhalt des Knotens importiert werden.
  • Aktivieren Sie die Übersetzung für die Entitäten, bevor Sie die Übersetzungen importieren.
  • Die Reihenfolge der Übersetzungsinhalte in der CSV-Datei sollte der des Basisinhalts entsprechen. Das heißt, der Basisinhalt und seine Übersetzungen sollten sich in der CSV-Datei in derselben Zeile befinden.
  • Importieren Sie zuerst den Basisinhalt und dann den Übersetzungsinhalt. Andernfalls werden beide als einzelne Inhalte behandelt.