Same name and namespace in other branches
  1. 8.9.x core/lib/Drupal/Core/Annotation/Translation.php \Drupal\Core\Annotation\Translation
  2. 9 core/lib/Drupal/Core/Annotation/Translation.php \Drupal\Core\Annotation\Translation

Defines a translatable annotation object.

Some metadata within an annotation needs to be translatable. This class supports that need by allowing both the translatable string and, if specified, a context for that string. The string (with optional context) is passed into t().

Hierarchy

Expanded class hierarchy of Translation

Related topics

1 file declares its use of Translation
TranslationTest.php in core/tests/Drupal/Tests/Core/Annotation/TranslationTest.php
8 string references to 'Translation'
BlockTranslation::fields in core/modules/block/src/Plugin/migrate/source/d7/BlockTranslation.php
Returns available fields on the source.
content_translation_entity_extra_field_info in core/modules/content_translation/content_translation.module
Implements hook_entity_extra_field_info().
FieldDiscoveryTest::getCoreVersionData in core/modules/migrate_drupal/tests/src/Unit/FieldDiscoveryTest.php
Provides data for testGetCoreVersion()
FieldLabelDescriptionTranslation::fields in core/modules/field/src/Plugin/migrate/source/d7/FieldLabelDescriptionTranslation.php
Returns available fields on the source.
MenuTranslation::fields in core/modules/system/src/Plugin/migrate/source/d7/MenuTranslation.php
Returns available fields on the source.

... See full list

File

core/lib/Drupal/Core/Annotation/Translation.php, line 53

Namespace

Drupal\Core\Annotation
View source
class Translation extends AnnotationBase {

  /**
   * The string translation object.
   *
   * @var \Drupal\Core\StringTranslation\TranslatableMarkup
   */
  protected $translation;

  /**
   * Constructs a new class instance.
   *
   * Parses values passed into this class through the t() function in Drupal and
   * handles an optional context for the string.
   *
   * @param array $values
   *   Possible array keys:
   *   - value (required): the string that is to be translated.
   *   - arguments (optional): an array with placeholder replacements, keyed by
   *     placeholder.
   *   - context (optional): a string that describes the context of "value";
   */
  public function __construct(array $values) {
    $string = $values['value'];
    $arguments = $values['arguments'] ?? [];
    $options = [];
    if (!empty($values['context'])) {
      $options = [
        'context' => $values['context'],
      ];
    }
    $this->translation = new TranslatableMarkup($string, $arguments, $options);
  }

  /**
   * {@inheritdoc}
   */
  public function get() {
    return $this->translation;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AnnotationBase::$class protected property The class used for this annotated class.
AnnotationBase::$id public property The annotated class ID. 1
AnnotationBase::$provider protected property The provider of the annotated class.
AnnotationBase::getClass public function Gets the class of the annotated class. Overrides AnnotationInterface::getClass
AnnotationBase::getId public function Gets the unique ID for this annotated class. Overrides AnnotationInterface::getId 1
AnnotationBase::getProvider public function Gets the name of the provider of the annotated class. Overrides AnnotationInterface::getProvider
AnnotationBase::setClass public function Sets the class of the annotated class. Overrides AnnotationInterface::setClass
AnnotationBase::setProvider public function Sets the name of the provider of the annotated class. Overrides AnnotationInterface::setProvider
Translation::$translation protected property The string translation object.
Translation::get public function Gets the value of an annotation. Overrides AnnotationInterface::get
Translation::__construct public function Constructs a new class instance.