protected ContentEntityBase::getTranslatedField($name, $langcode)

Obtiene un campo traducido.

Valor devuelto

Drupal Core Field FieldItemListInterface

Expediente

core / lib / Drupal / Core / Entity /ContentEntityBase.php, línea 462

Clase

ContentEntityBase
Implementa mejoras específicas de la API de Entity Field en la clase Entity.

Espacio de nombres

Drupal Core Entidad

Código

protectedfunctiongetTranslatedField($name,$langcode)if($this->translations[$this->activeLangcode]['status']==static::TRANSLATION_REMOVED)thrownewInvalidArgumentException("The entity object refers to a removed translation ($this->activeLangcode) and cannot be manipulated.");// Populate $this->fields to speed-up further look-ups and to keep track of// fields objects, possibly holding changes to field values.if(!isset($this->fields[$name][$langcode]))$definition=$this->getFieldDefinition($name);if(!$definition)thrownewInvalidArgumentException("Field $name is unknown.");// Non-translatable fields are always stored with// LanguageInterface::LANGCODE_DEFAULT as key.$default=$langcode==LanguageInterface::LANGCODE_DEFAULT;if(!$default&&!$definition->isTranslatable())if(!isset($this->fields[$name][LanguageInterface::LANGCODE_DEFAULT]))$this->fields[$name][LanguageInterface::LANGCODE_DEFAULT]=$this->getTranslatedField($name,LanguageInterface::LANGCODE_DEFAULT);$this->fields[$name][$langcode]=&$this->fields[$name][LanguageInterface::LANGCODE_DEFAULT];else$value=NULL;if(isset($this->values[$name][$langcode]))$value=$this->values[$name][$langcode];$field=Drupal::service('plugin.manager.field.field_type')->createFieldItemList($this->getTranslation($langcode),$name,$value);if($default)// $this->defaultLangcode might not be set if we are initializing the// default language code cache, in which case there is no valid// langcode to assign.$field_langcode=isset($this->defaultLangcode)?$this->defaultLangcode:LanguageInterface::LANGCODE_NOT_SPECIFIED;else$field_langcode=$langcode;$field->setLangcode($field_langcode);$this->fields[$name][$langcode]=$field;return$this->fields[$name][$langcode];