Drupal 8以编程方式翻译段落



段落应该在其组件字段的级别上进行翻译,而不是在段落级别上。那么您如何编程翻译段落?

更明确,我的段落字段不可翻译,但组件字段是。那么如何加载节点,循环遍历段落项目,然后将翻译添加到字段中?

有人有例子吗?谢谢。

https://www.flocondetoile.fr/blog/translate-programmatily-drupal-8节点翻译:

这是我实际代码的抽象,我实际上并未对其进行测试:

$node = node_load(12);
if ($node->hasTranslation('de')) {
  $transl_node = $node->getTranslation('de');
  foreach ($transl_node->field_paragraph  => $paragraph) {
      $entity_array = $paragraph->toArray();
      $translated_fields = [];
        $translated_fields['field_body'] = array(
          'value' => 'translated value',
          'format' => 'full'
        );
        $translated_fields['field_section_title'] = 'translated section title';
        $translated_entity_array = array_merge($entity_array, $translated_fields);
        if (!$paragraph->hasTranslation('de')) {
          $paragraph->addTranslation('de', $translated_entity_array);
          $paragraph->save();
        }
  }
  $transl_node->save();
}

最新更新