Drupal 8以编程方式翻译段落

Drupal 8以编程方式翻译段落,drupal,translation,paragraphs,Drupal,Translation,Paragraphs,段落应该在其组件字段级别上进行翻译,而不是在段落字段级别上进行翻译。那么,如何以编程方式翻译段落呢 更明确地说,“我的段落”字段是不可翻译的,但“组件”字段是可翻译的。那么,我如何加载一个节点,循环遍历段落项目,并向字段添加翻译呢 有人举个例子吗? 谢谢。以下节点翻译: 这是我实际代码的抽象,我还没有实际测试它: $node = node_load(12); if ($node->hasTranslation('de')) { $transl_node = $node->get

段落应该在其组件字段级别上进行翻译,而不是在段落字段级别上进行翻译。那么,如何以编程方式翻译段落呢

更明确地说,“我的段落”字段是不可翻译的,但“组件”字段是可翻译的。那么,我如何加载一个节点,循环遍历段落项目,并向字段添加翻译呢

有人举个例子吗? 谢谢。

以下节点翻译:

这是我实际代码的抽象,我还没有实际测试它:

$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();
}

对于编程翻译,您需要使用一些第三方服务,如谷歌翻译等。。。请参考个人文档,哪项服务适合你不,这完全没有抓住文章的重点。