| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 
							- <?php
 
- namespace Elgg\I18n;
 
- /**
 
-  * WARNING: API IN FLUX. DO NOT USE DIRECTLY.
 
-  * 
 
-  * Language class to ensure only valid languages are used.
 
-  * 
 
-  * @since 1.11
 
-  * 
 
-  * @access private
 
-  */
 
- final class Locale {
 
- 	
 
- 	/** @var string */
 
- 	private $locale;
 
- 	
 
- 	/**
 
- 	 * Use Locale::parse to construct
 
- 	 * 
 
- 	 * @param string $locale A string representation of the locale
 
- 	 */
 
- 	private function __construct($locale) {
 
- 		$this->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);
 
- 	}
 
- }
 
 
  |