public function choose($number, array $variants, $locale = null) {
		if ($locale === null) {
			$locale = $this->getLocale();
		} else {
			$locale = $this->normalizeLocale($locale);
		}
		
		if (! isset(self::$rulesMap[$locale])) {
			$position = 0;
		} else {
			$rule     = self::$rulesMap[$locale];
			$position = $this->$rule((int) $number);
		}
		
		if (! isset($variants[$position])) {
			throw new InvalidOptions('There is no variant by position: "' . $position . '"');
		}
		
		return $variants[$position];
	}
public function choose($number, array $variants, $locale = null) {
		if ($locale === null) {
			$locale = $this->getLocale();
		} else {
			$locale = $this->normalizeLocale($locale);
		}
		
		if (! isset(self::$rulesMap[$locale])) {
			$position = 0;
		} else {
			$rule     = self::$rulesMap[$locale];
			$position = $this->$rule((int) $number);
		}
		
		if (! isset($variants[$position])) {
			throw new InvalidOptions('There is no variant by position: "' . $position . '"');
		}
		
		return $variants[$position];
	}
public function choose ( $ number , array $ variants , $ locale = null ) { if ( $ locale === null ) { $ locale = $ this -> getLocale ( ) ; } else { $ locale = $ this -> normalizeLocale ( $ locale ) ; } if ( ! isset ( self :: $ rulesMap [ $ locale ] ) ) { $ position = 0 ; } else { $ rule = self :: $ rulesMap [ $ locale ] ; $ position = $ this -> $ rule ( ( int ) $ number ) ; } if ( ! isset ( $ variants [ $ position ] ) ) { throw new InvalidOptions ( 'There is no variant by position: "' . $ position . '"' ) ; } return $ variants [ $ position ] ; }
Choose the plural variant

@param  int   $number
@param  array
@return string
Choose the plural variant