Migrando conteúdo multilíngue de CSV para Drupal 8
Publicados: 2021-07-13A migração de dados de qualquer fonte para o Drupal 8 agora é simplificada com vários módulos que permitem uma fácil transferência de dados. Migração no Drupal é um termo para qualquer processo que move dados de uma fonte externa para o site Drupal atual. Você pode migrar dados que incluem nós, usuários, configuração e quaisquer outros componentes do site.
O Drupal oferece muitas maneiras de migrar conteúdo. Dependendo do site e da fonte dos dados, você pode escolher a melhor forma de fazê-lo. No entanto, a migração de dados multilíngues pode adicionar mais algumas etapas ao processo de migração. Você precisará primeiro migrar o conteúdo base e, em seguida, migrar as traduções. Neste artigo, desenvolveremos essas etapas para ajudá-lo a entender melhor a migração de conteúdo multilíngue de CSV para Drupal 8.

Módulos de migração Drupal 8 de que você precisa
Como mencionado anteriormente, o Drupal oferece toneladas de opções e módulos que podem ajudá-lo com uma migração fácil e descomplicada. Para migrar conteúdo multilíngue, você precisará de:
- Migrar: fornece uma estrutura flexível para migrar conteúdo de outras fontes para o Drupal.
- Migrate plus: fornece plug-ins para migrações como plug-ins de origem, plug-ins de processo, plug-ins de destino e extensões de API.
- Migrate Drupal: fornece suporte para a migração de conteúdo e configurações.
- Migrar CSV de origem: fornece um plug-in para importar conteúdo para o Drupal de um arquivo CSV.
- Ferramentas de migração: este módulo fornece ferramentas de IU e comandos Drush usados para migração.
- Módulo de desenvolvimento de configuração: este módulo converte o script em configurações.
Etapa 1: Migrando o conteúdo básico
Para começar a migrar o conteúdo básico, primeiro precisaremos criar um módulo personalizado no Drupal 8.

Certifique-se de que o info.yml tenha essas chaves e valores.
Você precisará criar arquivos yaml , que são conhecidos como scripts de migração, e colocá-los no diretório config / install do módulo personalizado criado. A chave config_devel / install de info.yml deve ter todos os arquivos yaml gravados.

Este é um arquivo yaml de amostra para importar termos de taxonomia. O script de migração possui 4 seções:
- Metadados: terão o id, rótulo e id do grupo de migração.
- Fonte: a chave da fonte deve ter o caminho para o arquivo CSV.
- Processo: O mapeamento entre os campos e as colunas CSV.
- Destino: o destino onde os dados importados são salvos.
O conteúdo do nó do arquivo yaml deve ser escrito de forma semelhante. A única diferença é o destino.

O plugin de destino deve ser entity: node e o default_bundle terá o nome da máquina do tipo de conteúdo para o qual o conteúdo é importado.
Depois de criar todos os arquivos yaml, os IDs do yaml devem ser incluídos no info.yml . Depois que tudo estiver pronto, ative o módulo personalizado.
Use o comando Drush drush cdi <migration id> . Aqui, o id de migração é migração techx . Isso converterá o script em configurações.
Depois de executar o comando, vá para admin> structure> migration . Você encontrará o grupo de migração que criou clicando na lista de migração. Isso mostrará a lista dos scripts de migração criados.

Clicar na guia Executar mostrará a lista de operações disponíveis:

Importar é puxar os dados da fonte.

A reversão excluirá os dados importados.
O Stop é para interromper o processo de importação ou reversão.
Às vezes, um processo fica travado. Para mover o status para inativo, Reset é usado.
Para obter informações mais detalhadas sobre como migrar os dados de diferentes entidades como o usuário, parágrafo, verifique CSV Import to Migrate Drupal 7 to 8 - Um guia completo.
Etapa 2: migrar as traduções do conteúdo base
Se você já habilitou o conteúdo multilíngue em seu site Drupal 8, pode pular a primeira etapa. Se você deseja saber como criar sites multilíngues do Drupal 8 (e por que pode precisar de um), consulte este artigo.
1. Adicionando linguagem ao site Drupal
Para importar traduções, primeiro devemos tornar nosso site multilíngue. Vamos ver como fazer download de idiomas para o site.
- Ative o módulo de tradução de idioma e conteúdo . Estes são os módulos principais.
- Vá para / admin / config / regional e idioma / idioma / adicionar idioma.

- Clicar na lista suspensa fornece uma lista de idiomas. Selecione o idioma desejado no site e clique em Adicionar idioma . Isso fará o download do idioma do seu site.
2. Habilitando tradução para entidades
Depois de instalar os idiomas de que precisamos, devemos habilitar as traduções para as entidades antes de importar ou adicionar as traduções ao conteúdo. Para isso, vá para admin / config / regional / content translation . Selecione as entidades para as quais deseja habilitar a tradução e clique em Salvar configurações .
Neste exemplo, estou importando o tipo de conteúdo do blog e, portanto, habilitarei a tradução para o tipo de conteúdo do blog.

3. Atualize os arquivos de migração
Existem algumas mudanças que precisam ser feitas nos arquivos yaml para importar as traduções. Forneça o caminho do arquivo CSV do conteúdo traduzido como uma base de conteúdo e o conteúdo traduzido é armazenado em arquivos diferentes. Mudanças na tradução de termos.

Adicione um novo tid de chave na seção de processo do script com o plug - in como migração, fonte como id e o valor de migração deve ser o id de migração de seu script de migração de conteúdo base.
Para a migração de nós, adicione um novo nid de chave na seção do processo. Aqui, a chave de migração terá o valor da id de migração de seu script de migração de conteúdo base.

Outra chave deve ser adicionada são as traduções com o valor definido como verdadeiro . Isso deve ser adicionado na seção de destino de todos os scripts de migração de tradução, independentemente das entidades.

Defina o idioma para o qual a tradução é importada usando a tecla langcode . Neste exemplo, estou importando traduções para o japonês, então o valor será ja .

Essas mudanças instruem o script a obter o id do conteúdo da migração de conteúdo base, a partir da qual esses conteúdos são tratados como traduções em vez de um novo nó.
Pontos para lembrar
- O processo de importação deve correr em ordem. Por exemplo, se os termos são referidos no nó, os termos devem ser importados primeiro, antes do conteúdo do nó.
- Habilite a tradução para as entidades antes de importar as traduções.
- A ordem do conteúdo da tradução no arquivo CSV deve ser a mesma do conteúdo base. Ou seja, o conteúdo base e suas traduções devem estar na mesma linha no arquivo CSV.
- Importe o conteúdo básico primeiro e depois o conteúdo da tradução. Caso contrário, ambos serão tratados como conteúdos individuais.
