Browse Source

Merge pull request #30822 from nextcloud/bugfix/29287/remove-create-function-calls

Remove createPluralFunction which is replaced by Symfony\Translations…
Joas Schilling 2 years ago
parent
commit
fe6ceba03a
2 changed files with 0 additions and 74 deletions
  1. 0 65
      lib/private/L10N/Factory.php
  2. 0 9
      lib/public/L10N/IFactory.php

+ 0 - 65
lib/private/L10N/Factory.php

@@ -595,71 +595,6 @@ class Factory implements IFactory {
 		return $this->serverRoot . '/core/l10n/';
 	}
 
-
-	/**
-	 * Creates a function from the plural string
-	 *
-	 * Parts of the code is copied from Habari:
-	 * https://github.com/habari/system/blob/master/classes/locale.php
-	 * @param string $string
-	 * @return string
-	 */
-	public function createPluralFunction($string) {
-		if (isset($this->pluralFunctions[$string])) {
-			return $this->pluralFunctions[$string];
-		}
-
-		if (preg_match('/^\s*nplurals\s*=\s*(\d+)\s*;\s*plural=(.*)$/u', $string, $matches)) {
-			// sanitize
-			$nplurals = preg_replace('/[^0-9]/', '', $matches[1]);
-			$plural = preg_replace('#[^n0-9:\(\)\?\|\&=!<>+*/\%-]#', '', $matches[2]);
-
-			$body = str_replace(
-				['plural', 'n', '$n$plurals',],
-				['$plural', '$n', '$nplurals',],
-				'nplurals=' . $nplurals . '; plural=' . $plural
-			);
-
-			// add parents
-			// important since PHP's ternary evaluates from left to right
-			$body .= ';';
-			$res = '';
-			$p = 0;
-			$length = strlen($body);
-			for ($i = 0; $i < $length; $i++) {
-				$ch = $body[$i];
-				switch ($ch) {
-					case '?':
-						$res .= ' ? (';
-						$p++;
-						break;
-					case ':':
-						$res .= ') : (';
-						break;
-					case ';':
-						$res .= str_repeat(')', $p) . ';';
-						$p = 0;
-						break;
-					default:
-						$res .= $ch;
-				}
-			}
-
-			$body = $res . 'return ($plural>=$nplurals?$nplurals-1:$plural);';
-			$function = create_function('$n', $body);
-			$this->pluralFunctions[$string] = $function;
-			return $function;
-		} else {
-			// default: one plural form for all cases but n==1 (english)
-			$function = create_function(
-				'$n',
-				'$nplurals=2;$plural=($n==1?0:1);return ($plural>=$nplurals?$nplurals-1:$plural);'
-			);
-			$this->pluralFunctions[$string] = $function;
-			return $function;
-		}
-	}
-
 	/**
 	 * @inheritDoc
 	 */

+ 0 - 9
lib/public/L10N/IFactory.php

@@ -127,15 +127,6 @@ interface IFactory {
 	 */
 	public function localeExists($locale);
 
-	/**
-	 * Creates a function from the plural string
-	 *
-	 * @param string $string
-	 * @return string Unique function name
-	 * @since 14.0.0
-	 */
-	public function createPluralFunction($string);
-
 	/**
 	 * iterate through language settings (if provided) in this order:
 	 * 1. returns the forced language or: