X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=languages%2FLanguage.php;h=7f04a6874e402dc8c9ba7f6f5d986a00b80b0a60;hb=eadc306573803f444fd692b701823f9939fdd9e7;hp=97920950e00c076a61f8c693d5f47c0914726fc8;hpb=659e164e938788a154fba8f3efc42d48b07e02ce;p=lhc%2Fweb%2Fwiklou.git diff --git a/languages/Language.php b/languages/Language.php index 97920950e0..7f04a6874e 100644 --- a/languages/Language.php +++ b/languages/Language.php @@ -3413,32 +3413,26 @@ class Language { * Take a list of strings and build a locale-friendly comma-separated * list, using the local comma-separator message. * The last two strings are chained with an "and". - * NOTE: This function will only work with standard numeric array keys (0, 1, 2…) * - * @param string[] $l + * @param string[] $list * @return string */ - function listToText( array $l ) { - $m = count( $l ) - 1; - if ( $m < 0 ) { + public function listToText( array $list ) { + $itemCount = count( $list ); + if ( $itemCount < 1 ) { return ''; } - if ( $m > 0 ) { + $text = array_pop( $list ); + if ( $itemCount > 1 ) { $and = $this->msg( 'and' )->escaped(); $space = $this->msg( 'word-separator' )->escaped(); - if ( $m > 1 ) { + $comma = ''; + if ( $itemCount > 2 ) { $comma = $this->msg( 'comma-separator' )->escaped(); } + $text = implode( $comma, $list ) . $and . $space . $text; } - $s = $l[$m]; - for ( $i = $m - 1; $i >= 0; $i-- ) { - if ( $i == $m - 1 ) { - $s = $l[$i] . $and . $space . $s; - } else { - $s = $l[$i] . $comma . $s; - } - } - return $s; + return $text; } /**