Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
| Total | |
0.00% |
0 / 1 |
|
80.00% |
4 / 5 |
CRAP | |
70.00% |
7 / 10 |
| StringTranslationTrait | |
0.00% |
0 / 1 |
|
80.00% |
4 / 5 |
8.32 | |
70.00% |
7 / 10 |
| t | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| formatPlural | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
| getNumberOfPlurals | |
0.00% |
0 / 1 |
6 | |
0.00% |
0 / 3 |
|||
| getStringTranslation | |
100.00% |
1 / 1 |
2 | |
100.00% |
3 / 3 |
|||
| setStringTranslation | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
| <?php | |
| /** | |
| * @file | |
| * Contains \Drupal\Core\StringTranslation\StringTranslationTrait. | |
| */ | |
| namespace Drupal\Core\StringTranslation; | |
| /** | |
| * Wrapper methods for \Drupal\Core\StringTranslation\TranslationInterface. | |
| * | |
| * Using this trait will add t() and formatPlural() methods to the class. These | |
| * must be used for every translatable string, similar to how procedural code | |
| * must use the global functions t() and \Drupal::translation()->formatPlural(). | |
| * This allows string extractor tools to find translatable strings. | |
| * | |
| * If the class is capable of injecting services from the container, it should | |
| * inject the 'string_translation' service and assign it to | |
| * $this->stringTranslation. | |
| * | |
| * @see \Drupal\Core\StringTranslation\TranslationInterface | |
| * @see container | |
| * | |
| * @ingroup i18n | |
| */ | |
| trait StringTranslationTrait { | |
| /** | |
| * The string translation service. | |
| * | |
| * @var \Drupal\Core\StringTranslation\TranslationInterface | |
| */ | |
| protected $stringTranslation; | |
| /** | |
| * Translates a string to the current language or to a given language. | |
| * | |
| * See \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() for | |
| * important security information and usage guidelines. | |
| * | |
| * In order for strings to be localized, make them available in one of the | |
| * ways supported by the | |
| * @link https://www.drupal.org/node/322729 Localization API @endlink. When | |
| * possible, use the \Drupal\Core\StringTranslation\StringTranslationTrait | |
| * $this->t(). Otherwise create a new | |
| * \Drupal\Core\StringTranslation\TranslatableMarkup object. | |
| * | |
| * @param string $string | |
| * A string containing the English text to translate. | |
| * @param array $args | |
| * (optional) An associative array of replacements to make after | |
| * translation. Based on the first character of the key, the value is | |
| * escaped and/or themed. See | |
| * \Drupal\Component\Render\FormattableMarkup::placeholderFormat() for | |
| * details. | |
| * @param array $options | |
| * (optional) An associative array of additional options, with the following | |
| * elements: | |
| * - 'langcode' (defaults to the current language): A language code, to | |
| * translate to a language other than what is used to display the page. | |
| * - 'context' (defaults to the empty context): The context the source | |
| * string belongs to. | |
| * | |
| * @return \Drupal\Core\StringTranslation\TranslatableMarkup | |
| * An object that, when cast to a string, returns the translated string. | |
| * | |
| * @see \Drupal\Component\Render\FormattableMarkup::placeholderFormat() | |
| * @see \Drupal\Core\StringTranslation\TranslatableMarkup::__construct() | |
| * | |
| * @ingroup sanitization | |
| */ | |
| protected function t($string, array $args = array(), array $options = array()) { | |
| return $this->getStringTranslation()->translate($string, $args, $options); | |
| } | |
| /** | |
| * Formats a string containing a count of items. | |
| * | |
| * @see \Drupal\Core\StringTranslation\TranslationInterface::formatPlural() | |
| */ | |
| protected function formatPlural($count, $singular, $plural, array $args = array(), array $options = array()) { | |
| return $this->getStringTranslation()->formatPlural($count, $singular, $plural, $args, $options); | |
| } | |
| /** | |
| * Returns the number of plurals supported by a given language. | |
| * | |
| * @see \Drupal\locale\PluralFormulaInterface::getNumberOfPlurals() | |
| */ | |
| protected function getNumberOfPlurals($langcode = NULL) { | |
| if (\Drupal::hasService('locale.plural.formula')) { | |
| return \Drupal::service('locale.plural.formula')->getNumberOfPlurals($langcode); | |
| } | |
| // We assume 2 plurals if Locale's services are not available. | |
| return 2; | |
| } | |
| /** | |
| * Gets the string translation service. | |
| * | |
| * @return \Drupal\Core\StringTranslation\TranslationInterface | |
| * The string translation service. | |
| */ | |
| protected function getStringTranslation() { | |
| if (!$this->stringTranslation) { | |
| $this->stringTranslation = \Drupal::service('string_translation'); | |
| } | |
| return $this->stringTranslation; | |
| } | |
| /** | |
| * Sets the string translation service to use. | |
| * | |
| * @param \Drupal\Core\StringTranslation\TranslationInterface $translation | |
| * The string translation service. | |
| * | |
| * @return $this | |
| */ | |
| public function setStringTranslation(TranslationInterface $translation) { | |
| $this->stringTranslation = $translation; | |
| return $this; | |
| } | |
| } |