locale_get_plural($count, $langcode = NULL)
Returns plural form index for a specific number.
The index is computed from the formula of this language.
Parameters
$count: Number to return plural for.
$langcode: Optional language code to translate to a language other than what is used to display the page.
Return value
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/locale.module, line 275
- Enables the translation of the user interface to languages other than English.
Code
function locale_get_plural($count, $langcode = NULL) { $language_interface = \Drupal::languageManager()->getCurrentLanguage(); // Used to store precomputed plural indexes corresponding to numbers // individually for each language. $plural_indexes = &drupal_static(__FUNCTION__ . ':plurals', array()); $langcode = $langcode ? $langcode : $language_interface->getId(); if (!isset($plural_indexes[$langcode][$count])) { // Retrieve and statically cache the plural formulas for all languages. $plural_formulas = \Drupal::service('locale.plural.formula')->getFormula($langcode); // If there is a plural formula for the language, evaluate it for the given // $count and statically cache the result for the combination of language // and count, since the result will always be identical. 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; $plural_indexes[$langcode][$count] = isset($plural_formulas[$index]) ? $plural_formulas[$index] : $plural_formulas['default']; } // In case there is no plural formula for English (no imported translation // for English), use a default formula. elseif ($langcode == 'en') { $plural_indexes[$langcode][$count] = (int) ($count != 1); } // Otherwise, return -1 (unknown). else { $plural_indexes[$langcode][$count] = -1; } } return $plural_indexes[$langcode][$count]; }
Please login to continue.