Gettext_Translations::parenthesize_plural_exression

Advertisement

Summery Summery

Adds parentheses to the inner parts of ternary operators in plural expressions, because PHP evaluates ternary oerators from left to right

Syntax Syntax

Gettext_Translations::parenthesize_plural_exression( string $expression )

Parameters Parameters

$expression

(string) (Required) the expression without parentheses

Return Return

(string) the expression with parentheses added

Source Source

File: wp-includes/pomo/translations.php

		function parenthesize_plural_exression( $expression ) {
			$expression .= ';';
			$res         = '';
			$depth       = 0;
			for ( $i = 0; $i < strlen( $expression ); ++$i ) {
				$char = $expression[ $i ];
				switch ( $char ) {
					case '?':
						$res .= ' ? (';
						$depth++;
						break;
					case ':':
						$res .= ') : (';
						break;
					case ';':
						$res  .= str_repeat( ')', $depth ) . ';';
						$depth = 0;
						break;
					default:
						$res .= $char;
				}
			}
			return rtrim( $res, ';' );
		}

Advertisement

Advertisement

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.