Migracja treści wielojęzycznych z CSV do Drupala 8

Opublikowany: 2021-07-13

Migracja danych z dowolnego źródła do Drupala 8 jest teraz prosta dzięki różnym modułom, które umożliwiają łatwy transfer danych. Migracja w Drupalu to określenie każdego procesu, który przenosi dane z zewnętrznego źródła do aktualnej witryny Drupala. Możesz migrować dane, które obejmują węzły, użytkowników, konfigurację i dowolne inne składniki witryny.

Drupal zapewnia wiele sposobów na migrację treści. W zależności od strony internetowej i źródła danych możesz wybrać najlepszy sposób, aby to zrobić. Jednak migracja danych wielojęzycznych może dodać kilka dodatkowych kroków do procesu migracji. Najpierw musisz przeprowadzić migrację zawartości podstawowej, a następnie migrację tłumaczeń. W tym artykule omówimy te kroki, aby pomóc Ci lepiej zrozumieć migrację treści wielojęzycznych z CSV do Drupala 8.

Import CSV

Moduły migracji do Drupala 8, których będziesz potrzebować

Jak wspomniano wcześniej, Drupal oferuje mnóstwo opcji i modułów, które mogą pomóc w łatwej i bezproblemowej migracji. Do migracji treści wielojęzycznych będziesz potrzebować:

  1. Migracja: zapewnia elastyczną strukturę do migracji zawartości do Drupala z innych źródeł.
  2. Migrate plus: zapewnia wtyczki do migracji, takie jak wtyczki źródłowe, wtyczki procesów, wtyczki docelowe i rozszerzenia API.
  3. Migrate Drupal: Zapewnia obsługę migracji zawartości i konfiguracji.
  4. Migruj źródłowy plik CSV: zapewnia wtyczkę do importowania treści do Drupala z pliku CSV.
  5. Narzędzia migracji: ten moduł zawiera narzędzia interfejsu użytkownika i polecenia Drush używane do migracji.
  6. Moduł rozwoju konfiguracji: Ten moduł konwertuje skrypt na konfiguracje.

Krok 1: Migracja zawartości podstawowej

Aby rozpocząć migrację zawartości bazowej, najpierw musimy stworzyć niestandardowy moduł w Drupal 8.

Utwórz niestandardowy moduł

Upewnij się, że info.yml zawiera te klucze i wartości.

Będziesz musiał utworzyć pliki yaml , które są znane jako skrypty migracji, i umieścić je w katalogu config/install utworzonego modułu niestandardowego. Klucz config_devel/install pliku info.yml powinien zawierać wszystkie zapisane pliki yaml.

Plik Yaml

To jest przykładowy plik yaml do importowania terminów taksonomii. Skrypt migracji składa się z 4 sekcji:

  1. Metadane: będą miały identyfikator, etykietę i identyfikator grupy migracji.
  2. Źródło: klucz źródłowy powinien mieć ścieżkę do pliku CSV.
  3. Proces: mapowanie między polami a kolumnami CSV.
  4. Miejsce docelowe: Miejsce docelowe, w którym zapisywane są importowane dane.

Zawartość węzła pliku yaml powinna być napisana podobnie. Jedyna różnica to miejsce docelowe.

Węzeł encji

Wtyczka docelowa powinna mieć postać entity:node, a default_bundle będzie miał nazwę komputera typu zawartości, do którego zawartość jest importowana.

Po utworzeniu wszystkich plików yaml, identyfikatory yaml powinny być zawarte w info.yml . Gdy wszystko zostanie zrobione, włącz moduł niestandardowy.

Użyj polecenia Drush drush cdi <identyfikator migracji> . Tutaj identyfikator migracji to techx migration . Spowoduje to przekształcenie skryptu w konfiguracje.

Po uruchomieniu polecenia przejdź do admin>structure>migration . Grupę migracji, którą utworzyłeś, znajdziesz, klikając na listę migracji. Spowoduje to wyświetlenie listy utworzonych skryptów migracji.

Operacje

Kliknięcie na zakładkę wykonaj pokaże listę dostępnych operacji:

Dostępne operacje

Import polega na pobraniu danych ze źródła.

Cofnięcie spowoduje usunięcie zaimportowanych danych.

Zatrzymanie ma na celu przerwanie procesu importowania lub wycofywania.

Czasami proces się zacina. Aby zmienić stan na bezczynny, używany jest Reset .

Aby uzyskać bardziej szczegółowe informacje na temat migracji danych różnych podmiotów, takich jak użytkownik, akapit, sprawdź Import CSV do migracji Drupal 7 do 8 - kompletny przewodnik.

Krok 2: Migracja tłumaczeń treści podstawowej

Jeśli włączyłeś już wielojęzyczne treści na swojej stronie Drupal 8, możesz pominąć pierwszy krok. Jeśli chcesz wiedzieć, jak tworzyć wielojęzyczne witryny Drupal 8 (i dlaczego możesz ich potrzebować), zapoznaj się z tym artykułem.

1. Dodanie języka do serwisu Drupal

Aby zaimportować tłumaczenia, najpierw musimy uczynić naszą stronę wielojęzyczną. Zobaczmy, jak pobrać języki na stronę.

  1. Włącz moduł tłumaczenia języka i treści . To są podstawowe moduły.
  2. Przejdź do /admin/config/regional i język/język/dodaj język.Dodaj język
  3. Kliknięcie menu rozwijanego daje listę języków. Wybierz żądany język na stronie i kliknij Dodaj język . Spowoduje to pobranie języka Twojej witryny.

2. Umożliwienie tłumaczenia dla podmiotów

Po zainstalowaniu potrzebnych języków musimy włączyć tłumaczenia dla podmiotów przed zaimportowaniem lub dodaniem tłumaczeń do treści. W tym celu przejdź do admin/config/regional/content translation . Wybierz encje, dla których chcesz włączyć tłumaczenie i kliknij Zapisz konfiguracje .

W tym przykładzie importuję typ treści bloga, a tym samym włączam tłumaczenie dla typu treści bloga.

Język

3. Zaktualizuj pliki migracji

Istnieje kilka zmian, które należy wprowadzić w plikach yaml, aby zaimportować tłumaczenia. Podaj ścieżkę pliku CSV z przetłumaczoną treścią jako treść podstawową, a przetłumaczona treść będzie przechowywana w różnych plikach. Zmiany w tłumaczeniu terminów.

pływ

Dodaj nową tid klucza w sekcji procesowej skryptu z wtyczką jako źródła migracji, jak id, a wartość migracyjna powinna być id migracja swoim skrypcie migracji zawartości bazowej.

W przypadku migracji węzłów dodaj nowy klucz nid w sekcji procesu. Tutaj klucz migracji będzie miał wartość identyfikatora migracji swojego podstawowego skryptu migracji zawartości.

Identyfikator źródła

Kolejnym kluczem, który należy dodać, są tłumaczenia z wartością ustawioną na true . Należy to dodać w sekcji docelowej wszystkich skryptów migracji tłumaczeń, niezależnie od jednostek.

Miejsce docelowe

Zdefiniuj język, na który tłumaczenie jest importowane za pomocą klucza langcode . W tym przykładzie importuję tłumaczenia japońskie, więc wartością będzie ja .

Kod Langcode

Te zmiany mówią skryptowi, aby wziął identyfikator treści z podstawowej migracji treści, z której treści te są traktowane jako tłumaczenia, a nie nowy węzeł.

Punkty do zapamiętania

  • Proces importowania powinien przebiegać w porządku. Na przykład, jeśli terminy są przywoływane w węźle, terminy powinny być importowane najpierw przed zawartością węzła.
  • Włącz tłumaczenie dla podmiotów przed zaimportowaniem tłumaczeń.
  • Kolejność treści tłumaczenia w pliku CSV powinna być taka sama jak treść bazowa. Oznacza to, że treść podstawowa i jej tłumaczenia powinny znajdować się w tym samym wierszu w pliku CSV.
  • Najpierw zaimportuj treść podstawową, a następnie treść tłumaczenia. W przeciwnym razie obie będą traktowane jako osobne treści.