You are here

class Language in Drupal 8

Same name in this branch
  1. 8 core/lib/Drupal/Core/Language/Language.php \Drupal\Core\Language\Language
  2. 8 core/modules/ckeditor/src/Plugin/CKEditorPlugin/Language.php \Drupal\ckeditor\Plugin\CKEditorPlugin\Language
  3. 8 core/modules/language/src/Plugin/Condition/Language.php \Drupal\language\Plugin\Condition\Language
  4. 8 core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php \Drupal\Core\TypedData\Plugin\DataType\Language
  5. 8 core/modules/language/src/Plugin/migrate/source/Language.php \Drupal\language\Plugin\migrate\source\Language
Same name and namespace in other branches
  1. 9 core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php \Drupal\Core\TypedData\Plugin\DataType\Language

Defines the 'language' data type.

The plain value of a language is the language object, i.e. an instance of \Drupal\Core\Language\Language. For setting the value the language object or the language code as string may be passed.

Plugin annotation


@DataType(
  id = "language",
  label = @Translation("Language"),
  description = @Translation("A language object.")
)

Hierarchy

Expanded class hierarchy of Language

62 string references to 'Language'
ckeditor.schema.yml in core/modules/ckeditor/config/schema/ckeditor.schema.yml
core/modules/ckeditor/config/schema/ckeditor.schema.yml
ConfigTestForm::form in core/modules/config/tests/config_test/src/ConfigTestForm.php
Gets the actual form array to be built.
ConfigTranslationController::itemPage in core/modules/config_translation/src/Controller/ConfigTranslationController.php
Language translations overview page for a configuration name.
ConfigTranslationListUiTest::doBlockListTest in core/modules/config_translation/tests/src/Functional/ConfigTranslationListUiTest.php
Tests the block listing for the translate operation.
ConfigTranslationListUiTest::doContactFormsListTest in core/modules/config_translation/tests/src/Functional/ConfigTranslationListUiTest.php
Tests the contact forms listing for the translate operation.

... See full list

File

core/lib/Drupal/Core/TypedData/Plugin/DataType/Language.php, line 20

Namespace

Drupal\Core\TypedData\Plugin\DataType
View source
class Language extends TypedData {

  /**
   * The id of the language.
   *
   * @var string
   */
  protected $id;

  /**
   * @var \Drupal\Core\Language
   */
  protected $language;

  /**
   * Overrides TypedData::getValue().
   *
   * @return \Drupal\Core\Language\LanguageInterface|null
   */
  public function getValue() {
    if (!isset($this->language) && $this->id) {
      $this->language = \Drupal::languageManager()
        ->getLanguage($this->id);
    }
    return $this->language;
  }

  /**
   * Overrides TypedData::setValue().
   *
   * Both the langcode and the language object may be passed as value.
   */
  public function setValue($value, $notify = TRUE) {

    // Support passing language objects.
    if (is_object($value)) {
      $this->id = $value
        ->getId();
      $this->language = $value;
    }
    elseif (isset($value) && !is_scalar($value)) {
      throw new \InvalidArgumentException('Value is no valid langcode or language object.');
    }
    else {
      $this->id = $value;
      $this->language = NULL;
    }

    // Notify the parent of any changes.
    if ($notify && isset($this->parent)) {
      $this->parent
        ->onChange($this->name);
    }
  }

  /**
   * {@inheritdoc}
   */
  public function getString() {
    $language = $this
      ->getValue();
    return $language ? $language
      ->getName() : '';
  }

  /**
   * {@inheritdoc}
   */
  public function id() {
    if (isset($this->id)) {
      return $this->id;
    }
    elseif (isset($this->language)) {
      return $this->language
        ->getId();
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
DependencySerializationTrait::$_entityStorages protected property An array of entity type IDs keyed by the property name of their storages.
DependencySerializationTrait::$_serviceIds protected property An array of service IDs keyed by property name used for serialization.
DependencySerializationTrait::__sleep public function 1
DependencySerializationTrait::__wakeup public function 2
Language::$id protected property The id of the language.
Language::$language protected property
Language::getString public function Returns a string representation of the data. Overrides TypedData::getString
Language::getValue public function Overrides TypedData::getValue(). Overrides TypedData::getValue
Language::id public function
Language::setValue public function Overrides TypedData::setValue(). Overrides TypedData::setValue
StringTranslationTrait::$stringTranslation protected property The string translation service. 1
StringTranslationTrait::formatPlural protected function Formats a string containing a count of items.
StringTranslationTrait::getNumberOfPlurals protected function Returns the number of plurals supported by a given language.
StringTranslationTrait::getStringTranslation protected function Gets the string translation service.
StringTranslationTrait::setStringTranslation public function Sets the string translation service to use. 2
StringTranslationTrait::t protected function Translates a string to the current language or to a given language.
TypedData::$definition protected property The data definition. 1
TypedData::$name protected property The property name.
TypedData::$parent protected property The parent typed data object.
TypedData::applyDefaultValue public function Applies the default value. Overrides TypedDataInterface::applyDefaultValue 3
TypedData::createInstance public static function Constructs a TypedData object given its definition and context. Overrides TypedDataInterface::createInstance
TypedData::getConstraints public function Gets a list of validation constraints. Overrides TypedDataInterface::getConstraints 9
TypedData::getDataDefinition public function Gets the data definition. Overrides TypedDataInterface::getDataDefinition
TypedData::getName public function Returns the name of a property or item. Overrides TypedDataInterface::getName
TypedData::getParent public function Returns the parent data structure; i.e. either complex data or a list. Overrides TypedDataInterface::getParent
TypedData::getPluginDefinition public function Gets the definition of the plugin implementation. Overrides PluginInspectionInterface::getPluginDefinition
TypedData::getPluginId public function Gets the plugin_id of the plugin instance. Overrides PluginInspectionInterface::getPluginId
TypedData::getPropertyPath public function Returns the property path of the data. Overrides TypedDataInterface::getPropertyPath
TypedData::getRoot public function Returns the root of the typed data tree. Overrides TypedDataInterface::getRoot
TypedData::setContext public function Sets the context of a property or item via a context aware parent. Overrides TypedDataInterface::setContext
TypedData::validate public function Validates the currently set data value. Overrides TypedDataInterface::validate
TypedData::__construct public function Constructs a TypedData object given its definition and context. 3
TypedDataTrait::$typedDataManager protected property The typed data manager used for creating the data types.
TypedDataTrait::getTypedDataManager public function Gets the typed data manager. 2
TypedDataTrait::setTypedDataManager public function Sets the typed data manager. 2