Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Static Public Member Functions | Static Protected Member Functions
Zend_Locale_Data Class Reference

Static Public Member Functions

static getList ($locale, $path, $value=false)
 
static getContent ($locale, $path, $value=false)
 
static getCache ()
 
static setCache (Zend_Cache_Core $cache)
 
static hasCache ()
 
static removeCache ()
 
static clearCache ()
 
static disableCache ($flag)
 

Static Protected Member Functions

static _filterCacheId ($value)
 

Detailed Description

Definition at line 40 of file Data.php.

Member Function Documentation

◆ _filterCacheId()

static _filterCacheId (   $value)
staticprotected

Filter an ID to only allow valid variable characters

Parameters
string$value
Returns
string

Definition at line 1605 of file Data.php.

1606  {
1607  return strtr(
1608  $value,
1609  array(
1610  '-' => '_',
1611  '%' => '_',
1612  '+' => '_',
1613  '.' => '_',
1614  )
1615  );
1616  }
$value
Definition: gender.phtml:16

◆ clearCache()

static clearCache ( )
static

Clears all set cache data

Returns
void

Definition at line 1562 of file Data.php.

1563  {
1564  if (self::$_cacheTags) {
1565  self::$_cache->clean(Zend_Cache::CLEANING_MODE_MATCHING_TAG, array('Zend_Locale'));
1566  } else {
1567  self::$_cache->clean(Zend_Cache::CLEANING_MODE_ALL);
1568  }
1569  }
const CLEANING_MODE_ALL
Definition: Cache.php:72
const CLEANING_MODE_MATCHING_TAG
Definition: Cache.php:74

◆ disableCache()

static disableCache (   $flag)
static

Disables the cache

Parameters
bool$flag

Definition at line 1576 of file Data.php.

1577  {
1578  self::$_cacheDisabled = (boolean) $flag;
1579  }

◆ getCache()

static getCache ( )
static

Returns the set cache

Returns
Zend_Cache_Core The set cache

Definition at line 1517 of file Data.php.

1518  {
1519  return self::$_cache;
1520  }

◆ getContent()

static getContent (   $locale,
  $path,
  $value = false 
)
static

Read the LDML file, get a single path defined value

Parameters
string$locale
string$path
bool | string$value
Returns
string
Exceptions
Zend_Locale_Exception

Definition at line 968 of file Data.php.

969  {
970  $locale = self::_checkLocale($locale);
971 
972  if (!isset(self::$_cache) && !self::$_cacheDisabled) {
973  #require_once 'Zend/Cache.php';
974  self::$_cache = Zend_Cache::factory(
975  'Core',
976  'File',
977  array('automatic_serialization' => true),
978  array());
979  }
980 
981  $val = $value;
982  if (is_array($value)) {
983  $val = implode('_' , $value);
984  }
985  $val = urlencode($val);
986  $id = self::_filterCacheId('Zend_LocaleC_' . $locale . '_' . $path . '_' . $val);
987  if (!self::$_cacheDisabled && ($result = self::$_cache->load($id))) {
988  return unserialize($result);
989  }
990 
991  switch(strtolower($path)) {
992  case 'language':
993  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/languages/language[@type=\'' . $value . '\']', 'type');
994  break;
995 
996  case 'script':
997  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/scripts/script[@type=\'' . $value . '\']', 'type');
998  break;
999 
1000  case 'country':
1001  case 'territory':
1002  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/territories/territory[@type=\'' . $value . '\']', 'type');
1003  break;
1004 
1005  case 'variant':
1006  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/variants/variant[@type=\'' . $value . '\']', 'type');
1007  break;
1008 
1009  case 'key':
1010  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/keys/key[@type=\'' . $value . '\']', 'type');
1011  break;
1012 
1013  case 'defaultcalendar':
1014  $givenLocale = new Zend_Locale($locale);
1015  $territory = $givenLocale->getRegion();
1016  unset($givenLocale);
1017  $temp = self::_getFile('supplementalData', '/supplementalData/calendarPreferenceData/calendarPreference[contains(@territories,\'' . $territory . '\')]', 'ordering', 'ordering');
1018  if (isset($temp['ordering'])) {
1019  list($temp) = explode(' ', $temp['ordering']);
1020  } else {
1021  $temp = 'gregorian';
1022  }
1023  break;
1024 
1025  case 'monthcontext':
1026  /* default context is always 'format'
1027  if (empty ($value)) {
1028  $value = "gregorian";
1029  }
1030  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/default', 'choice', 'context');
1031  */
1032  $temp = 'format';
1033  break;
1034 
1035  case 'defaultmonth':
1036  /* default width is always 'wide'
1037  if (empty ($value)) {
1038  $value = "gregorian";
1039  }
1040  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/default', 'choice', 'default');
1041  */
1042  $temp = 'wide';
1043  break;
1044 
1045  case 'month':
1046  if (!is_array($value)) {
1047  $temp = $value;
1048  $value = array("gregorian", "format", "wide", $temp);
1049  }
1050  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/months/monthContext[@type=\'' . $value[1] . '\']/monthWidth[@type=\'' . $value[2] . '\']/month[@type=\'' . $value[3] . '\']', 'type');
1051  break;
1052 
1053  case 'daycontext':
1054  /* default context is always 'format'
1055  if (empty($value)) {
1056  $value = "gregorian";
1057  }
1058  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/default', 'choice', 'context');
1059  */
1060  $temp = 'format';
1061  break;
1062 
1063  case 'defaultday':
1064  /* default width is always 'wide'
1065  if (empty($value)) {
1066  $value = "gregorian";
1067  }
1068  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/default', 'choice', 'default');
1069  */
1070  $temp = 'wide';
1071  break;
1072 
1073  case 'day':
1074  if (!is_array($value)) {
1075  $temp = $value;
1076  $value = array("gregorian", "format", "wide", $temp);
1077  }
1078  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/days/dayContext[@type=\'' . $value[1] . '\']/dayWidth[@type=\'' . $value[2] . '\']/day[@type=\'' . $value[3] . '\']', 'type');
1079  break;
1080 
1081  case 'quarter':
1082  if (!is_array($value)) {
1083  $temp = $value;
1084  $value = array("gregorian", "format", "wide", $temp);
1085  }
1086  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/quarters/quarterContext[@type=\'' . $value[1] . '\']/quarterWidth[@type=\'' . $value[2] . '\']/quarter[@type=\'' . $value[3] . '\']', 'type');
1087  break;
1088 
1089  case 'am':
1090  if (empty($value)) {
1091  $value = array("gregorian", "format", "wide");
1092  }
1093  if (!is_array($value)) {
1094  $temp = $value;
1095  $value = array($temp, "format", "wide");
1096  }
1097  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/dayPeriods/dayPeriodContext[@type=\'' . $value[1] . '\']/dayPeriodWidth[@type=\'' . $value[2] . '\']/dayPeriod[@type=\'am\']', '', 'dayPeriod');
1098  break;
1099 
1100  case 'pm':
1101  if (empty($value)) {
1102  $value = array("gregorian", "format", "wide");
1103  }
1104  if (!is_array($value)) {
1105  $temp = $value;
1106  $value = array($temp, "format", "wide");
1107  }
1108  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/dayPeriods/dayPeriodContext[@type=\'' . $value[1] . '\']/dayPeriodWidth[@type=\'' . $value[2] . '\']/dayPeriod[@type=\'pm\']', '', 'dayPeriod');
1109  break;
1110 
1111  case 'era':
1112  if (!is_array($value)) {
1113  $temp = $value;
1114  $value = array("gregorian", "Abbr", $temp);
1115  }
1116  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/eras/era' . $value[1] . '/era[@type=\'' . $value[2] . '\']', 'type');
1117  break;
1118 
1119  case 'defaultdate':
1120  /* default choice is deprecated in CDLR - should be always medium here
1121  if (empty($value)) {
1122  $value = "gregorian";
1123  }
1124  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateFormats/default', 'choice', 'default');
1125  */
1126  $temp = 'medium';
1127  break;
1128 
1129  case 'date':
1130  if (empty($value)) {
1131  $value = array("gregorian", "medium");
1132  }
1133  if (!is_array($value)) {
1134  $temp = $value;
1135  $value = array("gregorian", $temp);
1136  }
1137  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/dateFormats/dateFormatLength[@type=\'' . $value[1] . '\']/dateFormat/pattern', '', 'pattern');
1138  break;
1139 
1140  case 'defaulttime':
1141  /* default choice is deprecated in CDLR - should be always medium here
1142  if (empty($value)) {
1143  $value = "gregorian";
1144  }
1145  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/timeFormats/default', 'choice', 'default');
1146  */
1147  $temp = 'medium';
1148  break;
1149 
1150  case 'time':
1151  if (empty($value)) {
1152  $value = array("gregorian", "medium");
1153  }
1154  if (!is_array($value)) {
1155  $temp = $value;
1156  $value = array("gregorian", $temp);
1157  }
1158  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/timeFormats/timeFormatLength[@type=\'' . $value[1] . '\']/timeFormat/pattern', '', 'pattern');
1159  break;
1160 
1161  case 'datetime':
1162  if (empty($value)) {
1163  $value = array("gregorian", "medium");
1164  }
1165  if (!is_array($value)) {
1166  $temp = $value;
1167  $value = array("gregorian", $temp);
1168  }
1169 
1170  $date = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/dateFormats/dateFormatLength[@type=\'' . $value[1] . '\']/dateFormat/pattern', '', 'pattern');
1171  $time = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/timeFormats/timeFormatLength[@type=\'' . $value[1] . '\']/timeFormat/pattern', '', 'pattern');
1172  $datetime = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/dateTimeFormats/dateTimeFormatLength[@type=\'' . $value[1] . '\']/dateTimeFormat/pattern', '', 'pattern');
1173  $temp = str_replace(array('{0}', '{1}'), array(current($time), current($date)), current($datetime));
1174  break;
1175 
1176  case 'dateitem':
1177  if (empty($value)) {
1178  $value = array("gregorian", "yyMMdd");
1179  }
1180  if (!is_array($value)) {
1181  $temp = $value;
1182  $value = array("gregorian", $temp);
1183  }
1184  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/dateTimeFormats/availableFormats/dateFormatItem[@id=\'' . $value[1] . '\']', '');
1185  break;
1186 
1187  case 'dateinterval':
1188  if (empty($value)) {
1189  $value = array("gregorian", "yMd", "y");
1190  }
1191  if (!is_array($value)) {
1192  $temp = $value;
1193  $value = array("gregorian", $temp, $temp[0]);
1194  }
1195  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\'' . $value[1] . '\']/greatestDifference[@id=\'' . $value[2] . '\']', '');
1196  break;
1197 
1198  case 'field':
1199  if (!is_array($value)) {
1200  $temp = $value;
1201  $value = array("gregorian", $temp);
1202  }
1203  $temp = self::_getFile($locale, '/ldml/dates/fields/field[@type=\'' . $value[1] . '\']/displayName', '', $value[1]);
1204  break;
1205 
1206  case 'relative':
1207  if (!is_array($value)) {
1208  $temp = $value;
1209  $value = array("gregorian", $temp);
1210  }
1211  $temp = self::_getFile($locale, '/ldml/dates/fields/field[@type=\'day\']/relative[@type=\'' . $value[1] . '\']', '', $value[1]);
1212  // $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/fields/field/relative[@type=\'' . $value[1] . '\']', '', $value[1]);
1213  break;
1214 
1215  case 'defaultnumberingsystem':
1216  $temp = self::_getFile($locale, '/ldml/numbers/defaultNumberingSystem', '', 'default');
1217  break;
1218 
1219  case 'decimalnumber':
1220  $temp = self::_getFile($locale, '/ldml/numbers/decimalFormats/decimalFormatLength/decimalFormat/pattern', '', 'default');
1221  break;
1222 
1223  case 'scientificnumber':
1224  $temp = self::_getFile($locale, '/ldml/numbers/scientificFormats/scientificFormatLength/scientificFormat/pattern', '', 'default');
1225  break;
1226 
1227  case 'percentnumber':
1228  $temp = self::_getFile($locale, '/ldml/numbers/percentFormats/percentFormatLength/percentFormat/pattern', '', 'default');
1229  break;
1230 
1231  case 'currencynumber':
1232  $temp = self::_getFile($locale, '/ldml/numbers/currencyFormats/currencyFormatLength/currencyFormat/pattern', '', 'default');
1233  break;
1234 
1235  case 'nametocurrency':
1236  $temp = self::_getFile($locale, '/ldml/numbers/currencies/currency[@type=\'' . $value . '\']/displayName', '', $value);
1237  break;
1238 
1239  case 'currencytoname':
1240  $temp = self::_getFile($locale, '/ldml/numbers/currencies/currency[@type=\'' . $value . '\']/displayName', '', $value);
1241  $_temp = self::_getFile($locale, '/ldml/numbers/currencies/currency', 'type');
1242  $temp = array();
1243  foreach ($_temp as $key => $keyvalue) {
1244  $val = self::_getFile($locale, '/ldml/numbers/currencies/currency[@type=\'' . $key . '\']/displayName', '', $key);
1245  if (!isset($val[$key]) or ($val[$key] != $value)) {
1246  continue;
1247  }
1248  if (!isset($temp[$val[$key]])) {
1249  $temp[$val[$key]] = $key;
1250  } else {
1251  $temp[$val[$key]] .= " " . $key;
1252  }
1253  }
1254  break;
1255 
1256  case 'currencysymbol':
1257  $temp = self::_getFile($locale, '/ldml/numbers/currencies/currency[@type=\'' . $value . '\']/symbol', '', $value);
1258  break;
1259 
1260  case 'question':
1261  $temp = self::_getFile($locale, '/ldml/posix/messages/' . $value . 'str', '', $value);
1262  break;
1263 
1264  case 'currencyfraction':
1265  if (empty($value)) {
1266  $value = "DEFAULT";
1267  }
1268  $temp = self::_getFile('supplementalData', '/supplementalData/currencyData/fractions/info[@iso4217=\'' . $value . '\']', 'digits', 'digits');
1269  break;
1270 
1271  case 'currencyrounding':
1272  if (empty($value)) {
1273  $value = "DEFAULT";
1274  }
1275  $temp = self::_getFile('supplementalData', '/supplementalData/currencyData/fractions/info[@iso4217=\'' . $value . '\']', 'rounding', 'rounding');
1276  break;
1277 
1278  case 'currencytoregion':
1279  $temp = self::_getFile('supplementalData', '/supplementalData/currencyData/region[@iso3166=\'' . $value . '\']/currency', 'iso4217', $value);
1280  break;
1281 
1282  case 'regiontocurrency':
1283  $_temp = self::_getFile('supplementalData', '/supplementalData/currencyData/region', 'iso3166');
1284  $temp = array();
1285  foreach ($_temp as $key => $keyvalue) {
1286  $val = self::_getFile('supplementalData', '/supplementalData/currencyData/region[@iso3166=\'' . $key . '\']/currency', 'iso4217', $key);
1287  if (!isset($val[$key]) or ($val[$key] != $value)) {
1288  continue;
1289  }
1290  if (!isset($temp[$val[$key]])) {
1291  $temp[$val[$key]] = $key;
1292  } else {
1293  $temp[$val[$key]] .= " " . $key;
1294  }
1295  }
1296  break;
1297 
1298  case 'regiontoterritory':
1299  $temp = self::_getFile('supplementalData', '/supplementalData/territoryContainment/group[@type=\'' . $value . '\']', 'contains', $value);
1300  break;
1301 
1302  case 'territorytoregion':
1303  $_temp2 = self::_getFile('supplementalData', '/supplementalData/territoryContainment/group', 'type');
1304  $_temp = array();
1305  foreach ($_temp2 as $key => $found) {
1306  $_temp += self::_getFile('supplementalData', '/supplementalData/territoryContainment/group[@type=\'' . $key . '\']', 'contains', $key);
1307  }
1308  $temp = array();
1309  foreach($_temp as $key => $found) {
1310  $_temp3 = explode(" ", $found);
1311  foreach($_temp3 as $found3) {
1312  if ($found3 !== $value) {
1313  continue;
1314  }
1315  if (!isset($temp[$found3])) {
1316  $temp[$found3] = (string) $key;
1317  } else {
1318  $temp[$found3] .= " " . $key;
1319  }
1320  }
1321  }
1322  break;
1323 
1324  case 'scripttolanguage':
1325  $temp = self::_getFile('supplementalData', '/supplementalData/languageData/language[@type=\'' . $value . '\']', 'scripts', $value);
1326  break;
1327 
1328  case 'languagetoscript':
1329  $_temp2 = self::_getFile('supplementalData', '/supplementalData/languageData/language', 'type');
1330  $_temp = array();
1331  foreach ($_temp2 as $key => $found) {
1332  $_temp += self::_getFile('supplementalData', '/supplementalData/languageData/language[@type=\'' . $key . '\']', 'scripts', $key);
1333  }
1334  $temp = array();
1335  foreach($_temp as $key => $found) {
1336  $_temp3 = explode(" ", $found);
1337  foreach($_temp3 as $found3) {
1338  if ($found3 !== $value) {
1339  continue;
1340  }
1341  if (!isset($temp[$found3])) {
1342  $temp[$found3] = (string) $key;
1343  } else {
1344  $temp[$found3] .= " " . $key;
1345  }
1346  }
1347  }
1348  break;
1349 
1350  case 'territorytolanguage':
1351  $temp = self::_getFile('supplementalData', '/supplementalData/languageData/language[@type=\'' . $value . '\']', 'territories', $value);
1352  break;
1353 
1354  case 'languagetoterritory':
1355  $_temp2 = self::_getFile('supplementalData', '/supplementalData/languageData/language', 'type');
1356  $_temp = array();
1357  foreach ($_temp2 as $key => $found) {
1358  $_temp += self::_getFile('supplementalData', '/supplementalData/languageData/language[@type=\'' . $key . '\']', 'territories', $key);
1359  }
1360  $temp = array();
1361  foreach($_temp as $key => $found) {
1362  $_temp3 = explode(" ", $found);
1363  foreach($_temp3 as $found3) {
1364  if ($found3 !== $value) {
1365  continue;
1366  }
1367  if (!isset($temp[$found3])) {
1368  $temp[$found3] = (string) $key;
1369  } else {
1370  $temp[$found3] .= " " . $key;
1371  }
1372  }
1373  }
1374  break;
1375 
1376  case 'timezonetowindows':
1377  $temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@other=\''.$value.'\']', 'type', $value);
1378  break;
1379 
1380  case 'windowstotimezone':
1381  $temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@type=\''.$value.'\']', 'other', $value);
1382  break;
1383 
1384  case 'territorytotimezone':
1385  $temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@type=\'' . $value . '\']', 'territory', $value);
1386  break;
1387 
1388  case 'timezonetoterritory':
1389  $temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@territory=\'' . $value . '\']', 'type', $value);
1390  break;
1391 
1392  case 'citytotimezone':
1393  $temp = self::_getFile($locale, '/ldml/dates/timeZoneNames/zone[@type=\'' . $value . '\']/exemplarCity', '', $value);
1394  break;
1395 
1396  case 'timezonetocity':
1397  $_temp = self::_getFile($locale, '/ldml/dates/timeZoneNames/zone', 'type');
1398  $temp = array();
1399  foreach($_temp as $key => $found) {
1400  $temp += self::_getFile($locale, '/ldml/dates/timeZoneNames/zone[@type=\'' . $key . '\']/exemplarCity', '', $key);
1401  if (!empty($temp[$key])) {
1402  if ($temp[$key] == $value) {
1403  $temp[$temp[$key]] = $key;
1404  }
1405  }
1406  unset($temp[$key]);
1407  }
1408  break;
1409 
1410  case 'phonetoterritory':
1411  $temp = self::_getFile('telephoneCodeData', '/supplementalData/telephoneCodeData/codesByTerritory[@territory=\'' . $value . '\']/telephoneCountryCode', 'code', $value);
1412  break;
1413 
1414  case 'territorytophone':
1415  $_temp2 = self::_getFile('telephoneCodeData', '/supplementalData/telephoneCodeData/codesByTerritory', 'territory');
1416  $_temp = array();
1417  foreach ($_temp2 as $key => $found) {
1418  $_temp += self::_getFile('telephoneCodeData', '/supplementalData/telephoneCodeData/codesByTerritory[@territory=\'' . $key . '\']/telephoneCountryCode', 'code', $key);
1419  }
1420  $temp = array();
1421  foreach($_temp as $key => $found) {
1422  $_temp3 = explode(" ", $found);
1423  foreach($_temp3 as $found3) {
1424  if ($found3 !== $value) {
1425  continue;
1426  }
1427  if (!isset($temp[$found3])) {
1428  $temp[$found3] = (string) $key;
1429  } else {
1430  $temp[$found3] .= " " . $key;
1431  }
1432  }
1433  }
1434  break;
1435 
1436  case 'numerictoterritory':
1437  $temp = self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes[@type=\''.$value.'\']', 'numeric', $value);
1438  break;
1439 
1440  case 'territorytonumeric':
1441  $temp = self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes[@numeric=\''.$value.'\']', 'type', $value);
1442  break;
1443 
1444  case 'alpha3toterritory':
1445  $temp = self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes[@type=\''.$value.'\']', 'alpha3', $value);
1446  break;
1447 
1448  case 'territorytoalpha3':
1449  $temp = self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes[@alpha3=\''.$value.'\']', 'type', $value);
1450  break;
1451 
1452  case 'postaltoterritory':
1453  $temp = self::_getFile('postalCodeData', '/supplementalData/postalCodeData/postCodeRegex[@territoryId=\'' . $value . '\']', 'territoryId');
1454  break;
1455 
1456  case 'numberingsystem':
1457  $temp = self::_getFile('numberingSystems', '/supplementalData/numberingSystems/numberingSystem[@id=\'' . strtolower($value) . '\']', 'digits', $value);
1458  break;
1459 
1460  case 'chartofallback':
1461  $_temp = self::_getFile('characters', '/supplementalData/characters/character-fallback/character', 'value');
1462  foreach ($_temp as $key => $keyvalue) {
1463  $temp2 = self::_getFile('characters', '/supplementalData/characters/character-fallback/character[@value=\'' . $key . '\']/substitute', '', $key);
1464  if (current($temp2) == $value) {
1465  $temp = $key;
1466  }
1467  }
1468  break;
1469 
1470  $temp = self::_getFile('characters', '/supplementalData/characters/character-fallback/character[@value=\'' . $value . '\']/substitute', '', $value);
1471  break;
1472 
1473  case 'fallbacktochar':
1474  $temp = self::_getFile('characters', '/supplementalData/characters/character-fallback/character[@value=\'' . $value . '\']/substitute', '');
1475  break;
1476 
1477  case 'localeupgrade':
1478  $temp = self::_getFile('likelySubtags', '/supplementalData/likelySubtags/likelySubtag[@from=\'' . $value . '\']', 'to', $value);
1479  break;
1480 
1481  case 'unit':
1482  $temp = self::_getFile($locale, '/ldml/units/unitLength/unit[@type=\'' . $value[0] . '\']/unitPattern[@count=\'' . $value[1] . '\']', '');
1483  break;
1484 
1485  case 'parentlocale':
1486  if (false === $value) {
1487  $value = $locale;
1488  }
1489  $temp = self::_getFile('supplementalData', "/supplementalData/parentLocales/parentLocale[contains(@locales, '" . $value . "')]", 'parent', 'parent');
1490  break;
1491 
1492  default :
1493  #require_once 'Zend/Locale/Exception.php';
1494  throw new Zend_Locale_Exception("Unknown detail ($path) for parsing locale data.");
1495  break;
1496  }
1497 
1498  if (is_array($temp)) {
1499  $temp = current($temp);
1500  }
1501  if (isset(self::$_cache)) {
1502  if (self::$_cacheTags) {
1503  self::$_cache->save( serialize($temp), $id, array('Zend_Locale'));
1504  } else {
1505  self::$_cache->save( serialize($temp), $id);
1506  }
1507  }
1508 
1509  return $temp;
1510  }
$block setTitle( 'CMS Block Title') -> setIdentifier('fixture_block') ->setContent('< h1 >Fixture Block Title</h1 >< a href=" store url</a><p> Config value
Definition: block.php:9
$id
Definition: fieldset.phtml:14
static _filterCacheId($value)
Definition: Data.php:1605
$value
Definition: gender.phtml:16
static factory($frontend, $backend, $frontendOptions=array(), $backendOptions=array(), $customFrontendNaming=false, $customBackendNaming=false, $autoload=false)
Definition: Cache.php:91

◆ getList()

static getList (   $locale,
  $path,
  $value = false 
)
static

Read the LDML file, get a array of multipath defined value

Parameters
string$locale
string$path
bool | string$value
Returns
array
Exceptions
Zend_Locale_Exception

Definition at line 318 of file Data.php.

319  {
320  $locale = self::_checkLocale($locale);
321 
322  if (!isset(self::$_cache) && !self::$_cacheDisabled) {
323  #require_once 'Zend/Cache.php';
324  self::$_cache = Zend_Cache::factory(
325  'Core',
326  'File',
327  array('automatic_serialization' => true),
328  array());
329  }
330 
331  $val = $value;
332  if (is_array($value)) {
333  $val = implode('_' , $value);
334  }
335 
336  $val = urlencode($val);
337  $id = self::_filterCacheId('Zend_LocaleL_' . $locale . '_' . $path . '_' . $val);
338  if (!self::$_cacheDisabled && ($result = self::$_cache->load($id))) {
339  return unserialize($result);
340  }
341 
342  $temp = array();
343  switch(strtolower($path)) {
344  case 'language':
345  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/languages/language', 'type');
346  break;
347 
348  case 'script':
349  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/scripts/script', 'type');
350  break;
351 
352  case 'territory':
353  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/territories/territory', 'type');
354  if ($value === 1) {
355  foreach($temp as $key => $value) {
356  if ((is_numeric($key) === false) and ($key != 'QO') and ($key != 'EU')) {
357  unset($temp[$key]);
358  }
359  }
360  } else if ($value === 2) {
361  foreach($temp as $key => $value) {
362  if (is_numeric($key) or ($key == 'QO') or ($key == 'EU')) {
363  unset($temp[$key]);
364  }
365  }
366  }
367  break;
368 
369  case 'variant':
370  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/variants/variant', 'type');
371  break;
372 
373  case 'key':
374  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/keys/key', 'type');
375  break;
376 
377  case 'type':
378  if (empty($value)) {
379  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/types/type', 'type');
380  } else {
381  if (($value == 'calendar') or
382  ($value == 'collation') or
383  ($value == 'currency')) {
384  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/types/type[@key=\'' . $value . '\']', 'type');
385  } else {
386  $temp = self::_getFile($locale, '/ldml/localeDisplayNames/types/type[@type=\'' . $value . '\']', 'type');
387  }
388  }
389  break;
390 
391  case 'layout':
392  $temp = self::_getFile($locale, '/ldml/layout/orientation/characterOrder', '', 'characterOrder');
393  $temp += self::_getFile($locale, '/ldml/layout/orientation/lineOrder', '', 'lineOrder');
394  break;
395 
396  case 'contexttransform':
397  if (empty($value)) {
398  $value = 'uiListOrMenu';
399  }
400  $temp = self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'languages\']/contextTransform[@type=\''.$value.'\']', '', 'languages');
401  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'day-format-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'day-format-except-narrow');
402  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'day-standalone-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'day-standalone-except-narrow');
403  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'day-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'day-narrow');
404  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'month-format-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'month-format-except-narrow');
405  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'month-standalone-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'month-standalone-except-narrow');
406  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'month-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'month-narrow');
407  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'script\']/contextTransform[@type=\''.$value.'\']', '', 'script');
408  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'territory\']/contextTransform[@type=\''.$value.'\']', '', 'territory');
409  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'variant\']/contextTransform[@type=\''.$value.'\']', '', 'variant');
410  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'key\']/contextTransform[@type=\''.$value.'\']', '', 'key');
411  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'type\']/contextTransform[@type=\''.$value.'\']', '', 'type');
412  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'era-name\']/contextTransform[@type=\''.$value.'\']', '', 'era-name');
413  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'era-abbr\']/contextTransform[@type=\''.$value.'\']', '', 'era-abbr');
414  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'era-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'era-narrow');
415  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-format-wide\']/contextTransform[@type=\''.$value.'\']', '', 'quater-format-wide');
416  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-standalone-wide\']/contextTransform[@type=\''.$value.'\']', '', 'quater-standalone-wide');
417  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-abbreviated\']/contextTransform[@type=\''.$value.'\']', '', 'quater-abbreviated');
418  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'quater-narrow');
419  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'calendar-field\']/contextTransform[@type=\''.$value.'\']', '', 'calendar-field');
420  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'symbol\']/contextTransform[@type=\''.$value.'\']', '', 'symbol');
421  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'tense\']/contextTransform[@type=\''.$value.'\']', '', 'tense');
422  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'zone-exemplarCity\']/contextTransform[@type=\''.$value.'\']', '', 'zone-exemplarCity');
423  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'zone-long\']/contextTransform[@type=\''.$value.'\']', '', 'zone-long');
424  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'zone-short\']/contextTransform[@type=\''.$value.'\']', '', 'zone-short');
425  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'metazone-long\']/contextTransform[@type=\''.$value.'\']', '', 'metazone-long');
426  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'metazone-short\']/contextTransform[@type=\''.$value.'\']', '', 'metazone-short');
427  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'displayName-count\']/contextTransform[@type=\''.$value.'\']', '', 'displayName-count');
428  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'displayName\']/contextTransform[@type=\''.$value.'\']', '', 'displayName');
429  $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'unit-pattern\']/contextTransform[@type=\''.$value.'\']', '', 'unit-pattern');
430  break;
431 
432  case 'characters':
433  $temp = self::_getFile($locale, '/ldml/characters/exemplarCharacters', '', 'characters');
434  $temp += self::_getFile($locale, '/ldml/characters/exemplarCharacters[@type=\'auxiliary\']', '', 'auxiliary');
435  // $temp += self::_getFile($locale, '/ldml/characters/exemplarCharacters[@type=\'currencySymbol\']', '', 'currencySymbol');
436  break;
437 
438  case 'delimiters':
439  $temp = self::_getFile($locale, '/ldml/delimiters/quotationStart', '', 'quoteStart');
440  $temp += self::_getFile($locale, '/ldml/delimiters/quotationEnd', '', 'quoteEnd');
441  $temp += self::_getFile($locale, '/ldml/delimiters/alternateQuotationStart', '', 'quoteStartAlt');
442  $temp += self::_getFile($locale, '/ldml/delimiters/alternateQuotationEnd', '', 'quoteEndAlt');
443  break;
444 
445  case 'measurement':
446  $temp = self::_getFile('supplementalData', '/supplementalData/measurementData/measurementSystem[@type=\'metric\']', 'territories', 'metric');
447  $temp += self::_getFile('supplementalData', '/supplementalData/measurementData/measurementSystem[@type=\'US\']', 'territories', 'US');
448  $temp += self::_getFile('supplementalData', '/supplementalData/measurementData/paperSize[@type=\'A4\']', 'territories', 'A4');
449  $temp += self::_getFile('supplementalData', '/supplementalData/measurementData/paperSize[@type=\'US-Letter\']', 'territories', 'US-Letter');
450  break;
451 
452  case 'months':
453  if (empty($value)) {
454  $value = "gregorian";
455  }
456  $temp['context'] = "format";
457  $temp['default'] = "wide";
458  $temp['format']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'abbreviated\']/month', 'type');
459  $temp['format']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'narrow\']/month', 'type');
460  $temp['format']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'wide\']/month', 'type');
461  $temp['stand-alone']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'stand-alone\']/monthWidth[@type=\'abbreviated\']/month', 'type');
462  $temp['stand-alone']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'stand-alone\']/monthWidth[@type=\'narrow\']/month', 'type');
463  $temp['stand-alone']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'stand-alone\']/monthWidth[@type=\'wide\']/month', 'type');
464  break;
465 
466  case 'month':
467  if (empty($value)) {
468  $value = array("gregorian", "format", "wide");
469  }
470  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/months/monthContext[@type=\'' . $value[1] . '\']/monthWidth[@type=\'' . $value[2] . '\']/month', 'type');
471  break;
472 
473  case 'days':
474  if (empty($value)) {
475  $value = "gregorian";
476  }
477  $temp['context'] = "format";
478  $temp['default'] = "wide";
479  $temp['format']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'abbreviated\']/day', 'type');
480  $temp['format']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'narrow\']/day', 'type');
481  $temp['format']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'wide\']/day', 'type');
482  $temp['stand-alone']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'stand-alone\']/dayWidth[@type=\'abbreviated\']/day', 'type');
483  $temp['stand-alone']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'stand-alone\']/dayWidth[@type=\'narrow\']/day', 'type');
484  $temp['stand-alone']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'stand-alone\']/dayWidth[@type=\'wide\']/day', 'type');
485  break;
486 
487  case 'day':
488  if (empty($value)) {
489  $value = array("gregorian", "format", "wide");
490  }
491  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/days/dayContext[@type=\'' . $value[1] . '\']/dayWidth[@type=\'' . $value[2] . '\']/day', 'type');
492  break;
493 
494  case 'week':
495  $minDays = self::_calendarDetail($locale, self::_getFile('supplementalData', '/supplementalData/weekData/minDays', 'territories'));
496  $firstDay = self::_calendarDetail($locale, self::_getFile('supplementalData', '/supplementalData/weekData/firstDay', 'territories'));
497  $weekStart = self::_calendarDetail($locale, self::_getFile('supplementalData', '/supplementalData/weekData/weekendStart', 'territories'));
498  $weekEnd = self::_calendarDetail($locale, self::_getFile('supplementalData', '/supplementalData/weekData/weekendEnd', 'territories'));
499 
500  $temp = self::_getFile('supplementalData', "/supplementalData/weekData/minDays[@territories='" . $minDays . "']", 'count', 'minDays');
501  $temp += self::_getFile('supplementalData', "/supplementalData/weekData/firstDay[@territories='" . $firstDay . "']", 'day', 'firstDay');
502  $temp += self::_getFile('supplementalData', "/supplementalData/weekData/weekendStart[@territories='" . $weekStart . "']", 'day', 'weekendStart');
503  $temp += self::_getFile('supplementalData', "/supplementalData/weekData/weekendEnd[@territories='" . $weekEnd . "']", 'day', 'weekendEnd');
504  break;
505 
506  case 'quarters':
507  if (empty($value)) {
508  $value = "gregorian";
509  }
510  $temp['format']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/quarters/quarterContext[@type=\'format\']/quarterWidth[@type=\'abbreviated\']/quarter', 'type');
511  $temp['format']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/quarters/quarterContext[@type=\'format\']/quarterWidth[@type=\'narrow\']/quarter', 'type');
512  $temp['format']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/quarters/quarterContext[@type=\'format\']/quarterWidth[@type=\'wide\']/quarter', 'type');
513  $temp['stand-alone']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/quarters/quarterContext[@type=\'stand-alone\']/quarterWidth[@type=\'abbreviated\']/quarter', 'type');
514  $temp['stand-alone']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/quarters/quarterContext[@type=\'stand-alone\']/quarterWidth[@type=\'narrow\']/quarter', 'type');
515  $temp['stand-alone']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/quarters/quarterContext[@type=\'stand-alone\']/quarterWidth[@type=\'wide\']/quarter', 'type');
516  break;
517 
518  case 'quarter':
519  if (empty($value)) {
520  $value = array("gregorian", "format", "wide");
521  }
522  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/quarters/quarterContext[@type=\'' . $value[1] . '\']/quarterWidth[@type=\'' . $value[2] . '\']/quarter', 'type');
523  break;
524 
525  case 'eras':
526  if (empty($value)) {
527  $value = "gregorian";
528  }
529  $temp['names'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/eras/eraNames/era', 'type');
530  $temp['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/eras/eraAbbr/era', 'type');
531  $temp['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/eras/eraNarrow/era', 'type');
532  break;
533 
534  case 'era':
535  if (empty($value)) {
536  $value = array("gregorian", "Abbr");
537  }
538  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/eras/era' . $value[1] . '/era', 'type');
539  break;
540 
541  case 'date':
542  if (empty($value)) {
543  $value = "gregorian";
544  }
545  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateFormats/dateFormatLength[@type=\'full\']/dateFormat/pattern', '', 'full');
546  $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateFormats/dateFormatLength[@type=\'long\']/dateFormat/pattern', '', 'long');
547  $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateFormats/dateFormatLength[@type=\'medium\']/dateFormat/pattern', '', 'medium');
548  $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateFormats/dateFormatLength[@type=\'short\']/dateFormat/pattern', '', 'short');
549  break;
550 
551  case 'time':
552  if (empty($value)) {
553  $value = "gregorian";
554  }
555  $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/timeFormats/timeFormatLength[@type=\'full\']/timeFormat/pattern', '', 'full');
556  $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/timeFormats/timeFormatLength[@type=\'long\']/timeFormat/pattern', '', 'long');
557  $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/timeFormats/timeFormatLength[@type=\'medium\']/timeFormat/pattern', '', 'medium');
558  $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/timeFormats/timeFormatLength[@type=\'short\']/timeFormat/pattern', '', 'short');
559  break;
560 
561  case 'datetime':
562  if (empty($value)) {
563  $value = "gregorian";
564  }
565 
566  $timefull = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/timeFormats/timeFormatLength[@type=\'full\']/timeFormat/pattern', '', 'full');
567  $timelong = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/timeFormats/timeFormatLength[@type=\'long\']/timeFormat/pattern', '', 'long');
568  $timemedi = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/timeFormats/timeFormatLength[@type=\'medium\']/timeFormat/pattern', '', 'medi');
569  $timeshor = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/timeFormats/timeFormatLength[@type=\'short\']/timeFormat/pattern', '', 'shor');
570 
571  $datefull = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateFormats/dateFormatLength[@type=\'full\']/dateFormat/pattern', '', 'full');
572  $datelong = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateFormats/dateFormatLength[@type=\'long\']/dateFormat/pattern', '', 'long');
573  $datemedi = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateFormats/dateFormatLength[@type=\'medium\']/dateFormat/pattern', '', 'medi');
574  $dateshor = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateFormats/dateFormatLength[@type=\'short\']/dateFormat/pattern', '', 'shor');
575 
576  $full = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateTimeFormats/dateTimeFormatLength[@type=\'full\']/dateTimeFormat/pattern', '', 'full');
577  $long = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateTimeFormats/dateTimeFormatLength[@type=\'long\']/dateTimeFormat/pattern', '', 'long');
578  $medi = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateTimeFormats/dateTimeFormatLength[@type=\'medium\']/dateTimeFormat/pattern', '', 'medi');
579  $shor = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateTimeFormats/dateTimeFormatLength[@type=\'short\']/dateTimeFormat/pattern', '', 'shor');
580 
581  $temp['full'] = str_replace(array('{0}', '{1}'), array($timefull['full'], $datefull['full']), $full['full']);
582  $temp['long'] = str_replace(array('{0}', '{1}'), array($timelong['long'], $datelong['long']), $long['long']);
583  $temp['medium'] = str_replace(array('{0}', '{1}'), array($timemedi['medi'], $datemedi['medi']), $medi['medi']);
584  $temp['short'] = str_replace(array('{0}', '{1}'), array($timeshor['shor'], $dateshor['shor']), $shor['shor']);
585  break;
586 
587  case 'dateitem':
588  if (empty($value)) {
589  $value = "gregorian";
590  }
591  $_temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateTimeFormats/availableFormats/dateFormatItem', 'id');
592  foreach($_temp as $key => $found) {
593  $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateTimeFormats/availableFormats/dateFormatItem[@id=\'' . $key . '\']', '', $key);
594  }
595  break;
596 
597  case 'dateinterval':
598  if (empty($value)) {
599  $value = "gregorian";
600  }
601  $_temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateTimeFormats/intervalFormats/intervalFormatItem', 'id');
602  foreach($_temp as $key => $found) {
603  $temp[$key] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/dateTimeFormats/intervalFormats/intervalFormatItem[@id=\'' . $key . '\']/greatestDifference', 'id');
604  }
605  break;
606 
607  case 'field':
608  if (empty($value)) {
609  $value = "gregorian";
610  }
611  $temp2 = self::_getFile($locale, '/ldml/dates/fields/field', 'type');
612  // $temp2 = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field', 'type');
613  foreach ($temp2 as $key => $keyvalue) {
614  $temp += self::_getFile($locale, '/ldml/dates/fields/field[@type=\'' . $key . '\']/displayName', '', $key);
615  // $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field[@type=\'' . $key . '\']/displayName', '', $key);
616  }
617  break;
618 
619  case 'relative':
620  if (empty($value)) {
621  $value = "day";
622  }
623  $temp = self::_getFile($locale, '/ldml/dates/fields/field[@type=\'' . $value . '\']/relative', 'type');
624  break;
625 
626  case 'symbols':
627  $temp = self::_getFile($locale, '/ldml/numbers/symbols/decimal', '', 'decimal');
628  $temp += self::_getFile($locale, '/ldml/numbers/symbols/group', '', 'group');
629  $temp += self::_getFile($locale, '/ldml/numbers/symbols/list', '', 'list');
630  $temp += self::_getFile($locale, '/ldml/numbers/symbols/percentSign', '', 'percent');
631  $temp += self::_getFile($locale, '/ldml/numbers/symbols/nativeZeroDigit', '', 'zero');
632  $temp += self::_getFile($locale, '/ldml/numbers/symbols/patternDigit', '', 'pattern');
633  $temp += self::_getFile($locale, '/ldml/numbers/symbols/plusSign', '', 'plus');
634  $temp += self::_getFile($locale, '/ldml/numbers/symbols/minusSign', '', 'minus');
635  $temp += self::_getFile($locale, '/ldml/numbers/symbols/exponential', '', 'exponent');
636  $temp += self::_getFile($locale, '/ldml/numbers/symbols/perMille', '', 'mille');
637  $temp += self::_getFile($locale, '/ldml/numbers/symbols/infinity', '', 'infinity');
638  $temp += self::_getFile($locale, '/ldml/numbers/symbols/nan', '', 'nan');
639  break;
640 
641  case 'nametocurrency':
642  $_temp = self::_getFile($locale, '/ldml/numbers/currencies/currency', 'type');
643  foreach ($_temp as $key => $found) {
644  $temp += self::_getFile($locale, '/ldml/numbers/currencies/currency[@type=\'' . $key . '\']/displayName', '', $key);
645  }
646  break;
647 
648  case 'currencytoname':
649  $_temp = self::_getFile($locale, '/ldml/numbers/currencies/currency', 'type');
650  foreach ($_temp as $key => $keyvalue) {
651  $val = self::_getFile($locale, '/ldml/numbers/currencies/currency[@type=\'' . $key . '\']/displayName', '', $key);
652  if (!isset($val[$key])) {
653  continue;
654  }
655  if (!isset($temp[$val[$key]])) {
656  $temp[$val[$key]] = $key;
657  } else {
658  $temp[$val[$key]] .= " " . $key;
659  }
660  }
661  break;
662 
663  case 'currencysymbol':
664  $_temp = self::_getFile($locale, '/ldml/numbers/currencies/currency', 'type');
665  foreach ($_temp as $key => $found) {
666  $temp += self::_getFile($locale, '/ldml/numbers/currencies/currency[@type=\'' . $key . '\']/symbol', '', $key);
667  }
668  break;
669 
670  case 'question':
671  $temp = self::_getFile($locale, '/ldml/posix/messages/yesstr', '', 'yes');
672  $temp += self::_getFile($locale, '/ldml/posix/messages/nostr', '', 'no');
673  break;
674 
675  case 'currencyfraction':
676  $_temp = self::_getFile('supplementalData', '/supplementalData/currencyData/fractions/info', 'iso4217');
677  foreach ($_temp as $key => $found) {
678  $temp += self::_getFile('supplementalData', '/supplementalData/currencyData/fractions/info[@iso4217=\'' . $key . '\']', 'digits', $key);
679  }
680  break;
681 
682  case 'currencyrounding':
683  $_temp = self::_getFile('supplementalData', '/supplementalData/currencyData/fractions/info', 'iso4217');
684  foreach ($_temp as $key => $found) {
685  $temp += self::_getFile('supplementalData', '/supplementalData/currencyData/fractions/info[@iso4217=\'' . $key . '\']', 'rounding', $key);
686  }
687  break;
688 
689  case 'currencytoregion':
690  $_temp = self::_getFile('supplementalData', '/supplementalData/currencyData/region', 'iso3166');
691  foreach ($_temp as $key => $keyvalue) {
692  $temp += self::_getFile('supplementalData', '/supplementalData/currencyData/region[@iso3166=\'' . $key . '\']/currency', 'iso4217', $key);
693  }
694  break;
695 
696  case 'regiontocurrency':
697  $_temp = self::_getFile('supplementalData', '/supplementalData/currencyData/region', 'iso3166');
698  foreach ($_temp as $key => $keyvalue) {
699  $val = self::_getFile('supplementalData', '/supplementalData/currencyData/region[@iso3166=\'' . $key . '\']/currency', 'iso4217', $key);
700  if (!isset($val[$key])) {
701  continue;
702  }
703  if (!isset($temp[$val[$key]])) {
704  $temp[$val[$key]] = $key;
705  } else {
706  $temp[$val[$key]] .= " " . $key;
707  }
708  }
709  break;
710 
711  case 'regiontoterritory':
712  $_temp = self::_getFile('supplementalData', '/supplementalData/territoryContainment/group', 'type');
713  foreach ($_temp as $key => $found) {
714  $temp += self::_getFile('supplementalData', '/supplementalData/territoryContainment/group[@type=\'' . $key . '\']', 'contains', $key);
715  }
716  break;
717 
718  case 'territorytoregion':
719  $_temp2 = self::_getFile('supplementalData', '/supplementalData/territoryContainment/group', 'type');
720  $_temp = array();
721  foreach ($_temp2 as $key => $found) {
722  $_temp += self::_getFile('supplementalData', '/supplementalData/territoryContainment/group[@type=\'' . $key . '\']', 'contains', $key);
723  }
724  foreach($_temp as $key => $found) {
725  $_temp3 = explode(" ", $found);
726  foreach($_temp3 as $found3) {
727  if (!isset($temp[$found3])) {
728  $temp[$found3] = (string) $key;
729  } else {
730  $temp[$found3] .= " " . $key;
731  }
732  }
733  }
734  break;
735 
736  case 'scripttolanguage':
737  $_temp = self::_getFile('supplementalData', '/supplementalData/languageData/language', 'type');
738  foreach ($_temp as $key => $found) {
739  $temp += self::_getFile('supplementalData', '/supplementalData/languageData/language[@type=\'' . $key . '\']', 'scripts', $key);
740  if (empty($temp[$key])) {
741  unset($temp[$key]);
742  }
743  }
744  break;
745 
746  case 'languagetoscript':
747  $_temp2 = self::_getFile('supplementalData', '/supplementalData/languageData/language', 'type');
748  $_temp = array();
749  foreach ($_temp2 as $key => $found) {
750  $_temp += self::_getFile('supplementalData', '/supplementalData/languageData/language[@type=\'' . $key . '\']', 'scripts', $key);
751  }
752  foreach($_temp as $key => $found) {
753  $_temp3 = explode(" ", $found);
754  foreach($_temp3 as $found3) {
755  if (empty($found3)) {
756  continue;
757  }
758  if (!isset($temp[$found3])) {
759  $temp[$found3] = (string) $key;
760  } else {
761  $temp[$found3] .= " " . $key;
762  }
763  }
764  }
765  break;
766 
767  case 'territorytolanguage':
768  $_temp = self::_getFile('supplementalData', '/supplementalData/languageData/language', 'type');
769  foreach ($_temp as $key => $found) {
770  $temp += self::_getFile('supplementalData', '/supplementalData/languageData/language[@type=\'' . $key . '\']', 'territories', $key);
771  if (empty($temp[$key])) {
772  unset($temp[$key]);
773  }
774  }
775  break;
776 
777  case 'languagetoterritory':
778  $_temp2 = self::_getFile('supplementalData', '/supplementalData/languageData/language', 'type');
779  $_temp = array();
780  foreach ($_temp2 as $key => $found) {
781  $_temp += self::_getFile('supplementalData', '/supplementalData/languageData/language[@type=\'' . $key . '\']', 'territories', $key);
782  }
783  foreach($_temp as $key => $found) {
784  $_temp3 = explode(" ", $found);
785  foreach($_temp3 as $found3) {
786  if (empty($found3)) {
787  continue;
788  }
789  if (!isset($temp[$found3])) {
790  $temp[$found3] = (string) $key;
791  } else {
792  $temp[$found3] .= " " . $key;
793  }
794  }
795  }
796  break;
797 
798  case 'timezonetowindows':
799  $_temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone', 'other');
800  foreach ($_temp as $key => $found) {
801  $temp += self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@other=\'' . $key . '\']', 'type', $key);
802  }
803  break;
804 
805  case 'windowstotimezone':
806  $_temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone', 'type');
807  foreach ($_temp as $key => $found) {
808  $temp += self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@type=\'' .$key . '\']', 'other', $key);
809  }
810  break;
811 
812  case 'territorytotimezone':
813  $_temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone', 'type');
814  foreach ($_temp as $key => $found) {
815  $temp += self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@type=\'' . $key . '\']', 'territory', $key);
816  }
817  break;
818 
819  case 'timezonetoterritory':
820  $_temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone', 'territory');
821  foreach ($_temp as $key => $found) {
822  $temp += self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@territory=\'' . $key . '\']', 'type', $key);
823  }
824  break;
825 
826  case 'citytotimezone':
827  $_temp = self::_getFile($locale, '/ldml/dates/timeZoneNames/zone', 'type');
828  foreach($_temp as $key => $found) {
829  $temp += self::_getFile($locale, '/ldml/dates/timeZoneNames/zone[@type=\'' . $key . '\']/exemplarCity', '', $key);
830  }
831  break;
832 
833  case 'timezonetocity':
834  $_temp = self::_getFile($locale, '/ldml/dates/timeZoneNames/zone', 'type');
835  $temp = array();
836  foreach($_temp as $key => $found) {
837  $temp += self::_getFile($locale, '/ldml/dates/timeZoneNames/zone[@type=\'' . $key . '\']/exemplarCity', '', $key);
838  if (!empty($temp[$key])) {
839  $temp[$temp[$key]] = $key;
840  }
841  unset($temp[$key]);
842  }
843  break;
844 
845  case 'phonetoterritory':
846  $_temp = self::_getFile('telephoneCodeData', '/supplementalData/telephoneCodeData/codesByTerritory', 'territory');
847  foreach ($_temp as $key => $keyvalue) {
848  $temp += self::_getFile('telephoneCodeData', '/supplementalData/telephoneCodeData/codesByTerritory[@territory=\'' . $key . '\']/telephoneCountryCode', 'code', $key);
849  }
850  break;
851 
852  case 'territorytophone':
853  $_temp = self::_getFile('telephoneCodeData', '/supplementalData/telephoneCodeData/codesByTerritory', 'territory');
854  foreach ($_temp as $key => $keyvalue) {
855  $val = self::_getFile('telephoneCodeData', '/supplementalData/telephoneCodeData/codesByTerritory[@territory=\'' . $key . '\']/telephoneCountryCode', 'code', $key);
856  if (!isset($val[$key])) {
857  continue;
858  }
859  if (!isset($temp[$val[$key]])) {
860  $temp[$val[$key]] = $key;
861  } else {
862  $temp[$val[$key]] .= " " . $key;
863  }
864  }
865  break;
866 
867  case 'numerictoterritory':
868  $_temp = self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes', 'type');
869  foreach ($_temp as $key => $keyvalue) {
870  $temp += self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes[@type=\'' . $key . '\']', 'numeric', $key);
871  }
872  break;
873 
874  case 'territorytonumeric':
875  $_temp = self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes', 'numeric');
876  foreach ($_temp as $key => $keyvalue) {
877  $temp += self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes[@numeric=\'' . $key . '\']', 'type', $key);
878  }
879  break;
880 
881  case 'alpha3toterritory':
882  $_temp = self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes', 'type');
883  foreach ($_temp as $key => $keyvalue) {
884  $temp += self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes[@type=\'' . $key . '\']', 'alpha3', $key);
885  }
886  break;
887 
888  case 'territorytoalpha3':
889  $_temp = self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes', 'alpha3');
890  foreach ($_temp as $key => $keyvalue) {
891  $temp += self::_getFile('supplementalData', '/supplementalData/codeMappings/territoryCodes[@alpha3=\'' . $key . '\']', 'type', $key);
892  }
893  break;
894 
895  case 'postaltoterritory':
896  $_temp = self::_getFile('postalCodeData', '/supplementalData/postalCodeData/postCodeRegex', 'territoryId');
897  foreach ($_temp as $key => $keyvalue) {
898  $temp += self::_getFile('postalCodeData', '/supplementalData/postalCodeData/postCodeRegex[@territoryId=\'' . $key . '\']', 'territoryId');
899  }
900  break;
901 
902  case 'numberingsystem':
903  $_temp = self::_getFile('numberingSystems', '/supplementalData/numberingSystems/numberingSystem', 'id');
904  foreach ($_temp as $key => $keyvalue) {
905  $temp += self::_getFile('numberingSystems', '/supplementalData/numberingSystems/numberingSystem[@id=\'' . $key . '\']', 'digits', $key);
906  if (empty($temp[$key])) {
907  unset($temp[$key]);
908  }
909  }
910  break;
911 
912  case 'chartofallback':
913  $_temp = self::_getFile('characters', '/supplementalData/characters/character-fallback/character', 'value');
914  foreach ($_temp as $key => $keyvalue) {
915  $temp2 = self::_getFile('characters', '/supplementalData/characters/character-fallback/character[@value=\'' . $key . '\']/substitute', '', $key);
916  $temp[current($temp2)] = $key;
917  }
918  break;
919 
920  case 'fallbacktochar':
921  $_temp = self::_getFile('characters', '/supplementalData/characters/character-fallback/character', 'value');
922  foreach ($_temp as $key => $keyvalue) {
923  $temp += self::_getFile('characters', '/supplementalData/characters/character-fallback/character[@value=\'' . $key . '\']/substitute', '', $key);
924  }
925  break;
926 
927  case 'localeupgrade':
928  $_temp = self::_getFile('likelySubtags', '/supplementalData/likelySubtags/likelySubtag', 'from');
929  foreach ($_temp as $key => $keyvalue) {
930  $temp += self::_getFile('likelySubtags', '/supplementalData/likelySubtags/likelySubtag[@from=\'' . $key . '\']', 'to', $key);
931  }
932  break;
933 
934  case 'unit':
935  $_temp = self::_getFile($locale, '/ldml/units/unitLength/unit', 'type');
936  foreach($_temp as $key => $keyvalue) {
937  $_temp2 = self::_getFile($locale, '/ldml/units/unitLength/unit[@type=\'' . $key . '\']/unitPattern', 'count');
938  $temp[$key] = $_temp2;
939  }
940  break;
941 
942  default :
943  #require_once 'Zend/Locale/Exception.php';
944  throw new Zend_Locale_Exception("Unknown list ($path) for parsing locale data.");
945  break;
946  }
947 
948  if (isset(self::$_cache)) {
949  if (self::$_cacheTags) {
950  self::$_cache->save( serialize($temp), $id, array('Zend_Locale'));
951  } else {
952  self::$_cache->save( serialize($temp), $id);
953  }
954  }
955 
956  return $temp;
957  }
$block setTitle( 'CMS Block Title') -> setIdentifier('fixture_block') ->setContent('< h1 >Fixture Block Title</h1 >< a href=" store url</a><p> Config value
Definition: block.php:9
$id
Definition: fieldset.phtml:14
static _filterCacheId($value)
Definition: Data.php:1605
$value
Definition: gender.phtml:16
static factory($frontend, $backend, $frontendOptions=array(), $backendOptions=array(), $customFrontendNaming=false, $customBackendNaming=false, $autoload=false)
Definition: Cache.php:91

◆ hasCache()

static hasCache ( )
static

Returns true when a cache is set

Returns
boolean

Definition at line 1538 of file Data.php.

1539  {
1540  if (self::$_cache !== null) {
1541  return true;
1542  }
1543 
1544  return false;
1545  }

◆ removeCache()

static removeCache ( )
static

Removes any set cache

Returns
void

Definition at line 1552 of file Data.php.

1553  {
1554  self::$_cache = null;
1555  }

◆ setCache()

static setCache ( Zend_Cache_Core  $cache)
static

Set a cache for Zend_Locale_Data

Parameters
Zend_Cache_Core$cacheA cache frontend

Definition at line 1527 of file Data.php.

1528  {
1529  self::$_cache = $cache;
1530  self::_getTagSupportForCache();
1531  }

The documentation for this class was generated from the following file: