--- a/web/lib/Zend/Locale/Data.php Thu May 07 15:10:09 2015 +0200
+++ b/web/lib/Zend/Locale/Data.php Thu May 07 15:16:02 2015 +0200
@@ -15,9 +15,9 @@
* @category Zend
* @package Zend_Locale
* @subpackage Data
- * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
- * @version $Id: Data.php 24766 2012-05-06 02:51:42Z adamlundrigan $
+ * @version $Id$
*/
/**
@@ -25,13 +25,16 @@
*/
require_once 'Zend/Locale.php';
+/** @see Zend_Xml_Security */
+require_once 'Zend/Xml/Security.php';
+
/**
* Locale data reader, handles the CLDR
*
* @category Zend
* @package Zend_Locale
* @subpackage Data
- * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
+ * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
class Zend_Locale_Data
@@ -39,8 +42,7 @@
/**
* Locale files
*
- * @var ressource
- * @access private
+ * @var array
*/
private static $_ldml = array();
@@ -48,7 +50,6 @@
* List of values which are collected
*
* @var array
- * @access private
*/
private static $_list = array();
@@ -56,7 +57,6 @@
* Internal cache for ldml values
*
* @var Zend_Cache_Core
- * @access private
*/
private static $_cache = null;
@@ -70,8 +70,7 @@
/**
* Internal option, cache disabled
*
- * @var boolean
- * @access private
+ * @var boolean
*/
private static $_cacheDisabled = false;
@@ -144,8 +143,8 @@
* @param string $attribute
* @param string $value
* @param array $temp
+ * @return bool
* @throws Zend_Locale_Exception
- * @access private
*/
private static function _findRoute($locale, $path, $attribute, $value, &$temp)
{
@@ -158,7 +157,7 @@
throw new Zend_Locale_Exception("Missing locale file '$filename' for '$locale' locale.");
}
- self::$_ldml[(string) $locale] = simplexml_load_file($filename);
+ self::$_ldml[(string) $locale] = Zend_Xml_Security::scanFile($filename);
}
// search for 'alias' tag in the search path for redirection
@@ -220,11 +219,13 @@
/**
* Read the right LDML file
*
- * @param string $locale
- * @param string $path
- * @param string $attribute
- * @param string $value
- * @access private
+ * @param string $locale
+ * @param string $path
+ * @param string|bool $attribute
+ * @param string|bool $value
+ * @param array $temp
+ * @return array
+ * @throws Zend_Locale_Exception
*/
private static function _getFile($locale, $path, $attribute = false, $value = false, $temp = array())
{
@@ -275,8 +276,9 @@
/**
* Internal function for checking the locale
*
- * @param string|Zend_Locale $locale Locale to check
+ * @param string|Zend_Locale $locale Locale to check
* @return string
+ * @throws Zend_Locale_Exception
*/
private static function _checkLocale($locale)
{
@@ -289,17 +291,21 @@
throw new Zend_Locale_Exception("Locale (" . (string) $locale . ") is a unknown locale");
}
+ if (Zend_Locale::isAlias($locale)) {
+ // Return a valid CLDR locale so that the XML file can be loaded.
+ return Zend_Locale::getAlias($locale);
+ }
return (string) $locale;
}
/**
* Read the LDML file, get a array of multipath defined value
*
- * @param string $locale
- * @param string $path
- * @param string $value
+ * @param string $locale
+ * @param string $path
+ * @param bool|string $value
* @return array
- * @access public
+ * @throws Zend_Locale_Exception
*/
public static function getList($locale, $path, $value = false)
{
@@ -320,7 +326,7 @@
}
$val = urlencode($val);
- $id = strtr('Zend_LocaleL_' . $locale . '_' . $path . '_' . $val, array('-' => '_', '%' => '_', '+' => '_'));
+ $id = self::_filterCacheId('Zend_LocaleL_' . $locale . '_' . $path . '_' . $val);
if (!self::$_cacheDisabled && ($result = self::$_cache->load($id))) {
return unserialize($result);
}
@@ -339,13 +345,13 @@
$temp = self::_getFile($locale, '/ldml/localeDisplayNames/territories/territory', 'type');
if ($value === 1) {
foreach($temp as $key => $value) {
- if ((is_numeric($key) === false) and ($key != 'QO') and ($key != 'QU')) {
+ if ((is_numeric($key) === false) and ($key != 'QO') and ($key != 'EU')) {
unset($temp[$key]);
}
}
} else if ($value === 2) {
foreach($temp as $key => $value) {
- if (is_numeric($key) or ($key == 'QO') or ($key == 'QU')) {
+ if (is_numeric($key) or ($key == 'QO') or ($key == 'EU')) {
unset($temp[$key]);
}
}
@@ -375,28 +381,50 @@
break;
case 'layout':
- $temp = self::_getFile($locale, '/ldml/layout/orientation', 'lines', 'lines');
- $temp += self::_getFile($locale, '/ldml/layout/orientation', 'characters', 'characters');
- $temp += self::_getFile($locale, '/ldml/layout/inList', '', 'inList');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'currency\']', '', 'currency');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'dayWidth\']', '', 'dayWidth');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'fields\']', '', 'fields');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'keys\']', '', 'keys');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'languages\']', '', 'languages');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'long\']', '', 'long');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'measurementSystemNames\']', '', 'measurementSystemNames');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'monthWidth\']', '', 'monthWidth');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'quarterWidth\']', '', 'quarterWidth');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'scripts\']', '', 'scripts');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'territories\']', '', 'territories');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'types\']', '', 'types');
- $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'variants\']', '', 'variants');
+ $temp = self::_getFile($locale, '/ldml/layout/orientation/characterOrder', '', 'characterOrder');
+ $temp += self::_getFile($locale, '/ldml/layout/orientation/lineOrder', '', 'lineOrder');
+ break;
+
+ case 'contexttransform':
+ if (empty($value)) {
+ $value = 'uiListOrMenu';
+ }
+ $temp = self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'languages\']/contextTransform[@type=\''.$value.'\']', '', 'languages');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'day-format-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'day-format-except-narrow');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'day-standalone-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'day-standalone-except-narrow');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'day-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'day-narrow');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'month-format-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'month-format-except-narrow');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'month-standalone-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'month-standalone-except-narrow');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'month-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'month-narrow');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'script\']/contextTransform[@type=\''.$value.'\']', '', 'script');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'territory\']/contextTransform[@type=\''.$value.'\']', '', 'territory');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'variant\']/contextTransform[@type=\''.$value.'\']', '', 'variant');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'key\']/contextTransform[@type=\''.$value.'\']', '', 'key');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'type\']/contextTransform[@type=\''.$value.'\']', '', 'type');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'era-name\']/contextTransform[@type=\''.$value.'\']', '', 'era-name');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'era-abbr\']/contextTransform[@type=\''.$value.'\']', '', 'era-abbr');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'era-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'era-narrow');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-format-wide\']/contextTransform[@type=\''.$value.'\']', '', 'quater-format-wide');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-standalone-wide\']/contextTransform[@type=\''.$value.'\']', '', 'quater-standalone-wide');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-abbreviated\']/contextTransform[@type=\''.$value.'\']', '', 'quater-abbreviated');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'quater-narrow');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'calendar-field\']/contextTransform[@type=\''.$value.'\']', '', 'calendar-field');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'symbol\']/contextTransform[@type=\''.$value.'\']', '', 'symbol');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'tense\']/contextTransform[@type=\''.$value.'\']', '', 'tense');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'zone-exemplarCity\']/contextTransform[@type=\''.$value.'\']', '', 'zone-exemplarCity');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'zone-long\']/contextTransform[@type=\''.$value.'\']', '', 'zone-long');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'zone-short\']/contextTransform[@type=\''.$value.'\']', '', 'zone-short');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'metazone-long\']/contextTransform[@type=\''.$value.'\']', '', 'metazone-long');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'metazone-short\']/contextTransform[@type=\''.$value.'\']', '', 'metazone-short');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'displayName-count\']/contextTransform[@type=\''.$value.'\']', '', 'displayName-count');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'displayName\']/contextTransform[@type=\''.$value.'\']', '', 'displayName');
+ $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'unit-pattern\']/contextTransform[@type=\''.$value.'\']', '', 'unit-pattern');
break;
case 'characters':
$temp = self::_getFile($locale, '/ldml/characters/exemplarCharacters', '', 'characters');
$temp += self::_getFile($locale, '/ldml/characters/exemplarCharacters[@type=\'auxiliary\']', '', 'auxiliary');
- $temp += self::_getFile($locale, '/ldml/characters/exemplarCharacters[@type=\'currencySymbol\']', '', 'currencySymbol');
+ // $temp += self::_getFile($locale, '/ldml/characters/exemplarCharacters[@type=\'currencySymbol\']', '', 'currencySymbol');
break;
case 'delimiters':
@@ -417,8 +445,8 @@
if (empty($value)) {
$value = "gregorian";
}
- $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/default', 'choice', 'context');
- $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/default', 'choice', 'default');
+ $temp['context'] = "format";
+ $temp['default'] = "wide";
$temp['format']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'abbreviated\']/month', 'type');
$temp['format']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'narrow\']/month', 'type');
$temp['format']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'wide\']/month', 'type');
@@ -438,8 +466,8 @@
if (empty($value)) {
$value = "gregorian";
}
- $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/default', 'choice', 'context');
- $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/default', 'choice', 'default');
+ $temp['context'] = "format";
+ $temp['default'] = "wide";
$temp['format']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'abbreviated\']/day', 'type');
$temp['format']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'narrow\']/day', 'type');
$temp['format']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'wide\']/day', 'type');
@@ -572,17 +600,19 @@
if (empty($value)) {
$value = "gregorian";
}
- $temp2 = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field', 'type');
+ $temp2 = self::_getFile($locale, '/ldml/dates/fields/field', 'type');
+ // $temp2 = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field', 'type');
foreach ($temp2 as $key => $keyvalue) {
- $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field[@type=\'' . $key . '\']/displayName', '', $key);
+ $temp += self::_getFile($locale, '/ldml/dates/fields/field[@type=\'' . $key . '\']/displayName', '', $key);
+ // $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field[@type=\'' . $key . '\']/displayName', '', $key);
}
break;
case 'relative':
if (empty($value)) {
- $value = "gregorian";
+ $value = "day";
}
- $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field/relative', 'type');
+ $temp = self::_getFile($locale, '/ldml/dates/fields/field[@type=\'' . $value . '\']/relative', 'type');
break;
case 'symbols':
@@ -758,30 +788,30 @@
break;
case 'timezonetowindows':
- $_temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone', 'other');
+ $_temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone', 'other');
foreach ($_temp as $key => $found) {
- $temp += self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone[@other=\'' . $key . '\']', 'type', $key);
+ $temp += self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@other=\'' . $key . '\']', 'type', $key);
}
break;
case 'windowstotimezone':
- $_temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone', 'type');
+ $_temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone', 'type');
foreach ($_temp as $key => $found) {
- $temp += self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone[@type=\'' .$key . '\']', 'other', $key);
+ $temp += self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@type=\'' .$key . '\']', 'other', $key);
}
break;
case 'territorytotimezone':
- $_temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem', 'type');
+ $_temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone', 'type');
foreach ($_temp as $key => $found) {
- $temp += self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem[@type=\'' . $key . '\']', 'territory', $key);
+ $temp += self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@type=\'' . $key . '\']', 'territory', $key);
}
break;
case 'timezonetoterritory':
- $_temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem', 'territory');
+ $_temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone', 'territory');
foreach ($_temp as $key => $found) {
- $temp += self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem[@territory=\'' . $key . '\']', 'type', $key);
+ $temp += self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@territory=\'' . $key . '\']', 'type', $key);
}
break;
@@ -894,9 +924,9 @@
break;
case 'unit':
- $_temp = self::_getFile($locale, '/ldml/units/unit', 'type');
+ $_temp = self::_getFile($locale, '/ldml/units/unitLength/unit', 'type');
foreach($_temp as $key => $keyvalue) {
- $_temp2 = self::_getFile($locale, '/ldml/units/unit[@type=\'' . $key . '\']/unitPattern', 'count');
+ $_temp2 = self::_getFile($locale, '/ldml/units/unitLength/unit[@type=\'' . $key . '\']/unitPattern', 'count');
$temp[$key] = $_temp2;
}
break;
@@ -921,11 +951,11 @@
/**
* Read the LDML file, get a single path defined value
*
- * @param string $locale
- * @param string $path
- * @param string $value
+ * @param string $locale
+ * @param string $path
+ * @param bool|string $value
* @return string
- * @access public
+ * @throws Zend_Locale_Exception
*/
public static function getContent($locale, $path, $value = false)
{
@@ -945,7 +975,7 @@
$val = implode('_' , $value);
}
$val = urlencode($val);
- $id = strtr('Zend_LocaleC_' . $locale . '_' . $path . '_' . $val, array('-' => '_', '%' => '_', '+' => '_'));
+ $id = self::_filterCacheId('Zend_LocaleC_' . $locale . '_' . $path . '_' . $val);
if (!self::$_cacheDisabled && ($result = self::$_cache->load($id))) {
return unserialize($result);
}
@@ -973,21 +1003,35 @@
break;
case 'defaultcalendar':
- $temp = self::_getFile($locale, '/ldml/dates/calendars/default', 'choice', 'default');
+ $givenLocale = new Zend_Locale($locale);
+ $territory = $givenLocale->getRegion();
+ unset($givenLocale);
+ $temp = self::_getFile('supplementalData', '/supplementalData/calendarPreferenceData/calendarPreference[contains(@territories,\'' . $territory . '\')]', 'ordering', 'ordering');
+ if (isset($temp['ordering'])) {
+ list($temp) = explode(' ', $temp['ordering']);
+ } else {
+ $temp = 'gregorian';
+ }
break;
case 'monthcontext':
+ /* default context is always 'format'
if (empty ($value)) {
$value = "gregorian";
}
$temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/default', 'choice', 'context');
+ */
+ $temp = 'format';
break;
case 'defaultmonth':
+ /* default width is always 'wide'
if (empty ($value)) {
$value = "gregorian";
}
$temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/default', 'choice', 'default');
+ */
+ $temp = 'wide';
break;
case 'month':
@@ -999,17 +1043,23 @@
break;
case 'daycontext':
+ /* default context is always 'format'
if (empty($value)) {
$value = "gregorian";
}
$temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/default', 'choice', 'context');
+ */
+ $temp = 'format';
break;
case 'defaultday':
+ /* default width is always 'wide'
if (empty($value)) {
$value = "gregorian";
}
$temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/default', 'choice', 'default');
+ */
+ $temp = 'wide';
break;
case 'day':
@@ -1030,16 +1080,24 @@
case 'am':
if (empty($value)) {
- $value = "gregorian";
+ $value = array("gregorian", "format", "wide");
}
- $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/am', '', 'am');
+ if (!is_array($value)) {
+ $temp = $value;
+ $value = array($temp, "format", "wide");
+ }
+ $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/dayPeriods/dayPeriodContext[@type=\'' . $value[1] . '\']/dayPeriodWidth[@type=\'' . $value[2] . '\']/dayPeriod[@type=\'am\']', '', 'dayPeriod');
break;
case 'pm':
if (empty($value)) {
- $value = "gregorian";
+ $value = array("gregorian", "format", "wide");
}
- $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/pm', '', 'pm');
+ if (!is_array($value)) {
+ $temp = $value;
+ $value = array($temp, "format", "wide");
+ }
+ $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/dayPeriods/dayPeriodContext[@type=\'' . $value[1] . '\']/dayPeriodWidth[@type=\'' . $value[2] . '\']/dayPeriod[@type=\'pm\']', '', 'dayPeriod');
break;
case 'era':
@@ -1051,10 +1109,13 @@
break;
case 'defaultdate':
+ /* default choice is deprecated in CDLR - should be always medium here
if (empty($value)) {
$value = "gregorian";
}
$temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateFormats/default', 'choice', 'default');
+ */
+ $temp = 'medium';
break;
case 'date':
@@ -1069,10 +1130,13 @@
break;
case 'defaulttime':
+ /* default choice is deprecated in CDLR - should be always medium here
if (empty($value)) {
$value = "gregorian";
}
$temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/timeFormats/default', 'choice', 'default');
+ */
+ $temp = 'medium';
break;
case 'time':
@@ -1128,7 +1192,7 @@
$temp = $value;
$value = array("gregorian", $temp);
}
- $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/fields/field[@type=\'' . $value[1] . '\']/displayName', '', $value[1]);
+ $temp = self::_getFile($locale, '/ldml/dates/fields/field[@type=\'' . $value[1] . '\']/displayName', '', $value[1]);
break;
case 'relative':
@@ -1136,7 +1200,8 @@
$temp = $value;
$value = array("gregorian", $temp);
}
- $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/fields/field/relative[@type=\'' . $value[1] . '\']', '', $value[1]);
+ $temp = self::_getFile($locale, '/ldml/dates/fields/field[@type=\'day\']/relative[@type=\'' . $value[1] . '\']', '', $value[1]);
+ // $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/fields/field/relative[@type=\'' . $value[1] . '\']', '', $value[1]);
break;
case 'defaultnumberingsystem':
@@ -1301,19 +1366,19 @@
break;
case 'timezonetowindows':
- $temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone[@other=\''.$value.'\']', 'type', $value);
+ $temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@other=\''.$value.'\']', 'type', $value);
break;
case 'windowstotimezone':
- $temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone[@type=\''.$value.'\']', 'other', $value);
+ $temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@type=\''.$value.'\']', 'other', $value);
break;
case 'territorytotimezone':
- $temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem[@type=\'' . $value . '\']', 'territory', $value);
+ $temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@type=\'' . $value . '\']', 'territory', $value);
break;
case 'timezonetoterritory':
- $temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem[@territory=\'' . $value . '\']', 'type', $value);
+ $temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@territory=\'' . $value . '\']', 'type', $value);
break;
case 'citytotimezone':
@@ -1406,7 +1471,7 @@
break;
case 'unit':
- $temp = self::_getFile($locale, '/ldml/units/unit[@type=\'' . $value[0] . '\']/unitPattern[@count=\'' . $value[1] . '\']', '');
+ $temp = self::_getFile($locale, '/ldml/units/unitLength/unit[@type=\'' . $value[0] . '\']/unitPattern[@count=\'' . $value[1] . '\']', '');
break;
default :
@@ -1491,7 +1556,7 @@
/**
* Disables the cache
*
- * @param unknown_type $flag
+ * @param bool $flag
*/
public static function disableCache($flag)
{
@@ -1501,7 +1566,7 @@
/**
* Internal method to check if the given cache supports tags
*
- * @param Zend_Cache $cache
+ * @return bool
*/
private static function _getTagSupportForCache()
{
@@ -1515,4 +1580,23 @@
return self::$_cacheTags;
}
+
+ /**
+ * Filter an ID to only allow valid variable characters
+ *
+ * @param string $value
+ * @return string
+ */
+ protected static function _filterCacheId($value)
+ {
+ return strtr(
+ $value,
+ array(
+ '-' => '_',
+ '%' => '_',
+ '+' => '_',
+ '.' => '_',
+ )
+ );
+ }
}