diff -u b/src/Importer.php b/src/Importer.php --- b/src/Importer.php +++ b/src/Importer.php @@ -185,24 +185,24 @@ // @todo what if no dependencies? $sorted = $this->sortTree($this->graph); - $langs_available = array_keys($this->languageManager->getLanguages()); - $current_lang = $this->languageManager->getCurrentLanguage()->getId(); + $languages_available = array_keys($this->languageManager->getLanguages()); + $current_language = $this->languageManager->getCurrentLanguage()->getId(); foreach ($sorted as $link => $details) { if (!empty($file_map[$link])) { $file = $file_map[$link]; $entity_type_id = $file->entity_type_id; $class = $this->entityTypeManager->getDefinition($entity_type_id)->getClass(); $contents = $this->parseFile($file); - // Decode check language, if language unavailable set to default language + // Decode, check language, enforce supported language on content $decoded = $this->serializer->decode($contents, 'hal_json'); - if (isset($decoded['langcode']) && !in_array($decoded['langcode'][0]['value'], $langs_available)) { - $decoded['langcode'][0]['value'] = $current_lang; + if (isset($decoded['langcode']) && !in_array($decoded['langcode'][0]['value'], $languages_available), TRUE) { + $decoded['langcode'][0]['value'] = $current_language; } array_walk_recursive($decoded, function (&$value, $key, $userdata) { - if (($key == 'lang') && (!in_array($value, $userdata[1]))) { + if (($key == 'lang') && (!in_array($value, $userdata[1], TRUE))) { $value = $userdata[0]; } - }, [$current_lang, $langs_available]); + }, [$current_language, $languages_available]); $contents = $this->serializer->encode($decoded, 'hal_json'); $entity = $this->serializer->deserialize($contents, $class, 'hal_json', ['request_method' => 'POST']); $entity->enforceIsNew(TRUE);