public static function preCreate(EntityStorageInterface $storage, array &$values) {
parent::preCreate($storage, $values);
// If either the source or target language is empty.
if (empty($values['source_language']) || empty($values['target_language'])) {
$languages = tmgmt_available_languages();
if (empty($values['source_language'])) {
$values['source_language'] = key($languages);
}
if (empty($values['target_language'])) {
// Values might be an array, simplify it to a scalar langcode.
$source_language = $values['source_language'];
while (is_array($source_language)) {
$source_language = reset($source_language);
}
// Make sure the source language is not available as target language,
// use the next best value as the default.
unset($languages[$source_language]);
$values['target_language'] = key($languages);
}
}
}