Drupal 7 в Drupal 8: перенести таксономию с переводом (i18n)?

Переход с Drupal 7 на Drupal 8. Я перенес термины на исходный язык, но не могу перенести переводы терминов (i18n) — название и описание.

Я создал настраиваемый исходный плагин, в котором я создаю новые поля с переводом названия и описания таксономии.

Так как же перенести переводы терминов? Пример D6 не работает.

Спасибо.


person Stefan Petrov    schedule 14.03.2018    source источник


Ответы (2)


Вы можете выполнить эти шаги после полной миграции вашей таксономии (без перевода):

  1. Установите язык - https://www.drupal.org/docs/8/multilingual/install-a-language
  2. Создайте модуль для миграции (пример для узла): https://github.com/evolvingweb/migrate_example_i18n
  3. Напишите подключаемый модуль источника миграции (пример для узла): https://github.com/evolvingweb/migrate_example_i18n/blob/8.x/src/Plugin/migrate/source/D7NodeEntityTranslation.php
  4. Запишите файл YUML с «отображением» (пример для узла): https://github.com/evolvingweb/migrate_example_i18n/blob/8.x/config/install/migrate_plus.migration.example_dog_i18n.yml
  5. В командной строке в папке проекта выполните следующее: drush mim module_name

Мой yuml-фрагмент термина процесса без транса:

  # to_db_value : from_db_value.
  # d8_db_value : d7_db_value
  tid: tid
  vid:
   plugin: migration_lookup
   migration: your_vocabulary_migration
   source: vid
  langcode:
   plugin: default_value
   default_value: en // your und lng

мой i18n транс-юмл вырезал:

источник:

plugin: taxonomy_terms_i18n // custom source plugin to get translations
  translations: true
destination:
  plugin: entity:taxonomy_term
  translations: true
process:
  # to_db_value : from_db_value.
  # d8_db_value : d7_db_value
  tid:
    plugin: migration_lookup
    migration: // name of your previous migration of terms
    source: tid
  langcode:
    plugin: default_value
    default_value: es
  vid:
    plugin: skip_on_value
    source: machine_name
    method: row
    value:
      - // terms vid that you don't need
  name:
    plugin: skip_on_empty
    method: row
    source: translation

исходный файл, вырезанный из запроса для перевода i18n:

     $query = $this->select('taxonomy_term_data', 'term_data');
 $query->join('taxonomy_vocabulary','vocabulary', 'term_data.vid = vocabulary.vid');
 $query->leftJoin('i18n_string','i18n', 'term_data.tid = i18n.objectid');
 $query->leftJoin('locales_target','locales', 'i18n.lid = locales.lid');

 $query
 ->fields('term_data', [
   'tid',
   'vid',
   'name',
   'description',
   'weight',
   'format',
 ])
 ->fields('vocabulary', ['machine_name'])
 ->fields('locales', ['translation']);

Дополнительная информация: https://events.drupal.org/sites/default/files/slides/Migrating%20Multilingual%20Content%20to%20Drupal%208.pdf

person Valiyard    schedule 05.06.2019

Вы можете импортировать таксономии, узлы, пользователей, продукты, настраиваемые блоки, абзацы, ссылки настраиваемого меню с помощью МОДУЛЬ ФИДОВ.

Для импорта нескольких значений поля вам также понадобится модуль под названием FEEDS TAMPER.

person Alen Simonyan    schedule 29.09.2019