Drupal 7到Drupal 8迁移。我已使用源语言迁移了术语,但我无法迁移术语的翻译(i18n) - 名称和说明。
我已经创建了一个自定义源插件,我在其中创建了包含分类名称和描述的翻译的新字段。
那么如何迁移术语翻译? D6的例子不起作用。
谢谢。
答案 0 :(得分:0)
您可以在完全迁移分类法(不翻译)之后执行以下步骤:
drush mim module_name
我的过程术语的yum片段,没有反式:
# 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反式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']);
答案 1 :(得分:0)
您可以使用FEEDS MODULE导入分类法,节点,用户,产品,自定义块,段落,自定义菜单链接。
要导入字段的多个值,您还需要一个名为 FEEDS TAMPER。