Exemple #1
0
 /**
  * Returns a localized information string, supported are several types of informations.
  * For detailed information about the types look into the documentation
  *
  * @param  string             $value  Name to get detailed information about
  * @param  string             $path   (Optional) Type of information to return
  * @param  string|\Zend\Locale\Locale $locale (Optional) Locale|Language for which this informations should be returned
  * @return string|false The wished information in the given language
  */
 public static function getTranslation($value = null, $path = null, $locale = null)
 {
     $locale = self::findLocale($locale);
     $result = Data\Data::getContent($locale, $path, $value);
     if (empty($result) === true) {
         return false;
     }
     return $result;
 }
Exemple #2
0
 /**
  * Returns the ISO Token for all localized constants
  *
  * @param string $token Token to normalize
  * @param string $locale Locale to search
  * @return string
  */
 protected static function _getLocalizedToken($token, $locale)
 {
     switch ($token) {
         case self::ISO_8601:
             return "yyyy-MM-ddThh:mm:ss";
             break;
         case self::RFC_2822:
             return "EEE, dd MMM yyyy HH:mm:ss";
             break;
         case self::DATES:
             return Data::getContent($locale, 'date');
             break;
         case self::DATE_FULL:
             return Data::getContent($locale, 'date', array('gregorian', 'full'));
             break;
         case self::DATE_LONG:
             return Data::getContent($locale, 'date', array('gregorian', 'long'));
             break;
         case self::DATE_MEDIUM:
             return Data::getContent($locale, 'date', array('gregorian', 'medium'));
             break;
         case self::DATE_SHORT:
             return Data::getContent($locale, 'date', array('gregorian', 'short'));
             break;
         case self::TIMES:
             return Data::getContent($locale, 'date');
             break;
         case self::TIME_FULL:
             return Data::getContent($locale, 'time', array('gregorian', 'full'));
             break;
         case self::TIME_LONG:
             return Data::getContent($locale, 'date', array('gregorian', 'long'));
             break;
         case self::TIME_MEDIUM:
             return Data::getContent($locale, 'date', array('gregorian', 'medium'));
             break;
         case self::TIME_SHORT:
             return Data::getContent($locale, 'date', array('gregorian', 'short'));
             break;
         case self::DATETIME:
             return Data::getContent($locale, 'datetime');
             break;
         case self::DATETIME_FULL:
             return Data::getContent($locale, 'datetime', array('gregorian', 'full'));
             break;
         case self::DATETIME_LONG:
             return Data::getContent($locale, 'datetime', array('gregorian', 'long'));
             break;
         case self::DATETIME_MEDIUM:
             return Data::getContent($locale, 'datetime', array('gregorian', 'medium'));
             break;
         case self::DATETIME_SHORT:
             return Data::getContent($locale, 'datetime', array('gregorian', 'short'));
             break;
         case self::ATOM:
         case self::RFC_3339:
         case self::W3C:
             return "yyyy-MM-DD HH:mm:ss";
             break;
         case self::COOKIE:
         case self::RFC_850:
             return "EEEE, dd-MM-yyyy HH:mm:ss";
             break;
         case self::RFC_822:
         case self::RFC_1036:
         case self::RFC_1123:
         case self::RSS:
             return "EEE, dd MM yyyy HH:mm:ss";
             break;
     }
     return $token;
 }
Exemple #3
0
 /**
  * test for reading intervalformat from locale
  * expected array
  */
 public function testUnit()
 {
     $value = Data::getList('de_AT', 'unit');
     $result = array('day' => array('one' => '{0} Tag', 'other' => '{0} Tage'), 'hour' => array('one' => '{0} Stunde', 'other' => '{0} Stunden'), 'minute' => array('one' => '{0} Minute', 'other' => '{0} Minuten'), 'month' => array('one' => '{0} Monat', 'other' => '{0} Monate'), 'second' => array('one' => '{0} Sekunde', 'other' => '{0} Sekunden'), 'week' => array('one' => '{0} Woche', 'other' => '{0} Wochen'), 'year' => array('one' => '{0} Jahr', 'other' => '{0} Jahre'));
     $this->assertEquals($result, $value);
     $value = Data::getContent('de_AT', 'unit', array('day', 'one'));
     $this->assertEquals('{0} Tag', $value);
 }
Exemple #4
0
 /**
  * test setOption
  * expected boolean
  */
 public function testSetOption()
 {
     $this->assertEquals(8, count(Format::setOptions(array('format_type' => 'php'))));
     $this->assertTrue(is_array(Format::setOptions()));
     try {
         $this->assertTrue(Format::setOptions(array('format_type' => 'xxx')));
         $this->fail("exception expected");
     } catch (LocaleException $e) {
         // success
     }
     try {
         $this->assertTrue(Format::setOptions(array('myformat' => 'xxx')));
         $this->fail("exception expected");
     } catch (LocaleException $e) {
         // success
     }
     $format = Format::setOptions(array('locale' => 'de', 'number_format' => Format::STANDARD));
     $test = Data::getContent('de', 'decimalnumber');
     $this->assertEquals($test, $format['number_format']);
     try {
         $this->assertFalse(Format::setOptions(array('number_format' => array('x' => 'x'))));
         $this->fail("exception expected");
     } catch (LocaleException $e) {
         // success
     }
     $format = Format::setOptions(array('locale' => 'de', 'date_format' => Format::STANDARD));
     $test = Format::getDateFormat('de');
     $this->assertEquals($test, $format['date_format']);
     try {
         $this->assertFalse(Format::setOptions(array('date_format' => array('x' => 'x'))));
         $this->fail("exception expected");
     } catch (LocaleException $e) {
         // success
     }
     try {
         $this->assertFalse(is_array(Format::setOptions(array('fix_date' => 'no'))));
         $this->fail("exception expected");
     } catch (LocaleException $e) {
         // success
     }
     $format = Format::setOptions(array('locale' => Format::STANDARD));
     $locale = new Locale();
     $this->assertEquals($locale->toString(), $format['locale']);
     try {
         $this->assertFalse(is_array(Format::setOptions(array('locale' => 'nolocale'))));
         $this->fail("exception expected");
     } catch (LocaleException $e) {
         // success
     }
     try {
         $this->assertFalse(is_array(Format::setOptions(array('precision' => 50))));
         $this->fail("exception expected");
     } catch (LocaleException $e) {
         // success
     }
     // test interaction between class-wide default date format and using locale's default format
     try {
         $result = array('date_format' => 'MMM d, y', 'locale' => 'en_US', 'month' => '7', 'day' => '4', 'year' => '2007');
         Format::setOptions(array('format_type' => 'iso', 'date_format' => 'MMM d, y', 'locale' => 'en_US'));
         // test setUp
     } catch (LocaleException $e) {
         $this->fail("exception expected");
     }
     try {
         // uses global date_format with global locale
         $this->assertSame($result, Format::getDate('July 4, 2007'));
     } catch (LocaleException $e) {
         $this->fail("exception expected");
     }
     try {
         // uses global date_format with given locale
         $this->assertSame($result, Format::getDate('July 4, 2007', array('locale' => 'en_US')));
     } catch (LocaleException $e) {
         $this->fail("exception expected");
     }
     try {
         // sets a new global date format
         Format::setOptions(array('date_format' => 'M-d-y'));
     } catch (LocaleException $e) {
         $this->fail("exception expected");
     }
     try {
         // uses global date format with given locale
         // but this date format differs from the original set... (MMMM d, yyyy != M-d-y)
         $expected = Format::getDate('July 4, 2007', array('locale' => 'en_US'));
         $this->assertSame($expected['year'], $result['year']);
         $this->assertSame($expected['month'], $result['month']);
         $this->assertSame($expected['day'], $result['day']);
     } catch (LocaleException $e) {
         $this->fail("exception expected");
     }
     try {
         // the following should not be used... instead of null, Locale::ZFDEFAULT should be used
         // uses given local with standard format from this locale
         $this->assertSame($result, Format::getDate('July 4, 2007', array('locale' => 'en_US', 'date_format' => null)));
     } catch (LocaleException $e) {
         $this->fail("exception expected");
     }
     try {
         // uses given locale with standard format from this locale
         $this->assertSame($result, Format::getDate('July 4, 2007', array('locale' => 'en_US', 'date_format' => Format::STANDARD)));
     } catch (LocaleException $e) {
         $this->fail("exception expected");
     }
     try {
         // uses standard locale with standard format from this locale
         $expect = Format::getDate('July 4, 2007', array('locale' => Format::STANDARD));
         $testlocale = new Locale();
         $this->assertEquals($testlocale->toString(), $expect['locale']);
     } catch (LocaleException $e) {
         $this->fail("exception expected");
     }
     Format::setOptions(array('date_format' => null, 'locale' => null));
     // test tearDown
 }