Example #1
0
 /**
  * Set locale of input data
  *
  * @param string $locale Name of locale, the same format of setlocale php function
  *
  * @return Localize Current instance of that class, for chaining methods
  */
 public static function setLocale($locale)
 {
     $locales = array($locale . '.utf-8', $locale . '.UTF-8', $locale);
     $os = strtolower(php_uname('s'));
     if (strpos($os, 'windows') !== false) {
         $locales = array(Formats::$windowsLocaleMap[$locale]);
     }
     if (!setlocale(LC_ALL, $locales)) {
         throw new LocaleException("Locale {$locale} não disponível no seu sistema.");
     }
     if (!isset(Formats::$input[$locale])) {
         throw new LocaleException("Localização '{$locale}' não possuí formatação definida. Tente adicionar o formato antes de usa-lo.");
     }
     self::$currentLocale = $locale;
     return new static();
 }
Example #2
0
 /**
  * Wrapper to Unlocalize::decimal
  *
  * Convert a localized decimal/float to USA numeric
  * format
  *
  * @param mixed $value A integer, float, double or numeric string input
  *
  * @return string $value
  */
 private function __decimal(&$value)
 {
     $value = Unlocalize::setLocale($this->systemLang)->decimal($value);
     return true;
 }
Example #3
0
 public function testUsDecimals()
 {
     Unlocalize::setLocale('en_US');
     $this->assertSame(null, Unlocalize::decimal(null));
     $this->assertSame('', Unlocalize::decimal(''));
     $this->assertSame('0', Unlocalize::decimal('0'));
     $this->assertSame('1', Unlocalize::decimal('1'));
     $this->assertSame('23.32', Unlocalize::decimal(23.32));
     $this->assertSame('25.32', Unlocalize::decimal('25.32'));
     $this->assertSame('0.5', Unlocalize::decimal('0.5'));
     $this->assertSame('1300.52', Unlocalize::decimal('1,300.52'));
     $this->assertSame('3965300.52', Unlocalize::decimal('3,965,300.52'));
     // Invalid decimal
     $this->assertEqual('3.abc', Unlocalize::decimal('3.abc'));
 }
Example #4
0
 public function testUsDecimals()
 {
     Unlocalize::setLocale('en_US');
     $this->assertEqual(Unlocalize::decimal(null), null);
     $this->assertEqual(Unlocalize::decimal(''), '');
     $this->assertEqual(Unlocalize::decimal(23.32), '23.32');
     $this->assertEqual(Unlocalize::decimal('25.32'), '25.32');
     $this->assertEqual(Unlocalize::decimal('0.5'), '0.5');
     $this->assertEqual(Unlocalize::decimal('1,300.52'), '1300.52');
     $this->assertEqual(Unlocalize::decimal('3,965,300.52'), '3965300.52');
     // Invalid decimal
     $this->assertEqual(Unlocalize::decimal('3.abc'), '3.abc');
 }