Migration de contenu multilingue de CSV vers Drupal 8

Publié: 2021-07-13

La migration de données depuis n'importe quelle source vers Drupal 8 est désormais simplifiée grâce à divers modules qui permettent un transfert de données facile. La migration dans Drupal est un terme pour tout processus qui déplace des données d'une source externe vers le site Drupal actuel. Vous pouvez migrer des données qui incluent des nœuds, des utilisateurs, une configuration et tout autre composant du site.

Drupal vous propose de nombreuses façons de migrer du contenu. Selon le site Web et la source des données, vous pouvez choisir la meilleure façon de procéder. Cependant, la migration de données multilingues peut ajouter quelques étapes supplémentaires à votre processus de migration. Vous devrez d'abord migrer le contenu de base, puis migrer les traductions. Dans cet article, nous détaillerons ces étapes pour vous aider à mieux comprendre la migration de contenu multilingue de CSV vers Drupal 8.

Importation CSV

Les modules de migration Drupal 8 dont vous aurez besoin

Comme mentionné précédemment, Drupal propose des tonnes d'options et de modules qui peuvent vous aider avec une migration facile et sans tracas. Pour migrer du contenu multilingue, vous aurez besoin de :

  1. Migrer : fournit un cadre flexible pour la migration de contenu vers Drupal à partir d'autres sources.
  2. Migrer plus : fournit des plug-ins pour les migrations, tels que des plug-ins source, des plug-ins de processus, des plug-ins de destination et des extensions d'API.
  3. Migrer Drupal : prend en charge la migration du contenu et des configurations.
  4. Migrer le CSV source : fournit un plugin pour importer du contenu vers Drupal à partir d'un fichier CSV.
  5. Outils de migration : ce module fournit des outils d'interface utilisateur et des commandes Drush utilisées pour la migration.
  6. Module de développement de configuration : Ce module convertit le script en configurations.

Étape 1 : Migration du contenu de base

Pour commencer la migration du contenu de base, nous devrons d'abord créer un module personnalisé dans Drupal 8.

Créer un module personnalisé

Assurez-vous que le fichier info.yml a ces clés et valeurs.

Vous devrez créer des fichiers yaml , appelés scripts de migration, et les placer dans le répertoire config/install du module personnalisé créé. La clé config_devel/install de info.yml doit avoir tous les fichiers yaml écrits.

Fichier Yaml

Il s'agit d'un exemple de fichier yaml pour l'importation de termes de taxonomie. Le script de migration comporte 4 sections :

  1. Métadonnées : auront l'identifiant, l'étiquette et l'identifiant du groupe de migration.
  2. Source : la clé source doit avoir le chemin d'accès au fichier CSV.
  3. Processus : le mappage entre les champs et les colonnes CSV.
  4. Destination : La destination où les données importées sont enregistrées.

Le contenu du nœud du fichier yaml doit être écrit de la même manière. La seule différence étant la destination.

Nœud d'entité

Le plugin de destination doit être entity:node et le default_bundle aura le nom de la machine du type de contenu vers lequel le contenu est importé.

Après avoir créé tous les fichiers yaml, les identifiants du yaml doivent être inclus dans le fichier info.yml . Une fois que tout est fait, activez le module personnalisé.

Utilisez la commande Drush drush cdi <migration id> . Ici, l'identifiant de migration est techx migration . Cela convertira le script en configurations.

Après avoir exécuté la commande, accédez à admin>structure>migration . Vous trouverez le groupe de migration que vous avez créé en cliquant sur la liste migration. Cela vous montrera la liste des scripts de migration créés.

Opérations

En cliquant sur l'onglet Exécuter, la liste des opérations disponibles s'affichera :

Opérations disponibles

L'importation consiste à extraire les données de la source.

La restauration supprimera les données importées.

L' arrêt sert à interrompre le processus d'importation ou de restauration.

Parfois, un processus se bloque. Pour passer l'état à inactif, Reset est utilisé.

Pour des informations plus détaillées sur la façon de migrer les données de différentes entités comme l'utilisateur, paragraphe, consultez Importation CSV vers Migrer Drupal 7 à 8 - Un guide complet.

Étape 2 : Migration des traductions du contenu de base

Si vous avez déjà activé le contenu multilingue sur votre site Web Drupal 8, vous pouvez sauter la première étape. Si vous voulez savoir comment créer des sites Web multilingues Drupal 8 (et pourquoi vous pourriez en avoir besoin), consultez cet article.

1. Ajout de langue au site Web Drupal

Pour importer des traductions, nous devons d'abord rendre notre site Web multilingue. Voyons comment télécharger des langues sur le site.

  1. Activez le module de traduction de langue et de contenu . Ce sont des modules de base.
  2. Accédez à /admin/config/regional et language/language/add language.Ajouter une langue
  3. En cliquant sur la liste déroulante, vous obtenez une liste de langues. Sélectionnez la langue que vous voulez sur le site et cliquez sur Ajouter une langue . Cela téléchargera la langue de votre site.

2. Activation de la traduction pour les entités

Une fois que nous avons installé les langues dont nous avons besoin, nous devons activer les traductions pour les entités avant d'importer ou d'ajouter les traductions au contenu. Pour cela, allez dans admin/config/regional/content translation . Sélectionnez les entités vers lesquelles vous souhaitez activer la traduction et cliquez sur Enregistrer les configurations .

Dans cet exemple, j'importe le type de contenu de blog et j'activerai donc la traduction pour le type de contenu de blog.

Langue

3. Mettre à jour les fichiers de migration

Certaines modifications doivent être apportées aux fichiers yaml pour importer les traductions. Donnez le chemin du fichier CSV du contenu traduit comme contenu de base et les contenus traduits sont stockés dans des fichiers différents. Changements dans la traduction des termes.

tid

Ajoutez une nouvelle clé tid dans la section processus du script avec le plugin comme migration, la source comme id et la valeur de migration doit être l' ID de migration de son script de migration de contenu de base.

Pour la migration de nœud, ajoutez une nouvelle clé nid dans la section processus. Ici, la clé de migration aura la valeur de l' ID de migration de son script de migration de contenu de base.

Identifiant de la source

Une autre clé doit être ajoutée : les traductions avec la valeur définie sur true . Cela doit être ajouté dans la section de destination de tous les scripts de migration de traduction, quelles que soient les entités.

Destination

Définissez la langue dans laquelle la traduction est importée à l'aide de la clé langcode . Dans cet exemple, j'importe des traductions japonaises, donc la valeur sera ja .

Langage

Ces modifications indiquent au script de prendre l'ID du contenu de la migration de contenu de base à partir de laquelle ces contenus sont traités comme des traductions plutôt que comme un nouveau nœud.

Points à retenir

  • Le processus d'importation devrait se dérouler dans l'ordre. Par exemple, si les termes sont référencés dans le nœud, les termes doivent être importés avant le contenu du nœud.
  • Activez la traduction pour les entités avant d'importer les traductions.
  • L'ordre du contenu de la traduction dans le fichier CSV doit être le même que le contenu de base. C'est-à-dire que le contenu de base et ses traductions doivent se trouver sur la même ligne dans le fichier CSV.
  • Importez d'abord le contenu de base, puis le contenu de la traduction. Sinon, les deux seront traités comme des contenus individuels.