Je viens de lire Utilisation du nouvel API / module de migration Drupal 8 et migration de contenu: CSV vers Drupal 8, le processus de création d'une migration est très clair et fonctionne, mais je ne trouve pas comment migrer du contenu vers un site multilingue. Dans la vue d'ensemble de l'API Migrate, je ne trouve aucune information à ce sujet.
Alors, comment puis-je migrer du contenu multilingue?
MISE À JOUR: J'ai trouvé un exemple: https://github.com/drupal/drupal/tree/8.3.x/core/modules/migrate/tests/modules/migrate_external_translated_test
J'ai pu pour l'instant migrer le contenu anglais mais pas les traductions.
8
migration
importing-exporting
Adrian Cid Almaguer
la source
la source
I was able for the moment to migrate the english content
Voici mon débutant multilingue Q / suggestion, ne pouvez-vous pas simplement prétendre que vous venez de créer le site D8 en anglais et maintenant vous voulez le rendre multilingue?Réponses:
Migrer depuis les bases de CSV
Comme indiqué ailleurs, le code de migration n'a que récemment (à partir de 8.2.x ou 8.3.x) semblé s'installer et il y a des tas d'instructions anciennes, obsolètes et incorrectes dans les articles de blog sur le Web. Cela étant dit, j'ai eu environ 75% de succès en suivant les instructions sur ces deux séries de billets de blog de Lucas Hedding et Ada Hernández chez Mtech.
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
Il existe un exemple de configuration de base de code Lucas sur Github qui couvre les bases du premier exemple de blog CSV, mais il n'inclut aucun assistant pour les migrations d'images ou de fichiers.
Il existe un autre exemple de référentiel de Wunderkraut qui inclut un exemple de migration CSV avec la migration des utilisateurs, de la taxonomie, des articles et des images ici:
Migration multilingue depuis CSV
Je recommande de commencer par les bases CSV ci-dessus, puis de passer à cette section. Vous devez vraiment avoir des scripts de migration distincts pour chaque langue.
J'ai obtenu 20% de plus avec ce billet de blog, qui décrit les détails sur la façon de modifier un fichier yaml de migration pour prendre en charge le contenu multilingue, y compris, pour activer
translations: true
dans ladestination
section, ajouter lelangcode:
champ dans laprocess
section pour un multi- des entités linguistiques (comme les nœuds et les termes) et d'ajouter lelanguage:
paramètre pour le traitement de champ multilingue spécifique.J'ai trouvé la partie la plus difficile à comprendre comment importer des champs de fichier ou d'image (les 5% restants pour moi). Aucun des exemples ci-dessus ne montre comment importer correctement les champs alt d'image. Dans mon cas, j'ai un champ d'image qui partage l'image, mais l'attribut alt est traduisible. J'ai compris comment importer moi-même le champ alt de base dans le nœud de langue par défaut, mais j'ai du mal à obtenir que l'importation utilise le même texte alt mais différent pour d'autres langues. L'utilisateur @Vasi a trouvé la solution en ajoutant un champ supplémentaire appelé
content_translation_source
à l'étape de processus de la migration en langue étrangère YAML. Plus de détails avec un exemple complet ici:Discussion supplémentaire
Enfin, il y a aussi une discussion en cours ici:
la source
content_translation_source
champ dans laprocess
section de la traduction en langue étrangère, la valeur doit être définie sur le code de langue de la langue d'origine importée. Voir la réponse de Vasi sur le lien ci-dessus. Je mettrai également à jour mon message pour refléter ce correctif.vous avez besoin des deux tâches de migration, les fichiers yml dans le dossier de migration:
Ensuite, dans le plugin (MigrateExternalTranslatedTestSource.php), vous devez lire votre .csv (in
initializeIterator()
) dans la structure du tableau d'importation:la source