code: public function mapContentBlock(Content $content)
      {
          $contentInfo = $content->versionInfo->contentInfo;
          $locations = $this->locationHandler->loadLocationsByContent($contentInfo->id);
          $blockFields = $this->getBlockFields($content);
          $contentFields = $this->getContentFields($content);
          $documents = [];
          $locationFieldsMap = [];
  
          foreach ($locations as $location) {
              $locationFieldsMap[$location->id] = $this->getLocationFields($location);
          }
  
          foreach (array_keys($content->versionInfo->names) as $languageCode) {
              $blockTranslationFields = $this->getBlockTranslationFields(
                  $content,
                  $languageCode
              );
  
              $translationLocationDocuments = array();
              foreach ($locations as $location) {
                  $translationLocationDocuments[] = new Document(
                      array(
                          'id' => $this->generateLocationDocumentId($location->id, $languageCode),
                          'fields' => array_merge(
                              $blockFields,
                              $locationFieldsMap[$location->id],
                              $blockTranslationFields
                          ),
                      )
                  );
              }
  
              $isMainTranslation = ($contentInfo->mainLanguageCode === $languageCode);
              $alwaysAvailable = ($isMainTranslation && $contentInfo->alwaysAvailable);
              $contentTranslationFields = $this->getContentTranslationFields(
                  $content,
                  $languageCode
              );
  
              $documents[] = new Document(
                  array(
                      'id' => $this->generateContentDocumentId(
                          $contentInfo->id,
                          $languageCode
                      ),
                      'languageCode' => $languageCode,
                      'alwaysAvailable' => $alwaysAvailable,
                      'isMainTranslation' => $isMainTranslation,
                      'fields' => array_merge(
                          $blockFields,
                          $contentFields,
                          $blockTranslationFields,
                          $contentTranslationFields
                      ),
                      'documents' => $translationLocationDocuments,
                  )
              );
          }
  
          return $documents;
      }
docs: Maps given Content to a Document.
  
  @param \eZ\Publish\SPI\Persistence\Content $content
  
  @return \eZ\Publish\SPI\Search\Document[]