selector = $selector ?: new MessageSelector(); } public function choose($message, $number, $locale) { if (\preg_match_all('~\{([a-zA-Z_\-\.]+), plural, .*\}~', $message, $matches) === false) { return $this->selector->choose($message, $number, $locale); } $variable = \str_replace('.', '_', $matches[1][0]); $message = \strtr($message, [$matches[1][0] => $variable]); return (new MessageFormatter($locale, $message))->format([$variable => $number]); } }