Source
File: wp-includes/formatting.php
function wp_sprintf_l( $pattern, $args ) {
// Not a match.
if ( '%l' !== substr( $pattern, 0, 2 ) ) {
return $pattern;
}
// Nothing to work with.
if ( empty( $args ) ) {
return '';
}
/**
* Filters the translated delimiters used by wp_sprintf_l().
* Placeholders (%s) are included to assist translators and then
* removed before the array of strings reaches the filter.
*
* Please note: Ampersands and entities should be avoided here.
*
* @since 2.5.0
*
* @param array $delimiters An array of translated delimiters.
*/
$l = apply_filters(
'wp_sprintf_l',
array(
/* translators: Used to join items in a list with more than 2 items. */
'between' => sprintf( __( '%1$s, %2$s' ), '', '' ),
/* translators: Used to join last two items in a list with more than 2 times. */
'between_last_two' => sprintf( __( '%1$s, and %2$s' ), '', '' ),
/* translators: Used to join items in a list with only 2 items. */
'between_only_two' => sprintf( __( '%1$s and %2$s' ), '', '' ),
)
);
$args = (array) $args;
$result = array_shift( $args );
if ( count( $args ) == 1 ) {
$result .= $l['between_only_two'] . array_shift( $args );
}
// Loop when more than two args.
$i = count( $args );
while ( $i ) {
$arg = array_shift( $args );
$i--;
if ( 0 == $i ) {
$result .= $l['between_last_two'] . $arg;
} else {
$result .= $l['between'] . $arg;
}
}
return $result . substr( $pattern, 2 );
}