PluralTranslatableMarkup::render

public 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 105

Class

PluralTranslatableMarkup
A class to hold plural translatable markup.

Namespace

Drupal\Core\StringTranslation

Code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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(static::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);
}
doc_Drupal
2025-01-10 15:47:30
Comments
Leave a Comment

Please login to continue.