Ich komme aus dem Lesen Mit der neuen Drupal 8-Migrations-API / -Modul- und Inhaltsmigration: CSV zu Drupal 8 ist der Prozess zum Erstellen einer Migration sehr klar und funktioniert, aber ich kann nicht finden, wie Inhalte auf eine mehrsprachige Site migriert werden. In der Migrate API-Übersicht kann ich keine Informationen dazu finden.
Wie kann ich mehrsprachige Inhalte migrieren?
UPDATE: Ich habe ein Beispiel gefunden: https://github.com/drupal/drupal/tree/8.3.x/core/modules/migrate/tests/modules/migrate_external_translated_test
Ich konnte im Moment den englischen Inhalt migrieren, aber nicht die Übersetzungen.
8
migration
importing-exporting
Adrian Cid Almaguer
quelle
quelle
I was able for the moment to migrate the english content
Hier ist mein mehrsprachiger Neuling Q / Vorschlag: Können Sie nicht einfach so tun, als hätten Sie die D8-Site auf Englisch erstellt, und jetzt möchten Sie sie mehrsprachig machen?Antworten:
Migrieren Sie von den CSV-Grundlagen
Wie an anderer Stelle erwähnt, hat sich der Migrationscode erst vor kurzem (ab 8.2.x oder 8.3.x) beruhigt, und in Blog-Posts im Internet gibt es viele alte, veraltete und falsche Anweisungen. Davon abgesehen hatte ich ungefähr 75% Erfolg, als ich den Anweisungen in diesen beiden Blog-Posts von Lucas Hedding und Ada Hernández von Mtech folgte.
https://www.mtech-llc.com/blog/lucas-hedding/migrating-using-csv
https://www.mtech-llc.com/blog/ada-hernandez/how-migrate-images-drupal-8-using-csv-source
Bei Github gibt es ein begleitendes Beispiel für die Codebasis von Lucas, das die Grundlagen des ersten Beispiels für einen CSV-Blogbeitrag behandelt, jedoch keine Helfer bei der Bild- oder Dateimigration enthält.
Es gibt ein weiteres Beispiel-Repository von Wunderkraut, das eine CSV-Beispielmigration mit Benutzer-, Taxonomie-, Artikel- und Bildmigration enthält:
Mehrsprachige Migration von CSV
Ich empfehle, mit den obigen CSV-Grundlagen zu beginnen und dann zu diesem Abschnitt überzugehen. Sie müssen wirklich separate Migrationsskripte für jede Sprache haben.
Ich habe ein zusätzliches 20% des Weges dorthin mit dieser Blog - Post, die die Details erläutert , wie eine Migration yaml Datei zu ändern , zu unterstützen mehrsprachige Inhalte einschließlich, zu ermöglichen ,
translations: true
in demdestination
Abschnitt, der das hinzuzufügenlangcode:
Feld improcess
Abschnitt für die richtigen multi- linguale Entitäten (wie Knoten und Begriffe) und Hinzufügen deslanguage:
Parameters für die spezifische mehrsprachige Feldverarbeitung.Ich habe festgestellt, dass es am schwierigsten ist, herauszufinden, wie Datei- oder Bildfelder importiert werden (die restlichen 5% für mich). Keines der obigen Beispiele zeigt, wie Bildaltfelder richtig importiert werden. In meinem Fall habe ich ein Bildfeld, das das Bild teilt, aber das alt-Attribut ist übersetzbar. Ich habe herausgefunden, wie ich das grundlegende Alt-Feld selbst in den Standard-Sprachknoten importieren kann, aber ich habe Probleme, den Import so zu gestalten, dass für andere Sprachen dieselbe FID, aber ein anderer Alt-Text verwendet wird. Die Lösung wurde vom Benutzer @Vasi durch Hinzufügen eines zusätzlichen Felds herausgefunden,
content_translation_source
das im Prozessschritt der Fremdsprachenmigration YAML aufgerufen wird . Weitere Details mit vollständigem Beispiel hier:Zusätzliche Diskussion
Schließlich wird auch hier diskutiert:
quelle
content_translation_source
Feld improcess
Abschnitt der Fremdsprachenübersetzung hinzuzufügen. Der Wert sollte auf den Sprachcode der importierten Originalsprache gesetzt werden. Siehe Vasis Antwort auf den obigen Link. Ich werde auch meinen Beitrag aktualisieren, um diesen Fix widerzuspiegeln.Sie benötigen beide Migrationsaufgaben, die yml-Dateien im Migrationsordner:
Dann müssen Sie im Plugin (MigrateExternalTranslatedTestSource.php) Ihre .csv (in
initializeIterator()
) in die Struktur des Import-Arrays einlesen:quelle