13 * to license@zend.com so we can send you a copy immediately. |
13 * to license@zend.com so we can send you a copy immediately. |
14 * |
14 * |
15 * @category Zend |
15 * @category Zend |
16 * @package Zend_Locale |
16 * @package Zend_Locale |
17 * @subpackage Data |
17 * @subpackage Data |
18 * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) |
18 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) |
19 * @license http://framework.zend.com/license/new-bsd New BSD License |
19 * @license http://framework.zend.com/license/new-bsd New BSD License |
20 * @version $Id: Data.php 24766 2012-05-06 02:51:42Z adamlundrigan $ |
20 * @version $Id$ |
21 */ |
21 */ |
22 |
22 |
23 /** |
23 /** |
24 * include needed classes |
24 * include needed classes |
25 */ |
25 */ |
26 require_once 'Zend/Locale.php'; |
26 require_once 'Zend/Locale.php'; |
|
27 |
|
28 /** @see Zend_Xml_Security */ |
|
29 require_once 'Zend/Xml/Security.php'; |
27 |
30 |
28 /** |
31 /** |
29 * Locale data reader, handles the CLDR |
32 * Locale data reader, handles the CLDR |
30 * |
33 * |
31 * @category Zend |
34 * @category Zend |
32 * @package Zend_Locale |
35 * @package Zend_Locale |
33 * @subpackage Data |
36 * @subpackage Data |
34 * @copyright Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com) |
37 * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) |
35 * @license http://framework.zend.com/license/new-bsd New BSD License |
38 * @license http://framework.zend.com/license/new-bsd New BSD License |
36 */ |
39 */ |
37 class Zend_Locale_Data |
40 class Zend_Locale_Data |
38 { |
41 { |
39 /** |
42 /** |
40 * Locale files |
43 * Locale files |
41 * |
44 * |
42 * @var ressource |
45 * @var array |
43 * @access private |
|
44 */ |
46 */ |
45 private static $_ldml = array(); |
47 private static $_ldml = array(); |
46 |
48 |
47 /** |
49 /** |
48 * List of values which are collected |
50 * List of values which are collected |
49 * |
51 * |
50 * @var array |
52 * @var array |
51 * @access private |
|
52 */ |
53 */ |
53 private static $_list = array(); |
54 private static $_list = array(); |
54 |
55 |
55 /** |
56 /** |
56 * Internal cache for ldml values |
57 * Internal cache for ldml values |
57 * |
58 * |
58 * @var Zend_Cache_Core |
59 * @var Zend_Cache_Core |
59 * @access private |
|
60 */ |
60 */ |
61 private static $_cache = null; |
61 private static $_cache = null; |
62 |
62 |
63 /** |
63 /** |
64 * Internal value to remember if cache supports tags |
64 * Internal value to remember if cache supports tags |
373 } |
379 } |
374 } |
380 } |
375 break; |
381 break; |
376 |
382 |
377 case 'layout': |
383 case 'layout': |
378 $temp = self::_getFile($locale, '/ldml/layout/orientation', 'lines', 'lines'); |
384 $temp = self::_getFile($locale, '/ldml/layout/orientation/characterOrder', '', 'characterOrder'); |
379 $temp += self::_getFile($locale, '/ldml/layout/orientation', 'characters', 'characters'); |
385 $temp += self::_getFile($locale, '/ldml/layout/orientation/lineOrder', '', 'lineOrder'); |
380 $temp += self::_getFile($locale, '/ldml/layout/inList', '', 'inList'); |
386 break; |
381 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'currency\']', '', 'currency'); |
387 |
382 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'dayWidth\']', '', 'dayWidth'); |
388 case 'contexttransform': |
383 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'fields\']', '', 'fields'); |
389 if (empty($value)) { |
384 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'keys\']', '', 'keys'); |
390 $value = 'uiListOrMenu'; |
385 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'languages\']', '', 'languages'); |
391 } |
386 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'long\']', '', 'long'); |
392 $temp = self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'languages\']/contextTransform[@type=\''.$value.'\']', '', 'languages'); |
387 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'measurementSystemNames\']', '', 'measurementSystemNames'); |
393 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'day-format-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'day-format-except-narrow'); |
388 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'monthWidth\']', '', 'monthWidth'); |
394 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'day-standalone-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'day-standalone-except-narrow'); |
389 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'quarterWidth\']', '', 'quarterWidth'); |
395 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'day-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'day-narrow'); |
390 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'scripts\']', '', 'scripts'); |
396 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'month-format-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'month-format-except-narrow'); |
391 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'territories\']', '', 'territories'); |
397 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'month-standalone-except-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'month-standalone-except-narrow'); |
392 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'types\']', '', 'types'); |
398 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'month-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'month-narrow'); |
393 $temp += self::_getFile($locale, '/ldml/layout/inText[@type=\'variants\']', '', 'variants'); |
399 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'script\']/contextTransform[@type=\''.$value.'\']', '', 'script'); |
|
400 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'territory\']/contextTransform[@type=\''.$value.'\']', '', 'territory'); |
|
401 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'variant\']/contextTransform[@type=\''.$value.'\']', '', 'variant'); |
|
402 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'key\']/contextTransform[@type=\''.$value.'\']', '', 'key'); |
|
403 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'type\']/contextTransform[@type=\''.$value.'\']', '', 'type'); |
|
404 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'era-name\']/contextTransform[@type=\''.$value.'\']', '', 'era-name'); |
|
405 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'era-abbr\']/contextTransform[@type=\''.$value.'\']', '', 'era-abbr'); |
|
406 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'era-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'era-narrow'); |
|
407 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-format-wide\']/contextTransform[@type=\''.$value.'\']', '', 'quater-format-wide'); |
|
408 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-standalone-wide\']/contextTransform[@type=\''.$value.'\']', '', 'quater-standalone-wide'); |
|
409 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-abbreviated\']/contextTransform[@type=\''.$value.'\']', '', 'quater-abbreviated'); |
|
410 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'quater-narrow\']/contextTransform[@type=\''.$value.'\']', '', 'quater-narrow'); |
|
411 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'calendar-field\']/contextTransform[@type=\''.$value.'\']', '', 'calendar-field'); |
|
412 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'symbol\']/contextTransform[@type=\''.$value.'\']', '', 'symbol'); |
|
413 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'tense\']/contextTransform[@type=\''.$value.'\']', '', 'tense'); |
|
414 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'zone-exemplarCity\']/contextTransform[@type=\''.$value.'\']', '', 'zone-exemplarCity'); |
|
415 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'zone-long\']/contextTransform[@type=\''.$value.'\']', '', 'zone-long'); |
|
416 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'zone-short\']/contextTransform[@type=\''.$value.'\']', '', 'zone-short'); |
|
417 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'metazone-long\']/contextTransform[@type=\''.$value.'\']', '', 'metazone-long'); |
|
418 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'metazone-short\']/contextTransform[@type=\''.$value.'\']', '', 'metazone-short'); |
|
419 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'displayName-count\']/contextTransform[@type=\''.$value.'\']', '', 'displayName-count'); |
|
420 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'displayName\']/contextTransform[@type=\''.$value.'\']', '', 'displayName'); |
|
421 $temp += self::_getFile($locale, '/ldml/contextTransforms/contextTransformUsage[@type=\'unit-pattern\']/contextTransform[@type=\''.$value.'\']', '', 'unit-pattern'); |
394 break; |
422 break; |
395 |
423 |
396 case 'characters': |
424 case 'characters': |
397 $temp = self::_getFile($locale, '/ldml/characters/exemplarCharacters', '', 'characters'); |
425 $temp = self::_getFile($locale, '/ldml/characters/exemplarCharacters', '', 'characters'); |
398 $temp += self::_getFile($locale, '/ldml/characters/exemplarCharacters[@type=\'auxiliary\']', '', 'auxiliary'); |
426 $temp += self::_getFile($locale, '/ldml/characters/exemplarCharacters[@type=\'auxiliary\']', '', 'auxiliary'); |
399 $temp += self::_getFile($locale, '/ldml/characters/exemplarCharacters[@type=\'currencySymbol\']', '', 'currencySymbol'); |
427 // $temp += self::_getFile($locale, '/ldml/characters/exemplarCharacters[@type=\'currencySymbol\']', '', 'currencySymbol'); |
400 break; |
428 break; |
401 |
429 |
402 case 'delimiters': |
430 case 'delimiters': |
403 $temp = self::_getFile($locale, '/ldml/delimiters/quotationStart', '', 'quoteStart'); |
431 $temp = self::_getFile($locale, '/ldml/delimiters/quotationStart', '', 'quoteStart'); |
404 $temp += self::_getFile($locale, '/ldml/delimiters/quotationEnd', '', 'quoteEnd'); |
432 $temp += self::_getFile($locale, '/ldml/delimiters/quotationEnd', '', 'quoteEnd'); |
415 |
443 |
416 case 'months': |
444 case 'months': |
417 if (empty($value)) { |
445 if (empty($value)) { |
418 $value = "gregorian"; |
446 $value = "gregorian"; |
419 } |
447 } |
420 $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/default', 'choice', 'context'); |
448 $temp['context'] = "format"; |
421 $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/default', 'choice', 'default'); |
449 $temp['default'] = "wide"; |
422 $temp['format']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'abbreviated\']/month', 'type'); |
450 $temp['format']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'abbreviated\']/month', 'type'); |
423 $temp['format']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'narrow\']/month', 'type'); |
451 $temp['format']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'narrow\']/month', 'type'); |
424 $temp['format']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'wide\']/month', 'type'); |
452 $temp['format']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/monthWidth[@type=\'wide\']/month', 'type'); |
425 $temp['stand-alone']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'stand-alone\']/monthWidth[@type=\'abbreviated\']/month', 'type'); |
453 $temp['stand-alone']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'stand-alone\']/monthWidth[@type=\'abbreviated\']/month', 'type'); |
426 $temp['stand-alone']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'stand-alone\']/monthWidth[@type=\'narrow\']/month', 'type'); |
454 $temp['stand-alone']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'stand-alone\']/monthWidth[@type=\'narrow\']/month', 'type'); |
436 |
464 |
437 case 'days': |
465 case 'days': |
438 if (empty($value)) { |
466 if (empty($value)) { |
439 $value = "gregorian"; |
467 $value = "gregorian"; |
440 } |
468 } |
441 $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/default', 'choice', 'context'); |
469 $temp['context'] = "format"; |
442 $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/default', 'choice', 'default'); |
470 $temp['default'] = "wide"; |
443 $temp['format']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'abbreviated\']/day', 'type'); |
471 $temp['format']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'abbreviated\']/day', 'type'); |
444 $temp['format']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'narrow\']/day', 'type'); |
472 $temp['format']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'narrow\']/day', 'type'); |
445 $temp['format']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'wide\']/day', 'type'); |
473 $temp['format']['wide'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'format\']/dayWidth[@type=\'wide\']/day', 'type'); |
446 $temp['stand-alone']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'stand-alone\']/dayWidth[@type=\'abbreviated\']/day', 'type'); |
474 $temp['stand-alone']['abbreviated'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'stand-alone\']/dayWidth[@type=\'abbreviated\']/day', 'type'); |
447 $temp['stand-alone']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'stand-alone\']/dayWidth[@type=\'narrow\']/day', 'type'); |
475 $temp['stand-alone']['narrow'] = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/days/dayContext[@type=\'stand-alone\']/dayWidth[@type=\'narrow\']/day', 'type'); |
570 |
598 |
571 case 'field': |
599 case 'field': |
572 if (empty($value)) { |
600 if (empty($value)) { |
573 $value = "gregorian"; |
601 $value = "gregorian"; |
574 } |
602 } |
575 $temp2 = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field', 'type'); |
603 $temp2 = self::_getFile($locale, '/ldml/dates/fields/field', 'type'); |
|
604 // $temp2 = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field', 'type'); |
576 foreach ($temp2 as $key => $keyvalue) { |
605 foreach ($temp2 as $key => $keyvalue) { |
577 $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field[@type=\'' . $key . '\']/displayName', '', $key); |
606 $temp += self::_getFile($locale, '/ldml/dates/fields/field[@type=\'' . $key . '\']/displayName', '', $key); |
|
607 // $temp += self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field[@type=\'' . $key . '\']/displayName', '', $key); |
578 } |
608 } |
579 break; |
609 break; |
580 |
610 |
581 case 'relative': |
611 case 'relative': |
582 if (empty($value)) { |
612 if (empty($value)) { |
583 $value = "gregorian"; |
613 $value = "day"; |
584 } |
614 } |
585 $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/fields/field/relative', 'type'); |
615 $temp = self::_getFile($locale, '/ldml/dates/fields/field[@type=\'' . $value . '\']/relative', 'type'); |
586 break; |
616 break; |
587 |
617 |
588 case 'symbols': |
618 case 'symbols': |
589 $temp = self::_getFile($locale, '/ldml/numbers/symbols/decimal', '', 'decimal'); |
619 $temp = self::_getFile($locale, '/ldml/numbers/symbols/decimal', '', 'decimal'); |
590 $temp += self::_getFile($locale, '/ldml/numbers/symbols/group', '', 'group'); |
620 $temp += self::_getFile($locale, '/ldml/numbers/symbols/group', '', 'group'); |
756 } |
786 } |
757 } |
787 } |
758 break; |
788 break; |
759 |
789 |
760 case 'timezonetowindows': |
790 case 'timezonetowindows': |
761 $_temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone', 'other'); |
791 $_temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone', 'other'); |
762 foreach ($_temp as $key => $found) { |
792 foreach ($_temp as $key => $found) { |
763 $temp += self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone[@other=\'' . $key . '\']', 'type', $key); |
793 $temp += self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@other=\'' . $key . '\']', 'type', $key); |
764 } |
794 } |
765 break; |
795 break; |
766 |
796 |
767 case 'windowstotimezone': |
797 case 'windowstotimezone': |
768 $_temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone', 'type'); |
798 $_temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone', 'type'); |
769 foreach ($_temp as $key => $found) { |
799 foreach ($_temp as $key => $found) { |
770 $temp += self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone[@type=\'' .$key . '\']', 'other', $key); |
800 $temp += self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@type=\'' .$key . '\']', 'other', $key); |
771 } |
801 } |
772 break; |
802 break; |
773 |
803 |
774 case 'territorytotimezone': |
804 case 'territorytotimezone': |
775 $_temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem', 'type'); |
805 $_temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone', 'type'); |
776 foreach ($_temp as $key => $found) { |
806 foreach ($_temp as $key => $found) { |
777 $temp += self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem[@type=\'' . $key . '\']', 'territory', $key); |
807 $temp += self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@type=\'' . $key . '\']', 'territory', $key); |
778 } |
808 } |
779 break; |
809 break; |
780 |
810 |
781 case 'timezonetoterritory': |
811 case 'timezonetoterritory': |
782 $_temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem', 'territory'); |
812 $_temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone', 'territory'); |
783 foreach ($_temp as $key => $found) { |
813 foreach ($_temp as $key => $found) { |
784 $temp += self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem[@territory=\'' . $key . '\']', 'type', $key); |
814 $temp += self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@territory=\'' . $key . '\']', 'type', $key); |
785 } |
815 } |
786 break; |
816 break; |
787 |
817 |
788 case 'citytotimezone': |
818 case 'citytotimezone': |
789 $_temp = self::_getFile($locale, '/ldml/dates/timeZoneNames/zone', 'type'); |
819 $_temp = self::_getFile($locale, '/ldml/dates/timeZoneNames/zone', 'type'); |
971 case 'key': |
1001 case 'key': |
972 $temp = self::_getFile($locale, '/ldml/localeDisplayNames/keys/key[@type=\'' . $value . '\']', 'type'); |
1002 $temp = self::_getFile($locale, '/ldml/localeDisplayNames/keys/key[@type=\'' . $value . '\']', 'type'); |
973 break; |
1003 break; |
974 |
1004 |
975 case 'defaultcalendar': |
1005 case 'defaultcalendar': |
976 $temp = self::_getFile($locale, '/ldml/dates/calendars/default', 'choice', 'default'); |
1006 $givenLocale = new Zend_Locale($locale); |
|
1007 $territory = $givenLocale->getRegion(); |
|
1008 unset($givenLocale); |
|
1009 $temp = self::_getFile('supplementalData', '/supplementalData/calendarPreferenceData/calendarPreference[contains(@territories,\'' . $territory . '\')]', 'ordering', 'ordering'); |
|
1010 if (isset($temp['ordering'])) { |
|
1011 list($temp) = explode(' ', $temp['ordering']); |
|
1012 } else { |
|
1013 $temp = 'gregorian'; |
|
1014 } |
977 break; |
1015 break; |
978 |
1016 |
979 case 'monthcontext': |
1017 case 'monthcontext': |
|
1018 /* default context is always 'format' |
980 if (empty ($value)) { |
1019 if (empty ($value)) { |
981 $value = "gregorian"; |
1020 $value = "gregorian"; |
982 } |
1021 } |
983 $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/default', 'choice', 'context'); |
1022 $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/default', 'choice', 'context'); |
|
1023 */ |
|
1024 $temp = 'format'; |
984 break; |
1025 break; |
985 |
1026 |
986 case 'defaultmonth': |
1027 case 'defaultmonth': |
|
1028 /* default width is always 'wide' |
987 if (empty ($value)) { |
1029 if (empty ($value)) { |
988 $value = "gregorian"; |
1030 $value = "gregorian"; |
989 } |
1031 } |
990 $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/default', 'choice', 'default'); |
1032 $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/months/monthContext[@type=\'format\']/default', 'choice', 'default'); |
|
1033 */ |
|
1034 $temp = 'wide'; |
991 break; |
1035 break; |
992 |
1036 |
993 case 'month': |
1037 case 'month': |
994 if (!is_array($value)) { |
1038 if (!is_array($value)) { |
995 $temp = $value; |
1039 $temp = $value; |
1028 $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'); |
1078 $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'); |
1029 break; |
1079 break; |
1030 |
1080 |
1031 case 'am': |
1081 case 'am': |
1032 if (empty($value)) { |
1082 if (empty($value)) { |
1033 $value = "gregorian"; |
1083 $value = array("gregorian", "format", "wide"); |
1034 } |
1084 } |
1035 $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/am', '', 'am'); |
1085 if (!is_array($value)) { |
|
1086 $temp = $value; |
|
1087 $value = array($temp, "format", "wide"); |
|
1088 } |
|
1089 $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/dayPeriods/dayPeriodContext[@type=\'' . $value[1] . '\']/dayPeriodWidth[@type=\'' . $value[2] . '\']/dayPeriod[@type=\'am\']', '', 'dayPeriod'); |
1036 break; |
1090 break; |
1037 |
1091 |
1038 case 'pm': |
1092 case 'pm': |
1039 if (empty($value)) { |
1093 if (empty($value)) { |
1040 $value = "gregorian"; |
1094 $value = array("gregorian", "format", "wide"); |
1041 } |
1095 } |
1042 $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value . '\']/pm', '', 'pm'); |
1096 if (!is_array($value)) { |
|
1097 $temp = $value; |
|
1098 $value = array($temp, "format", "wide"); |
|
1099 } |
|
1100 $temp = self::_getFile($locale, '/ldml/dates/calendars/calendar[@type=\'' . $value[0] . '\']/dayPeriods/dayPeriodContext[@type=\'' . $value[1] . '\']/dayPeriodWidth[@type=\'' . $value[2] . '\']/dayPeriod[@type=\'pm\']', '', 'dayPeriod'); |
1043 break; |
1101 break; |
1044 |
1102 |
1045 case 'era': |
1103 case 'era': |
1046 if (!is_array($value)) { |
1104 if (!is_array($value)) { |
1047 $temp = $value; |
1105 $temp = $value; |
1299 } |
1364 } |
1300 } |
1365 } |
1301 break; |
1366 break; |
1302 |
1367 |
1303 case 'timezonetowindows': |
1368 case 'timezonetowindows': |
1304 $temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone[@other=\''.$value.'\']', 'type', $value); |
1369 $temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@other=\''.$value.'\']', 'type', $value); |
1305 break; |
1370 break; |
1306 |
1371 |
1307 case 'windowstotimezone': |
1372 case 'windowstotimezone': |
1308 $temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/mapTimezones[@type=\'windows\']/mapZone[@type=\''.$value.'\']', 'other', $value); |
1373 $temp = self::_getFile('windowsZones', '/supplementalData/windowsZones/mapTimezones/mapZone[@type=\''.$value.'\']', 'other', $value); |
1309 break; |
1374 break; |
1310 |
1375 |
1311 case 'territorytotimezone': |
1376 case 'territorytotimezone': |
1312 $temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem[@type=\'' . $value . '\']', 'territory', $value); |
1377 $temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@type=\'' . $value . '\']', 'territory', $value); |
1313 break; |
1378 break; |
1314 |
1379 |
1315 case 'timezonetoterritory': |
1380 case 'timezonetoterritory': |
1316 $temp = self::_getFile('supplementalData', '/supplementalData/timezoneData/zoneFormatting/zoneItem[@territory=\'' . $value . '\']', 'type', $value); |
1381 $temp = self::_getFile('metaZones', '/supplementalData/metaZones/mapTimezones/mapZone[@territory=\'' . $value . '\']', 'type', $value); |
1317 break; |
1382 break; |
1318 |
1383 |
1319 case 'citytotimezone': |
1384 case 'citytotimezone': |
1320 $temp = self::_getFile($locale, '/ldml/dates/timeZoneNames/zone[@type=\'' . $value . '\']/exemplarCity', '', $value); |
1385 $temp = self::_getFile($locale, '/ldml/dates/timeZoneNames/zone[@type=\'' . $value . '\']/exemplarCity', '', $value); |
1321 break; |
1386 break; |