function TranslationManager::getPluralIndex
Returns plural form index for a specific number.
The index is computed from the formula of this language.
Parameters
int $count: Number to return plural for.
string|null $langcode: (optional) Language code to translate to a language other than what is used to display the page.
Return value
int The numeric index of the plural variant to use for this $langcode and $count combination or -1 if the language was not found or does not have a plural formula.
File
-
core/
modules/ locale/ src/ TranslationManager.php, line 37
Class
- TranslationManager
- Plural index implementation.
Namespace
Drupal\localeCode
protected function getPluralIndex(int $count, ?string $langcode = NULL) : int {
$langcode = $langcode ?: $this->defaultLangcode;
// Retrieve the plural formulas for all languages.
$plural_formulas = $this->pluralFormula
->getFormula($langcode);
// If there is a plural formula for the language, evaluate it for the
// given $count.
if (!empty($plural_formulas)) {
// Plural formulas are stored as an array for 0-199. 100 is the highest
// modulo used but storing 0-99 is not enough because below 100 we often
// find exceptions (1, 2, etc).
$index = $count > 199 ? 100 + $count % 100 : $count;
return $plural_formulas[$index] ?? $plural_formulas['default'];
}
elseif ($langcode == 'en') {
return (int) ($count != 1);
}
else {
return -1;
}
}
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.