function PluralTranslatableMarkup::render

Same name in other branches
  1. 9 core/lib/Drupal/Core/StringTranslation/PluralTranslatableMarkup.php \Drupal\Core\StringTranslation\PluralTranslatableMarkup::render()
  2. 10 core/lib/Drupal/Core/StringTranslation/PluralTranslatableMarkup.php \Drupal\Core\StringTranslation\PluralTranslatableMarkup::render()
  3. 11.x core/lib/Drupal/Core/StringTranslation/PluralTranslatableMarkup.php \Drupal\Core\StringTranslation\PluralTranslatableMarkup::render()

Renders the object as a string.

Return value

string The translated string.

Overrides TranslatableMarkup::render

File

core/lib/Drupal/Core/StringTranslation/PluralTranslatableMarkup.php, line 110

Class

PluralTranslatableMarkup
A class to hold plural translatable markup.

Namespace

Drupal\Core\StringTranslation

Code

public function render() {
    if (!$this->translatedString) {
        $this->translatedString = $this->getStringTranslation()
            ->translateString($this);
    }
    if ($this->translatedString === '') {
        return '';
    }
    $arguments = $this->getArguments();
    $arguments['@count'] = $this->count;
    $translated_array = explode(PoItem::DELIMITER, $this->translatedString);
    if ($this->count == 1) {
        return $this->placeholderFormat($translated_array[0], $arguments);
    }
    $index = $this->getPluralIndex();
    if ($index == 0) {
        // Singular form.
        $return = $translated_array[0];
    }
    else {
        if (isset($translated_array[$index])) {
            // N-th plural form.
            $return = $translated_array[$index];
        }
        else {
            // If the index cannot be computed or there's no translation, use the
            // second plural form as a fallback (which allows for most flexibility
            // with the replaceable @count value).
            $return = $translated_array[1];
        }
    }
    return $this->placeholderFormat($return, $arguments);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.