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

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

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

Итак, как перенести перевод терминов? Пример D6 не работает.

Спасибо.

Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Symfony Station Communiqué - 17 февраля 2023 г
Symfony Station Communiqué - 17 февраля 2023 г
Это коммюнике первоначально появилось на Symfony Station , вашем источнике передовых новостей Symfony, PHP и кибербезопасности.
Разработка Drupal и AngularJS: Идеальное сочетание для вашей веб-стратегии
Разработка Drupal и AngularJS: Идеальное сочетание для вашей веб-стратегии
Один опытный веб-разработчик назвал комбинацию Drupal и AngularJS "сочетанием, созданным на небесах". Почему так? Потому что вместе они могут создать...
3
0
870
2

Ответы 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 trans yuml отрезал:

источник:

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

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

Для импорта нескольких значений поля вам также понадобится модуль с именем ТАМПЕР КОРМОВ.

Другие вопросы по теме