locale = $locale; } /** @inheritDoc */ public function __toString() { return $this->locale; } /** * Create a language, asserting that the language code is valid. * * @param string $locale Language code * * @return Locale * * @throws InvalidLocaleException */ public static function parse($locale) { // TODO(evan): Better sanitizing of locales using \Locale perhaps if (!preg_match('~^[a-z0-9_]{2,20}$~', $locale)) { throw new InvalidLocaleException("Unrecognized locale: $locale"); } return new Locale($locale); } }