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
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 | 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.