mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 02:14:43 +00:00
Bug 837961 - Part 1: Add scripts to update tzdata in ICU data files. r=Waldo
This commit is contained in:
parent
96a41c3380
commit
c52b3dc6ca
BIN
intl/tzdata/2015f/be/metaZones.res
Normal file
BIN
intl/tzdata/2015f/be/metaZones.res
Normal file
Binary file not shown.
BIN
intl/tzdata/2015f/be/timezoneTypes.res
Normal file
BIN
intl/tzdata/2015f/be/timezoneTypes.res
Normal file
Binary file not shown.
BIN
intl/tzdata/2015f/be/windowsZones.res
Normal file
BIN
intl/tzdata/2015f/be/windowsZones.res
Normal file
Binary file not shown.
BIN
intl/tzdata/2015f/be/zoneinfo64.res
Normal file
BIN
intl/tzdata/2015f/be/zoneinfo64.res
Normal file
Binary file not shown.
BIN
intl/tzdata/2015f/ee/metaZones.res
Normal file
BIN
intl/tzdata/2015f/ee/metaZones.res
Normal file
Binary file not shown.
BIN
intl/tzdata/2015f/ee/timezoneTypes.res
Normal file
BIN
intl/tzdata/2015f/ee/timezoneTypes.res
Normal file
Binary file not shown.
BIN
intl/tzdata/2015f/ee/windowsZones.res
Normal file
BIN
intl/tzdata/2015f/ee/windowsZones.res
Normal file
Binary file not shown.
BIN
intl/tzdata/2015f/ee/zoneinfo64.res
Normal file
BIN
intl/tzdata/2015f/ee/zoneinfo64.res
Normal file
Binary file not shown.
BIN
intl/tzdata/2015f/le/metaZones.res
Normal file
BIN
intl/tzdata/2015f/le/metaZones.res
Normal file
Binary file not shown.
BIN
intl/tzdata/2015f/le/timezoneTypes.res
Normal file
BIN
intl/tzdata/2015f/le/timezoneTypes.res
Normal file
Binary file not shown.
BIN
intl/tzdata/2015f/le/windowsZones.res
Normal file
BIN
intl/tzdata/2015f/le/windowsZones.res
Normal file
Binary file not shown.
BIN
intl/tzdata/2015f/le/zoneinfo64.res
Normal file
BIN
intl/tzdata/2015f/le/zoneinfo64.res
Normal file
Binary file not shown.
4240
intl/tzdata/2015f/metaZones.txt
Normal file
4240
intl/tzdata/2015f/metaZones.txt
Normal file
File diff suppressed because it is too large
Load Diff
606
intl/tzdata/2015f/timezoneTypes.txt
Normal file
606
intl/tzdata/2015f/timezoneTypes.txt
Normal file
@ -0,0 +1,606 @@
|
||||
// ***************************************************************************
|
||||
// *
|
||||
// * Copyright (C) 2014 International Business Machines
|
||||
// * Corporation and others. All Rights Reserved.
|
||||
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
|
||||
// * Source File: <path>/common/bcp47/timezone.xml
|
||||
// *
|
||||
// ***************************************************************************
|
||||
timezoneTypes:table(nofallback){
|
||||
bcpTypeAlias{
|
||||
tz{
|
||||
aqams{"nzakl"}
|
||||
cnckg{"cnsha"}
|
||||
cnhrb{"cnsha"}
|
||||
cnkhg{"cnurc"}
|
||||
usnavajo{"usden"}
|
||||
}
|
||||
}
|
||||
typeAlias{
|
||||
timezone{
|
||||
"Africa:Asmara"{"Africa/Asmera"}
|
||||
"Africa:Timbuktu"{"Africa/Bamako"}
|
||||
"America:Argentina:Buenos_Aires"{"America/Buenos_Aires"}
|
||||
"America:Argentina:Catamarca"{"America/Catamarca"}
|
||||
"America:Argentina:ComodRivadavia"{"America/Catamarca"}
|
||||
"America:Argentina:Cordoba"{"America/Cordoba"}
|
||||
"America:Argentina:Jujuy"{"America/Jujuy"}
|
||||
"America:Argentina:Mendoza"{"America/Mendoza"}
|
||||
"America:Atikokan"{"America/Coral_Harbour"}
|
||||
"America:Atka"{"America/Adak"}
|
||||
"America:Ensenada"{"America/Tijuana"}
|
||||
"America:Fort_Wayne"{"America/Indianapolis"}
|
||||
"America:Indiana:Indianapolis"{"America/Indianapolis"}
|
||||
"America:Kentucky:Louisville"{"America/Louisville"}
|
||||
"America:Knox_IN"{"America/Indiana/Knox"}
|
||||
"America:Porto_Acre"{"America/Rio_Branco"}
|
||||
"America:Rosario"{"America/Cordoba"}
|
||||
"America:Shiprock"{"America/Denver"}
|
||||
"America:Virgin"{"America/St_Thomas"}
|
||||
"Antarctica:South_Pole"{"Pacific/Auckland"}
|
||||
"Asia:Ashkhabad"{"Asia/Ashgabat"}
|
||||
"Asia:Chongqing"{"Asia/Shanghai"}
|
||||
"Asia:Chungking"{"Asia/Shanghai"}
|
||||
"Asia:Dacca"{"Asia/Dhaka"}
|
||||
"Asia:Harbin"{"Asia/Shanghai"}
|
||||
"Asia:Ho_Chi_Minh"{"Asia/Saigon"}
|
||||
"Asia:Istanbul"{"Europe/Istanbul"}
|
||||
"Asia:Kashgar"{"Asia/Urumqi"}
|
||||
"Asia:Kathmandu"{"Asia/Katmandu"}
|
||||
"Asia:Kolkata"{"Asia/Calcutta"}
|
||||
"Asia:Macao"{"Asia/Macau"}
|
||||
"Asia:Tel_Aviv"{"Asia/Jerusalem"}
|
||||
"Asia:Thimbu"{"Asia/Thimphu"}
|
||||
"Asia:Ujung_Pandang"{"Asia/Makassar"}
|
||||
"Asia:Ulan_Bator"{"Asia/Ulaanbaatar"}
|
||||
"Atlantic:Faroe"{"Atlantic/Faeroe"}
|
||||
"Atlantic:Jan_Mayen"{"Arctic/Longyearbyen"}
|
||||
"Australia:ACT"{"Australia/Sydney"}
|
||||
"Australia:Canberra"{"Australia/Sydney"}
|
||||
"Australia:LHI"{"Australia/Lord_Howe"}
|
||||
"Australia:NSW"{"Australia/Sydney"}
|
||||
"Australia:North"{"Australia/Darwin"}
|
||||
"Australia:Queensland"{"Australia/Brisbane"}
|
||||
"Australia:South"{"Australia/Adelaide"}
|
||||
"Australia:Tasmania"{"Australia/Hobart"}
|
||||
"Australia:Victoria"{"Australia/Melbourne"}
|
||||
"Australia:West"{"Australia/Perth"}
|
||||
"Australia:Yancowinna"{"Australia/Broken_Hill"}
|
||||
"Brazil:Acre"{"America/Rio_Branco"}
|
||||
"Brazil:DeNoronha"{"America/Noronha"}
|
||||
"Brazil:East"{"America/Sao_Paulo"}
|
||||
"Brazil:West"{"America/Manaus"}
|
||||
"Canada:Atlantic"{"America/Halifax"}
|
||||
"Canada:Central"{"America/Winnipeg"}
|
||||
"Canada:East-Saskatchewan"{"America/Regina"}
|
||||
"Canada:Eastern"{"America/Toronto"}
|
||||
"Canada:Mountain"{"America/Edmonton"}
|
||||
"Canada:Newfoundland"{"America/St_Johns"}
|
||||
"Canada:Pacific"{"America/Vancouver"}
|
||||
"Canada:Saskatchewan"{"America/Regina"}
|
||||
"Canada:Yukon"{"America/Whitehorse"}
|
||||
"Chile:Continental"{"America/Santiago"}
|
||||
"Chile:EasterIsland"{"Pacific/Easter"}
|
||||
"Etc:GMT+0"{"Etc/GMT"}
|
||||
"Etc:GMT-0"{"Etc/GMT"}
|
||||
"Etc:GMT0"{"Etc/GMT"}
|
||||
"Etc:Greenwich"{"Etc/GMT"}
|
||||
"Etc:UCT"{"Etc/GMT"}
|
||||
"Etc:UTC"{"Etc/GMT"}
|
||||
"Etc:Universal"{"Etc/GMT"}
|
||||
"Etc:Zulu"{"Etc/GMT"}
|
||||
"Europe:Belfast"{"Europe/London"}
|
||||
"Europe:Nicosia"{"Asia/Nicosia"}
|
||||
"Europe:Tiraspol"{"Europe/Chisinau"}
|
||||
"Mexico:BajaNorte"{"America/Tijuana"}
|
||||
"Mexico:BajaSur"{"America/Mazatlan"}
|
||||
"Mexico:General"{"America/Mexico_City"}
|
||||
"Pacific:Chuuk"{"Pacific/Truk"}
|
||||
"Pacific:Pohnpei"{"Pacific/Ponape"}
|
||||
"Pacific:Samoa"{"Pacific/Pago_Pago"}
|
||||
"Pacific:Yap"{"Pacific/Truk"}
|
||||
"US:Alaska"{"America/Anchorage"}
|
||||
"US:Aleutian"{"America/Adak"}
|
||||
"US:Arizona"{"America/Phoenix"}
|
||||
"US:Central"{"America/Chicago"}
|
||||
"US:East-Indiana"{"America/Indianapolis"}
|
||||
"US:Eastern"{"America/New_York"}
|
||||
"US:Hawaii"{"Pacific/Honolulu"}
|
||||
"US:Indiana-Starke"{"America/Indiana/Knox"}
|
||||
"US:Michigan"{"America/Detroit"}
|
||||
"US:Mountain"{"America/Denver"}
|
||||
"US:Pacific"{"America/Los_Angeles"}
|
||||
"US:Pacific-New"{"America/Los_Angeles"}
|
||||
"US:Samoa"{"Pacific/Pago_Pago"}
|
||||
Cuba{"America/Havana"}
|
||||
EST{"Etc/GMT+5"}
|
||||
Egypt{"Africa/Cairo"}
|
||||
Eire{"Europe/Dublin"}
|
||||
GB{"Europe/London"}
|
||||
GB-Eire{"Europe/London"}
|
||||
GMT{"Etc/GMT"}
|
||||
GMT+0{"Etc/GMT"}
|
||||
GMT-0{"Etc/GMT"}
|
||||
GMT0{"Etc/GMT"}
|
||||
Greenwich{"Etc/GMT"}
|
||||
HST{"Etc/GMT+10"}
|
||||
Hongkong{"Asia/Hong_Kong"}
|
||||
Iceland{"Atlantic/Reykjavik"}
|
||||
Iran{"Asia/Tehran"}
|
||||
Israel{"Asia/Jerusalem"}
|
||||
Jamaica{"America/Jamaica"}
|
||||
Japan{"Asia/Tokyo"}
|
||||
Kwajalein{"Pacific/Kwajalein"}
|
||||
Libya{"Africa/Tripoli"}
|
||||
MST{"Etc/GMT+7"}
|
||||
NZ{"Pacific/Auckland"}
|
||||
NZ-CHAT{"Pacific/Chatham"}
|
||||
Navajo{"America/Denver"}
|
||||
PRC{"Asia/Shanghai"}
|
||||
Poland{"Europe/Warsaw"}
|
||||
Portugal{"Europe/Lisbon"}
|
||||
ROC{"Asia/Taipei"}
|
||||
ROK{"Asia/Seoul"}
|
||||
Singapore{"Asia/Singapore"}
|
||||
Turkey{"Europe/Istanbul"}
|
||||
UCT{"Etc/GMT"}
|
||||
UTC{"Etc/GMT"}
|
||||
Universal{"Etc/GMT"}
|
||||
W-SU{"Europe/Moscow"}
|
||||
Zulu{"Etc/GMT"}
|
||||
}
|
||||
}
|
||||
typeMap{
|
||||
timezone{
|
||||
"Africa:Abidjan"{"ciabj"}
|
||||
"Africa:Accra"{"ghacc"}
|
||||
"Africa:Addis_Ababa"{"etadd"}
|
||||
"Africa:Algiers"{"dzalg"}
|
||||
"Africa:Asmera"{"erasm"}
|
||||
"Africa:Bamako"{"mlbko"}
|
||||
"Africa:Bangui"{"cfbgf"}
|
||||
"Africa:Banjul"{"gmbjl"}
|
||||
"Africa:Bissau"{"gwoxb"}
|
||||
"Africa:Blantyre"{"mwblz"}
|
||||
"Africa:Brazzaville"{"cgbzv"}
|
||||
"Africa:Bujumbura"{"bibjm"}
|
||||
"Africa:Cairo"{"egcai"}
|
||||
"Africa:Casablanca"{"macas"}
|
||||
"Africa:Ceuta"{"esceu"}
|
||||
"Africa:Conakry"{"gncky"}
|
||||
"Africa:Dakar"{"sndkr"}
|
||||
"Africa:Dar_es_Salaam"{"tzdar"}
|
||||
"Africa:Djibouti"{"djjib"}
|
||||
"Africa:Douala"{"cmdla"}
|
||||
"Africa:El_Aaiun"{"eheai"}
|
||||
"Africa:Freetown"{"slfna"}
|
||||
"Africa:Gaborone"{"bwgbe"}
|
||||
"Africa:Harare"{"zwhre"}
|
||||
"Africa:Johannesburg"{"zajnb"}
|
||||
"Africa:Juba"{"ssjub"}
|
||||
"Africa:Kampala"{"ugkla"}
|
||||
"Africa:Khartoum"{"sdkrt"}
|
||||
"Africa:Kigali"{"rwkgl"}
|
||||
"Africa:Kinshasa"{"cdfih"}
|
||||
"Africa:Lagos"{"nglos"}
|
||||
"Africa:Libreville"{"galbv"}
|
||||
"Africa:Lome"{"tglfw"}
|
||||
"Africa:Luanda"{"aolad"}
|
||||
"Africa:Lubumbashi"{"cdfbm"}
|
||||
"Africa:Lusaka"{"zmlun"}
|
||||
"Africa:Malabo"{"gqssg"}
|
||||
"Africa:Maputo"{"mzmpm"}
|
||||
"Africa:Maseru"{"lsmsu"}
|
||||
"Africa:Mbabane"{"szqmn"}
|
||||
"Africa:Mogadishu"{"somgq"}
|
||||
"Africa:Monrovia"{"lrmlw"}
|
||||
"Africa:Nairobi"{"kenbo"}
|
||||
"Africa:Ndjamena"{"tdndj"}
|
||||
"Africa:Niamey"{"nenim"}
|
||||
"Africa:Nouakchott"{"mrnkc"}
|
||||
"Africa:Ouagadougou"{"bfoua"}
|
||||
"Africa:Porto-Novo"{"bjptn"}
|
||||
"Africa:Sao_Tome"{"sttms"}
|
||||
"Africa:Tripoli"{"lytip"}
|
||||
"Africa:Tunis"{"tntun"}
|
||||
"Africa:Windhoek"{"nawdh"}
|
||||
"America:Adak"{"usadk"}
|
||||
"America:Anchorage"{"usanc"}
|
||||
"America:Anguilla"{"aiaxa"}
|
||||
"America:Antigua"{"aganu"}
|
||||
"America:Araguaina"{"braux"}
|
||||
"America:Argentina:La_Rioja"{"arirj"}
|
||||
"America:Argentina:Rio_Gallegos"{"arrgl"}
|
||||
"America:Argentina:Salta"{"arsla"}
|
||||
"America:Argentina:San_Juan"{"aruaq"}
|
||||
"America:Argentina:San_Luis"{"arluq"}
|
||||
"America:Argentina:Tucuman"{"artuc"}
|
||||
"America:Argentina:Ushuaia"{"arush"}
|
||||
"America:Aruba"{"awaua"}
|
||||
"America:Asuncion"{"pyasu"}
|
||||
"America:Bahia"{"brssa"}
|
||||
"America:Bahia_Banderas"{"mxpvr"}
|
||||
"America:Barbados"{"bbbgi"}
|
||||
"America:Belem"{"brbel"}
|
||||
"America:Belize"{"bzbze"}
|
||||
"America:Blanc-Sablon"{"caybx"}
|
||||
"America:Boa_Vista"{"brbvb"}
|
||||
"America:Bogota"{"cobog"}
|
||||
"America:Boise"{"usboi"}
|
||||
"America:Buenos_Aires"{"arbue"}
|
||||
"America:Cambridge_Bay"{"caycb"}
|
||||
"America:Campo_Grande"{"brcgr"}
|
||||
"America:Cancun"{"mxcun"}
|
||||
"America:Caracas"{"veccs"}
|
||||
"America:Catamarca"{"arctc"}
|
||||
"America:Cayenne"{"gfcay"}
|
||||
"America:Cayman"{"kygec"}
|
||||
"America:Chicago"{"uschi"}
|
||||
"America:Chihuahua"{"mxchi"}
|
||||
"America:Coral_Harbour"{"cayzs"}
|
||||
"America:Cordoba"{"arcor"}
|
||||
"America:Costa_Rica"{"crsjo"}
|
||||
"America:Creston"{"cacfq"}
|
||||
"America:Cuiaba"{"brcgb"}
|
||||
"America:Curacao"{"ancur"}
|
||||
"America:Danmarkshavn"{"gldkshvn"}
|
||||
"America:Dawson"{"cayda"}
|
||||
"America:Dawson_Creek"{"caydq"}
|
||||
"America:Denver"{"usden"}
|
||||
"America:Detroit"{"usdet"}
|
||||
"America:Dominica"{"dmdom"}
|
||||
"America:Edmonton"{"caedm"}
|
||||
"America:Eirunepe"{"brern"}
|
||||
"America:El_Salvador"{"svsal"}
|
||||
"America:Fortaleza"{"brfor"}
|
||||
"America:Glace_Bay"{"caglb"}
|
||||
"America:Godthab"{"glgoh"}
|
||||
"America:Goose_Bay"{"cagoo"}
|
||||
"America:Grand_Turk"{"tcgdt"}
|
||||
"America:Grenada"{"gdgnd"}
|
||||
"America:Guadeloupe"{"gpbbr"}
|
||||
"America:Guatemala"{"gtgua"}
|
||||
"America:Guayaquil"{"ecgye"}
|
||||
"America:Guyana"{"gygeo"}
|
||||
"America:Halifax"{"cahal"}
|
||||
"America:Havana"{"cuhav"}
|
||||
"America:Hermosillo"{"mxhmo"}
|
||||
"America:Indiana:Knox"{"usknx"}
|
||||
"America:Indiana:Marengo"{"usaeg"}
|
||||
"America:Indiana:Petersburg"{"uswsq"}
|
||||
"America:Indiana:Tell_City"{"ustel"}
|
||||
"America:Indiana:Vevay"{"usinvev"}
|
||||
"America:Indiana:Vincennes"{"usoea"}
|
||||
"America:Indiana:Winamac"{"uswlz"}
|
||||
"America:Indianapolis"{"usind"}
|
||||
"America:Inuvik"{"cayev"}
|
||||
"America:Iqaluit"{"caiql"}
|
||||
"America:Jamaica"{"jmkin"}
|
||||
"America:Jujuy"{"arjuj"}
|
||||
"America:Juneau"{"usjnu"}
|
||||
"America:Kentucky:Monticello"{"usmoc"}
|
||||
"America:Kralendijk"{"bqkra"}
|
||||
"America:La_Paz"{"bolpb"}
|
||||
"America:Lima"{"pelim"}
|
||||
"America:Los_Angeles"{"uslax"}
|
||||
"America:Louisville"{"uslui"}
|
||||
"America:Lower_Princes"{"sxphi"}
|
||||
"America:Maceio"{"brmcz"}
|
||||
"America:Managua"{"nimga"}
|
||||
"America:Manaus"{"brmao"}
|
||||
"America:Marigot"{"gpmsb"}
|
||||
"America:Martinique"{"mqfdf"}
|
||||
"America:Matamoros"{"mxmam"}
|
||||
"America:Mazatlan"{"mxmzt"}
|
||||
"America:Mendoza"{"armdz"}
|
||||
"America:Menominee"{"usmnm"}
|
||||
"America:Merida"{"mxmid"}
|
||||
"America:Metlakatla"{"usmtm"}
|
||||
"America:Mexico_City"{"mxmex"}
|
||||
"America:Miquelon"{"pmmqc"}
|
||||
"America:Moncton"{"camon"}
|
||||
"America:Monterrey"{"mxmty"}
|
||||
"America:Montevideo"{"uymvd"}
|
||||
"America:Montreal"{"camtr"}
|
||||
"America:Montserrat"{"msmni"}
|
||||
"America:Nassau"{"bsnas"}
|
||||
"America:New_York"{"usnyc"}
|
||||
"America:Nipigon"{"canpg"}
|
||||
"America:Nome"{"usome"}
|
||||
"America:Noronha"{"brfen"}
|
||||
"America:North_Dakota:Beulah"{"usxul"}
|
||||
"America:North_Dakota:Center"{"usndcnt"}
|
||||
"America:North_Dakota:New_Salem"{"usndnsl"}
|
||||
"America:Ojinaga"{"mxoji"}
|
||||
"America:Panama"{"papty"}
|
||||
"America:Pangnirtung"{"capnt"}
|
||||
"America:Paramaribo"{"srpbm"}
|
||||
"America:Phoenix"{"usphx"}
|
||||
"America:Port-au-Prince"{"htpap"}
|
||||
"America:Port_of_Spain"{"ttpos"}
|
||||
"America:Porto_Velho"{"brpvh"}
|
||||
"America:Puerto_Rico"{"prsju"}
|
||||
"America:Rainy_River"{"caffs"}
|
||||
"America:Rankin_Inlet"{"cayek"}
|
||||
"America:Recife"{"brrec"}
|
||||
"America:Regina"{"careg"}
|
||||
"America:Resolute"{"careb"}
|
||||
"America:Rio_Branco"{"brrbr"}
|
||||
"America:Santa_Isabel"{"mxstis"}
|
||||
"America:Santarem"{"brstm"}
|
||||
"America:Santiago"{"clscl"}
|
||||
"America:Santo_Domingo"{"dosdq"}
|
||||
"America:Sao_Paulo"{"brsao"}
|
||||
"America:Scoresbysund"{"globy"}
|
||||
"America:Sitka"{"ussit"}
|
||||
"America:St_Barthelemy"{"gpsbh"}
|
||||
"America:St_Johns"{"casjf"}
|
||||
"America:St_Kitts"{"knbas"}
|
||||
"America:St_Lucia"{"lccas"}
|
||||
"America:St_Thomas"{"vistt"}
|
||||
"America:St_Vincent"{"vcsvd"}
|
||||
"America:Swift_Current"{"cayyn"}
|
||||
"America:Tegucigalpa"{"hntgu"}
|
||||
"America:Thule"{"glthu"}
|
||||
"America:Thunder_Bay"{"cathu"}
|
||||
"America:Tijuana"{"mxtij"}
|
||||
"America:Toronto"{"cator"}
|
||||
"America:Tortola"{"vgtov"}
|
||||
"America:Vancouver"{"cavan"}
|
||||
"America:Whitehorse"{"cayxy"}
|
||||
"America:Winnipeg"{"cawnp"}
|
||||
"America:Yakutat"{"usyak"}
|
||||
"America:Yellowknife"{"cayzf"}
|
||||
"Antarctica:Casey"{"aqcas"}
|
||||
"Antarctica:Davis"{"aqdav"}
|
||||
"Antarctica:DumontDUrville"{"aqddu"}
|
||||
"Antarctica:Macquarie"{"aumqi"}
|
||||
"Antarctica:Mawson"{"aqmaw"}
|
||||
"Antarctica:McMurdo"{"aqmcm"}
|
||||
"Antarctica:Palmer"{"aqplm"}
|
||||
"Antarctica:Rothera"{"aqrot"}
|
||||
"Antarctica:Syowa"{"aqsyw"}
|
||||
"Antarctica:Troll"{"aqtrl"}
|
||||
"Antarctica:Vostok"{"aqvos"}
|
||||
"Arctic:Longyearbyen"{"sjlyr"}
|
||||
"Asia:Aden"{"yeade"}
|
||||
"Asia:Almaty"{"kzala"}
|
||||
"Asia:Amman"{"joamm"}
|
||||
"Asia:Anadyr"{"rudyr"}
|
||||
"Asia:Aqtau"{"kzaau"}
|
||||
"Asia:Aqtobe"{"kzakx"}
|
||||
"Asia:Ashgabat"{"tmasb"}
|
||||
"Asia:Baghdad"{"iqbgw"}
|
||||
"Asia:Bahrain"{"bhbah"}
|
||||
"Asia:Baku"{"azbak"}
|
||||
"Asia:Bangkok"{"thbkk"}
|
||||
"Asia:Beirut"{"lbbey"}
|
||||
"Asia:Bishkek"{"kgfru"}
|
||||
"Asia:Brunei"{"bnbwn"}
|
||||
"Asia:Calcutta"{"inccu"}
|
||||
"Asia:Chita"{"ruchita"}
|
||||
"Asia:Choibalsan"{"mncoq"}
|
||||
"Asia:Colombo"{"lkcmb"}
|
||||
"Asia:Damascus"{"sydam"}
|
||||
"Asia:Dhaka"{"bddac"}
|
||||
"Asia:Dili"{"tldil"}
|
||||
"Asia:Dubai"{"aedxb"}
|
||||
"Asia:Dushanbe"{"tjdyu"}
|
||||
"Asia:Gaza"{"gaza"}
|
||||
"Asia:Hebron"{"hebron"}
|
||||
"Asia:Hong_Kong"{"hkhkg"}
|
||||
"Asia:Hovd"{"mnhvd"}
|
||||
"Asia:Irkutsk"{"ruikt"}
|
||||
"Asia:Jakarta"{"idjkt"}
|
||||
"Asia:Jayapura"{"iddjj"}
|
||||
"Asia:Jerusalem"{"jeruslm"}
|
||||
"Asia:Kabul"{"afkbl"}
|
||||
"Asia:Kamchatka"{"rupkc"}
|
||||
"Asia:Karachi"{"pkkhi"}
|
||||
"Asia:Katmandu"{"npktm"}
|
||||
"Asia:Khandyga"{"rukhndg"}
|
||||
"Asia:Krasnoyarsk"{"rukra"}
|
||||
"Asia:Kuala_Lumpur"{"mykul"}
|
||||
"Asia:Kuching"{"mykch"}
|
||||
"Asia:Kuwait"{"kwkwi"}
|
||||
"Asia:Macau"{"momfm"}
|
||||
"Asia:Magadan"{"rugdx"}
|
||||
"Asia:Makassar"{"idmak"}
|
||||
"Asia:Manila"{"phmnl"}
|
||||
"Asia:Muscat"{"ommct"}
|
||||
"Asia:Nicosia"{"cynic"}
|
||||
"Asia:Novokuznetsk"{"runoz"}
|
||||
"Asia:Novosibirsk"{"ruovb"}
|
||||
"Asia:Omsk"{"ruoms"}
|
||||
"Asia:Oral"{"kzura"}
|
||||
"Asia:Phnom_Penh"{"khpnh"}
|
||||
"Asia:Pontianak"{"idpnk"}
|
||||
"Asia:Pyongyang"{"kpfnj"}
|
||||
"Asia:Qatar"{"qadoh"}
|
||||
"Asia:Qyzylorda"{"kzkzo"}
|
||||
"Asia:Rangoon"{"mmrgn"}
|
||||
"Asia:Riyadh"{"saruh"}
|
||||
"Asia:Saigon"{"vnsgn"}
|
||||
"Asia:Sakhalin"{"ruuus"}
|
||||
"Asia:Samarkand"{"uzskd"}
|
||||
"Asia:Seoul"{"krsel"}
|
||||
"Asia:Shanghai"{"cnsha"}
|
||||
"Asia:Singapore"{"sgsin"}
|
||||
"Asia:Srednekolymsk"{"rusred"}
|
||||
"Asia:Taipei"{"twtpe"}
|
||||
"Asia:Tashkent"{"uztas"}
|
||||
"Asia:Tbilisi"{"getbs"}
|
||||
"Asia:Tehran"{"irthr"}
|
||||
"Asia:Thimphu"{"btthi"}
|
||||
"Asia:Tokyo"{"jptyo"}
|
||||
"Asia:Ulaanbaatar"{"mnuln"}
|
||||
"Asia:Urumqi"{"cnurc"}
|
||||
"Asia:Ust-Nera"{"ruunera"}
|
||||
"Asia:Vientiane"{"lavte"}
|
||||
"Asia:Vladivostok"{"ruvvo"}
|
||||
"Asia:Yakutsk"{"ruyks"}
|
||||
"Asia:Yekaterinburg"{"ruyek"}
|
||||
"Asia:Yerevan"{"amevn"}
|
||||
"Atlantic:Azores"{"ptpdl"}
|
||||
"Atlantic:Bermuda"{"bmbda"}
|
||||
"Atlantic:Canary"{"eslpa"}
|
||||
"Atlantic:Cape_Verde"{"cvrai"}
|
||||
"Atlantic:Faeroe"{"fotho"}
|
||||
"Atlantic:Madeira"{"ptfnc"}
|
||||
"Atlantic:Reykjavik"{"isrey"}
|
||||
"Atlantic:South_Georgia"{"gsgrv"}
|
||||
"Atlantic:St_Helena"{"shshn"}
|
||||
"Atlantic:Stanley"{"fkpsy"}
|
||||
"Australia:Adelaide"{"auadl"}
|
||||
"Australia:Brisbane"{"aubne"}
|
||||
"Australia:Broken_Hill"{"aubhq"}
|
||||
"Australia:Currie"{"aukns"}
|
||||
"Australia:Darwin"{"audrw"}
|
||||
"Australia:Eucla"{"aueuc"}
|
||||
"Australia:Hobart"{"auhba"}
|
||||
"Australia:Lindeman"{"auldc"}
|
||||
"Australia:Lord_Howe"{"auldh"}
|
||||
"Australia:Melbourne"{"aumel"}
|
||||
"Australia:Perth"{"auper"}
|
||||
"Australia:Sydney"{"ausyd"}
|
||||
"Etc:GMT"{"utc"}
|
||||
"Etc:GMT+1"{"utcw01"}
|
||||
"Etc:GMT+10"{"utcw10"}
|
||||
"Etc:GMT+11"{"utcw11"}
|
||||
"Etc:GMT+12"{"utcw12"}
|
||||
"Etc:GMT+2"{"utcw02"}
|
||||
"Etc:GMT+3"{"utcw03"}
|
||||
"Etc:GMT+4"{"utcw04"}
|
||||
"Etc:GMT+5"{"utcw05"}
|
||||
"Etc:GMT+6"{"utcw06"}
|
||||
"Etc:GMT+7"{"utcw07"}
|
||||
"Etc:GMT+8"{"utcw08"}
|
||||
"Etc:GMT+9"{"utcw09"}
|
||||
"Etc:GMT-1"{"utce01"}
|
||||
"Etc:GMT-10"{"utce10"}
|
||||
"Etc:GMT-11"{"utce11"}
|
||||
"Etc:GMT-12"{"utce12"}
|
||||
"Etc:GMT-13"{"utce13"}
|
||||
"Etc:GMT-14"{"utce14"}
|
||||
"Etc:GMT-2"{"utce02"}
|
||||
"Etc:GMT-3"{"utce03"}
|
||||
"Etc:GMT-4"{"utce04"}
|
||||
"Etc:GMT-5"{"utce05"}
|
||||
"Etc:GMT-6"{"utce06"}
|
||||
"Etc:GMT-7"{"utce07"}
|
||||
"Etc:GMT-8"{"utce08"}
|
||||
"Etc:GMT-9"{"utce09"}
|
||||
"Etc:Unknown"{"unk"}
|
||||
"Europe:Amsterdam"{"nlams"}
|
||||
"Europe:Andorra"{"adalv"}
|
||||
"Europe:Athens"{"grath"}
|
||||
"Europe:Belgrade"{"rsbeg"}
|
||||
"Europe:Berlin"{"deber"}
|
||||
"Europe:Bratislava"{"skbts"}
|
||||
"Europe:Brussels"{"bebru"}
|
||||
"Europe:Bucharest"{"robuh"}
|
||||
"Europe:Budapest"{"hubud"}
|
||||
"Europe:Busingen"{"debsngn"}
|
||||
"Europe:Chisinau"{"mdkiv"}
|
||||
"Europe:Copenhagen"{"dkcph"}
|
||||
"Europe:Dublin"{"iedub"}
|
||||
"Europe:Gibraltar"{"gigib"}
|
||||
"Europe:Guernsey"{"gggci"}
|
||||
"Europe:Helsinki"{"fihel"}
|
||||
"Europe:Isle_of_Man"{"imdgs"}
|
||||
"Europe:Istanbul"{"trist"}
|
||||
"Europe:Jersey"{"jesth"}
|
||||
"Europe:Kaliningrad"{"rukgd"}
|
||||
"Europe:Kiev"{"uaiev"}
|
||||
"Europe:Lisbon"{"ptlis"}
|
||||
"Europe:Ljubljana"{"silju"}
|
||||
"Europe:London"{"gblon"}
|
||||
"Europe:Luxembourg"{"lulux"}
|
||||
"Europe:Madrid"{"esmad"}
|
||||
"Europe:Malta"{"mtmla"}
|
||||
"Europe:Mariehamn"{"fimhq"}
|
||||
"Europe:Minsk"{"bymsq"}
|
||||
"Europe:Monaco"{"mcmon"}
|
||||
"Europe:Moscow"{"rumow"}
|
||||
"Europe:Oslo"{"noosl"}
|
||||
"Europe:Paris"{"frpar"}
|
||||
"Europe:Podgorica"{"metgd"}
|
||||
"Europe:Prague"{"czprg"}
|
||||
"Europe:Riga"{"lvrix"}
|
||||
"Europe:Rome"{"itrom"}
|
||||
"Europe:Samara"{"rukuf"}
|
||||
"Europe:San_Marino"{"smsai"}
|
||||
"Europe:Sarajevo"{"basjj"}
|
||||
"Europe:Simferopol"{"uasip"}
|
||||
"Europe:Skopje"{"mkskp"}
|
||||
"Europe:Sofia"{"bgsof"}
|
||||
"Europe:Stockholm"{"sesto"}
|
||||
"Europe:Tallinn"{"eetll"}
|
||||
"Europe:Tirane"{"altia"}
|
||||
"Europe:Uzhgorod"{"uauzh"}
|
||||
"Europe:Vaduz"{"livdz"}
|
||||
"Europe:Vatican"{"vavat"}
|
||||
"Europe:Vienna"{"atvie"}
|
||||
"Europe:Vilnius"{"ltvno"}
|
||||
"Europe:Volgograd"{"ruvog"}
|
||||
"Europe:Warsaw"{"plwaw"}
|
||||
"Europe:Zagreb"{"hrzag"}
|
||||
"Europe:Zaporozhye"{"uaozh"}
|
||||
"Europe:Zurich"{"chzrh"}
|
||||
"Indian:Antananarivo"{"mgtnr"}
|
||||
"Indian:Chagos"{"iodga"}
|
||||
"Indian:Christmas"{"cxxch"}
|
||||
"Indian:Cocos"{"cccck"}
|
||||
"Indian:Comoro"{"kmyva"}
|
||||
"Indian:Kerguelen"{"tfpfr"}
|
||||
"Indian:Mahe"{"scmaw"}
|
||||
"Indian:Maldives"{"mvmle"}
|
||||
"Indian:Mauritius"{"muplu"}
|
||||
"Indian:Mayotte"{"ytmam"}
|
||||
"Indian:Reunion"{"rereu"}
|
||||
"Pacific:Apia"{"wsapw"}
|
||||
"Pacific:Auckland"{"nzakl"}
|
||||
"Pacific:Bougainville"{"pgraw"}
|
||||
"Pacific:Chatham"{"nzcht"}
|
||||
"Pacific:Easter"{"clipc"}
|
||||
"Pacific:Efate"{"vuvli"}
|
||||
"Pacific:Enderbury"{"kipho"}
|
||||
"Pacific:Fakaofo"{"tkfko"}
|
||||
"Pacific:Fiji"{"fjsuv"}
|
||||
"Pacific:Funafuti"{"tvfun"}
|
||||
"Pacific:Galapagos"{"ecgps"}
|
||||
"Pacific:Gambier"{"pfgmr"}
|
||||
"Pacific:Guadalcanal"{"sbhir"}
|
||||
"Pacific:Guam"{"gugum"}
|
||||
"Pacific:Honolulu"{"ushnl"}
|
||||
"Pacific:Johnston"{"umjon"}
|
||||
"Pacific:Kiritimati"{"kicxi"}
|
||||
"Pacific:Kosrae"{"fmksa"}
|
||||
"Pacific:Kwajalein"{"mhkwa"}
|
||||
"Pacific:Majuro"{"mhmaj"}
|
||||
"Pacific:Marquesas"{"pfnhv"}
|
||||
"Pacific:Midway"{"ummdy"}
|
||||
"Pacific:Nauru"{"nrinu"}
|
||||
"Pacific:Niue"{"nuiue"}
|
||||
"Pacific:Norfolk"{"nfnlk"}
|
||||
"Pacific:Noumea"{"ncnou"}
|
||||
"Pacific:Pago_Pago"{"asppg"}
|
||||
"Pacific:Palau"{"pwror"}
|
||||
"Pacific:Pitcairn"{"pnpcn"}
|
||||
"Pacific:Ponape"{"fmpni"}
|
||||
"Pacific:Port_Moresby"{"pgpom"}
|
||||
"Pacific:Rarotonga"{"ckrar"}
|
||||
"Pacific:Saipan"{"mpspn"}
|
||||
"Pacific:Tahiti"{"pfppt"}
|
||||
"Pacific:Tarawa"{"kitrw"}
|
||||
"Pacific:Tongatapu"{"totbu"}
|
||||
"Pacific:Truk"{"fmtkk"}
|
||||
"Pacific:Wake"{"umawk"}
|
||||
"Pacific:Wallis"{"wfmau"}
|
||||
CST6CDT{"cst6cdt"}
|
||||
EST5EDT{"est5edt"}
|
||||
MST7MDT{"mst7mdt"}
|
||||
PST8PDT{"pst8pdt"}
|
||||
}
|
||||
}
|
||||
}
|
701
intl/tzdata/2015f/windowsZones.txt
Normal file
701
intl/tzdata/2015f/windowsZones.txt
Normal file
@ -0,0 +1,701 @@
|
||||
// ***************************************************************************
|
||||
// *
|
||||
// * Copyright (C) 2015 International Business Machines
|
||||
// * Corporation and others. All Rights Reserved.
|
||||
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
|
||||
// * Source File: <path>/windowsZones.xml
|
||||
// *
|
||||
// ***************************************************************************
|
||||
windowsZones:table(nofallback){
|
||||
mapTimezones{
|
||||
"AUS Central Standard Time"{
|
||||
001{"Australia/Darwin"}
|
||||
AU{"Australia/Darwin"}
|
||||
}
|
||||
"AUS Eastern Standard Time"{
|
||||
001{"Australia/Sydney"}
|
||||
AU{"Australia/Sydney Australia/Melbourne"}
|
||||
}
|
||||
"Afghanistan Standard Time"{
|
||||
001{"Asia/Kabul"}
|
||||
AF{"Asia/Kabul"}
|
||||
}
|
||||
"Alaskan Standard Time"{
|
||||
001{"America/Anchorage"}
|
||||
US{
|
||||
"America/Anchorage America/Juneau America/Nome America/Sitka America/"
|
||||
"Yakutat"
|
||||
}
|
||||
}
|
||||
"Arab Standard Time"{
|
||||
001{"Asia/Riyadh"}
|
||||
BH{"Asia/Bahrain"}
|
||||
KW{"Asia/Kuwait"}
|
||||
QA{"Asia/Qatar"}
|
||||
SA{"Asia/Riyadh"}
|
||||
YE{"Asia/Aden"}
|
||||
}
|
||||
"Arabian Standard Time"{
|
||||
001{"Asia/Dubai"}
|
||||
AE{"Asia/Dubai"}
|
||||
OM{"Asia/Muscat"}
|
||||
ZZ{"Etc/GMT-4"}
|
||||
}
|
||||
"Arabic Standard Time"{
|
||||
001{"Asia/Baghdad"}
|
||||
IQ{"Asia/Baghdad"}
|
||||
}
|
||||
"Argentina Standard Time"{
|
||||
001{"America/Buenos_Aires"}
|
||||
AR{
|
||||
"America/Buenos_Aires America/Argentina/La_Rioja America/Argentina/Ri"
|
||||
"o_Gallegos America/Argentina/Salta America/Argentina/San_Juan Americ"
|
||||
"a/Argentina/San_Luis America/Argentina/Tucuman America/Argentina/Ush"
|
||||
"uaia America/Catamarca America/Cordoba America/Jujuy America/Mendoza"
|
||||
}
|
||||
}
|
||||
"Atlantic Standard Time"{
|
||||
001{"America/Halifax"}
|
||||
BM{"Atlantic/Bermuda"}
|
||||
CA{"America/Halifax America/Glace_Bay America/Goose_Bay America/Moncton"}
|
||||
GL{"America/Thule"}
|
||||
}
|
||||
"Azerbaijan Standard Time"{
|
||||
001{"Asia/Baku"}
|
||||
AZ{"Asia/Baku"}
|
||||
}
|
||||
"Azores Standard Time"{
|
||||
001{"Atlantic/Azores"}
|
||||
GL{"America/Scoresbysund"}
|
||||
PT{"Atlantic/Azores"}
|
||||
}
|
||||
"Bahia Standard Time"{
|
||||
001{"America/Bahia"}
|
||||
BR{"America/Bahia"}
|
||||
}
|
||||
"Bangladesh Standard Time"{
|
||||
001{"Asia/Dhaka"}
|
||||
BD{"Asia/Dhaka"}
|
||||
BT{"Asia/Thimphu"}
|
||||
}
|
||||
"Belarus Standard Time"{
|
||||
001{"Europe/Minsk"}
|
||||
BY{"Europe/Minsk"}
|
||||
}
|
||||
"Canada Central Standard Time"{
|
||||
001{"America/Regina"}
|
||||
CA{"America/Regina America/Swift_Current"}
|
||||
}
|
||||
"Cape Verde Standard Time"{
|
||||
001{"Atlantic/Cape_Verde"}
|
||||
CV{"Atlantic/Cape_Verde"}
|
||||
ZZ{"Etc/GMT+1"}
|
||||
}
|
||||
"Caucasus Standard Time"{
|
||||
001{"Asia/Yerevan"}
|
||||
AM{"Asia/Yerevan"}
|
||||
}
|
||||
"Cen. Australia Standard Time"{
|
||||
001{"Australia/Adelaide"}
|
||||
AU{"Australia/Adelaide Australia/Broken_Hill"}
|
||||
}
|
||||
"Central America Standard Time"{
|
||||
001{"America/Guatemala"}
|
||||
BZ{"America/Belize"}
|
||||
CR{"America/Costa_Rica"}
|
||||
EC{"Pacific/Galapagos"}
|
||||
GT{"America/Guatemala"}
|
||||
HN{"America/Tegucigalpa"}
|
||||
NI{"America/Managua"}
|
||||
SV{"America/El_Salvador"}
|
||||
ZZ{"Etc/GMT+6"}
|
||||
}
|
||||
"Central Asia Standard Time"{
|
||||
001{"Asia/Almaty"}
|
||||
AQ{"Antarctica/Vostok"}
|
||||
CN{"Asia/Urumqi"}
|
||||
IO{"Indian/Chagos"}
|
||||
KG{"Asia/Bishkek"}
|
||||
KZ{"Asia/Almaty Asia/Qyzylorda"}
|
||||
ZZ{"Etc/GMT-6"}
|
||||
}
|
||||
"Central Brazilian Standard Time"{
|
||||
001{"America/Cuiaba"}
|
||||
BR{"America/Cuiaba America/Campo_Grande"}
|
||||
}
|
||||
"Central Europe Standard Time"{
|
||||
001{"Europe/Budapest"}
|
||||
AL{"Europe/Tirane"}
|
||||
CZ{"Europe/Prague"}
|
||||
HU{"Europe/Budapest"}
|
||||
ME{"Europe/Podgorica"}
|
||||
RS{"Europe/Belgrade"}
|
||||
SI{"Europe/Ljubljana"}
|
||||
SK{"Europe/Bratislava"}
|
||||
}
|
||||
"Central European Standard Time"{
|
||||
001{"Europe/Warsaw"}
|
||||
BA{"Europe/Sarajevo"}
|
||||
HR{"Europe/Zagreb"}
|
||||
MK{"Europe/Skopje"}
|
||||
PL{"Europe/Warsaw"}
|
||||
}
|
||||
"Central Pacific Standard Time"{
|
||||
001{"Pacific/Guadalcanal"}
|
||||
AU{"Antarctica/Macquarie"}
|
||||
FM{"Pacific/Ponape Pacific/Kosrae"}
|
||||
NC{"Pacific/Noumea"}
|
||||
PG{"Pacific/Bougainville"}
|
||||
SB{"Pacific/Guadalcanal"}
|
||||
VU{"Pacific/Efate"}
|
||||
ZZ{"Etc/GMT-11"}
|
||||
}
|
||||
"Central Standard Time (Mexico)"{
|
||||
001{"America/Mexico_City"}
|
||||
MX{
|
||||
"America/Mexico_City America/Bahia_Banderas America/Merida America/Mo"
|
||||
"nterrey"
|
||||
}
|
||||
}
|
||||
"Central Standard Time"{
|
||||
001{"America/Chicago"}
|
||||
CA{
|
||||
"America/Winnipeg America/Rainy_River America/Rankin_Inlet America/Re"
|
||||
"solute"
|
||||
}
|
||||
MX{"America/Matamoros"}
|
||||
US{
|
||||
"America/Chicago America/Indiana/Knox America/Indiana/Tell_City Ameri"
|
||||
"ca/Menominee America/North_Dakota/Beulah America/North_Dakota/Center"
|
||||
" America/North_Dakota/New_Salem"
|
||||
}
|
||||
ZZ{"CST6CDT"}
|
||||
}
|
||||
"China Standard Time"{
|
||||
001{"Asia/Shanghai"}
|
||||
CN{"Asia/Shanghai"}
|
||||
HK{"Asia/Hong_Kong"}
|
||||
MO{"Asia/Macau"}
|
||||
}
|
||||
"Dateline Standard Time"{
|
||||
001{"Etc/GMT+12"}
|
||||
ZZ{"Etc/GMT+12"}
|
||||
}
|
||||
"E. Africa Standard Time"{
|
||||
001{"Africa/Nairobi"}
|
||||
AQ{"Antarctica/Syowa"}
|
||||
DJ{"Africa/Djibouti"}
|
||||
ER{"Africa/Asmera"}
|
||||
ET{"Africa/Addis_Ababa"}
|
||||
KE{"Africa/Nairobi"}
|
||||
KM{"Indian/Comoro"}
|
||||
MG{"Indian/Antananarivo"}
|
||||
SD{"Africa/Khartoum"}
|
||||
SO{"Africa/Mogadishu"}
|
||||
SS{"Africa/Juba"}
|
||||
TZ{"Africa/Dar_es_Salaam"}
|
||||
UG{"Africa/Kampala"}
|
||||
YT{"Indian/Mayotte"}
|
||||
ZZ{"Etc/GMT-3"}
|
||||
}
|
||||
"E. Australia Standard Time"{
|
||||
001{"Australia/Brisbane"}
|
||||
AU{"Australia/Brisbane Australia/Lindeman"}
|
||||
}
|
||||
"E. South America Standard Time"{
|
||||
001{"America/Sao_Paulo"}
|
||||
BR{"America/Sao_Paulo"}
|
||||
}
|
||||
"Eastern Standard Time (Mexico)"{
|
||||
001{"America/Cancun"}
|
||||
MX{"America/Cancun"}
|
||||
}
|
||||
"Eastern Standard Time"{
|
||||
001{"America/New_York"}
|
||||
BS{"America/Nassau"}
|
||||
CA{
|
||||
"America/Toronto America/Iqaluit America/Montreal America/Nipigon Ame"
|
||||
"rica/Pangnirtung America/Thunder_Bay"
|
||||
}
|
||||
CU{"America/Havana"}
|
||||
HT{"America/Port-au-Prince"}
|
||||
US{
|
||||
"America/New_York America/Detroit America/Indiana/Petersburg America/"
|
||||
"Indiana/Vincennes America/Indiana/Winamac America/Kentucky/Monticell"
|
||||
"o America/Louisville"
|
||||
}
|
||||
ZZ{"EST5EDT"}
|
||||
}
|
||||
"Egypt Standard Time"{
|
||||
001{"Africa/Cairo"}
|
||||
EG{"Africa/Cairo"}
|
||||
}
|
||||
"Ekaterinburg Standard Time"{
|
||||
001{"Asia/Yekaterinburg"}
|
||||
RU{"Asia/Yekaterinburg"}
|
||||
}
|
||||
"FLE Standard Time"{
|
||||
001{"Europe/Kiev"}
|
||||
AX{"Europe/Mariehamn"}
|
||||
BG{"Europe/Sofia"}
|
||||
EE{"Europe/Tallinn"}
|
||||
FI{"Europe/Helsinki"}
|
||||
LT{"Europe/Vilnius"}
|
||||
LV{"Europe/Riga"}
|
||||
UA{"Europe/Kiev Europe/Uzhgorod Europe/Zaporozhye"}
|
||||
}
|
||||
"Fiji Standard Time"{
|
||||
001{"Pacific/Fiji"}
|
||||
FJ{"Pacific/Fiji"}
|
||||
}
|
||||
"GMT Standard Time"{
|
||||
001{"Europe/London"}
|
||||
ES{"Atlantic/Canary"}
|
||||
FO{"Atlantic/Faeroe"}
|
||||
GB{"Europe/London"}
|
||||
GG{"Europe/Guernsey"}
|
||||
IE{"Europe/Dublin"}
|
||||
IM{"Europe/Isle_of_Man"}
|
||||
JE{"Europe/Jersey"}
|
||||
PT{"Europe/Lisbon Atlantic/Madeira"}
|
||||
}
|
||||
"GTB Standard Time"{
|
||||
001{"Europe/Bucharest"}
|
||||
CY{"Asia/Nicosia"}
|
||||
GR{"Europe/Athens"}
|
||||
MD{"Europe/Chisinau"}
|
||||
RO{"Europe/Bucharest"}
|
||||
}
|
||||
"Georgian Standard Time"{
|
||||
001{"Asia/Tbilisi"}
|
||||
GE{"Asia/Tbilisi"}
|
||||
}
|
||||
"Greenland Standard Time"{
|
||||
001{"America/Godthab"}
|
||||
GL{"America/Godthab"}
|
||||
}
|
||||
"Greenwich Standard Time"{
|
||||
001{"Atlantic/Reykjavik"}
|
||||
BF{"Africa/Ouagadougou"}
|
||||
CI{"Africa/Abidjan"}
|
||||
GH{"Africa/Accra"}
|
||||
GM{"Africa/Banjul"}
|
||||
GN{"Africa/Conakry"}
|
||||
GW{"Africa/Bissau"}
|
||||
IS{"Atlantic/Reykjavik"}
|
||||
LR{"Africa/Monrovia"}
|
||||
ML{"Africa/Bamako"}
|
||||
MR{"Africa/Nouakchott"}
|
||||
SH{"Atlantic/St_Helena"}
|
||||
SL{"Africa/Freetown"}
|
||||
SN{"Africa/Dakar"}
|
||||
ST{"Africa/Sao_Tome"}
|
||||
TG{"Africa/Lome"}
|
||||
}
|
||||
"Hawaiian Standard Time"{
|
||||
001{"Pacific/Honolulu"}
|
||||
CK{"Pacific/Rarotonga"}
|
||||
PF{"Pacific/Tahiti"}
|
||||
UM{"Pacific/Johnston"}
|
||||
US{"Pacific/Honolulu"}
|
||||
ZZ{"Etc/GMT+10"}
|
||||
}
|
||||
"India Standard Time"{
|
||||
001{"Asia/Calcutta"}
|
||||
IN{"Asia/Calcutta"}
|
||||
}
|
||||
"Iran Standard Time"{
|
||||
001{"Asia/Tehran"}
|
||||
IR{"Asia/Tehran"}
|
||||
}
|
||||
"Israel Standard Time"{
|
||||
001{"Asia/Jerusalem"}
|
||||
IL{"Asia/Jerusalem"}
|
||||
}
|
||||
"Jordan Standard Time"{
|
||||
001{"Asia/Amman"}
|
||||
JO{"Asia/Amman"}
|
||||
}
|
||||
"Kaliningrad Standard Time"{
|
||||
001{"Europe/Kaliningrad"}
|
||||
RU{"Europe/Kaliningrad"}
|
||||
}
|
||||
"Korea Standard Time"{
|
||||
001{"Asia/Seoul"}
|
||||
KR{"Asia/Seoul"}
|
||||
}
|
||||
"Libya Standard Time"{
|
||||
001{"Africa/Tripoli"}
|
||||
LY{"Africa/Tripoli"}
|
||||
}
|
||||
"Line Islands Standard Time"{
|
||||
001{"Pacific/Kiritimati"}
|
||||
KI{"Pacific/Kiritimati"}
|
||||
ZZ{"Etc/GMT-14"}
|
||||
}
|
||||
"Magadan Standard Time"{
|
||||
001{"Asia/Magadan"}
|
||||
RU{"Asia/Magadan"}
|
||||
}
|
||||
"Mauritius Standard Time"{
|
||||
001{"Indian/Mauritius"}
|
||||
MU{"Indian/Mauritius"}
|
||||
RE{"Indian/Reunion"}
|
||||
SC{"Indian/Mahe"}
|
||||
}
|
||||
"Middle East Standard Time"{
|
||||
001{"Asia/Beirut"}
|
||||
LB{"Asia/Beirut"}
|
||||
}
|
||||
"Montevideo Standard Time"{
|
||||
001{"America/Montevideo"}
|
||||
UY{"America/Montevideo"}
|
||||
}
|
||||
"Morocco Standard Time"{
|
||||
001{"Africa/Casablanca"}
|
||||
EH{"Africa/El_Aaiun"}
|
||||
MA{"Africa/Casablanca"}
|
||||
}
|
||||
"Mountain Standard Time (Mexico)"{
|
||||
001{"America/Chihuahua"}
|
||||
MX{"America/Chihuahua America/Mazatlan"}
|
||||
}
|
||||
"Mountain Standard Time"{
|
||||
001{"America/Denver"}
|
||||
CA{
|
||||
"America/Edmonton America/Cambridge_Bay America/Inuvik America/Yellow"
|
||||
"knife"
|
||||
}
|
||||
MX{"America/Ojinaga"}
|
||||
US{"America/Denver America/Boise"}
|
||||
ZZ{"MST7MDT"}
|
||||
}
|
||||
"Myanmar Standard Time"{
|
||||
001{"Asia/Rangoon"}
|
||||
CC{"Indian/Cocos"}
|
||||
MM{"Asia/Rangoon"}
|
||||
}
|
||||
"N. Central Asia Standard Time"{
|
||||
001{"Asia/Novosibirsk"}
|
||||
RU{"Asia/Novosibirsk Asia/Omsk"}
|
||||
}
|
||||
"Namibia Standard Time"{
|
||||
001{"Africa/Windhoek"}
|
||||
NA{"Africa/Windhoek"}
|
||||
}
|
||||
"Nepal Standard Time"{
|
||||
001{"Asia/Katmandu"}
|
||||
NP{"Asia/Katmandu"}
|
||||
}
|
||||
"New Zealand Standard Time"{
|
||||
001{"Pacific/Auckland"}
|
||||
AQ{"Antarctica/McMurdo"}
|
||||
NZ{"Pacific/Auckland"}
|
||||
}
|
||||
"Newfoundland Standard Time"{
|
||||
001{"America/St_Johns"}
|
||||
CA{"America/St_Johns"}
|
||||
}
|
||||
"North Asia East Standard Time"{
|
||||
001{"Asia/Irkutsk"}
|
||||
RU{"Asia/Irkutsk Asia/Chita"}
|
||||
}
|
||||
"North Asia Standard Time"{
|
||||
001{"Asia/Krasnoyarsk"}
|
||||
RU{"Asia/Krasnoyarsk Asia/Novokuznetsk"}
|
||||
}
|
||||
"Pacific SA Standard Time"{
|
||||
001{"America/Santiago"}
|
||||
AQ{"Antarctica/Palmer"}
|
||||
CL{"America/Santiago"}
|
||||
}
|
||||
"Pacific Standard Time (Mexico)"{
|
||||
001{"America/Santa_Isabel"}
|
||||
MX{"America/Santa_Isabel"}
|
||||
}
|
||||
"Pacific Standard Time"{
|
||||
001{"America/Los_Angeles"}
|
||||
CA{"America/Vancouver America/Dawson America/Whitehorse"}
|
||||
MX{"America/Tijuana"}
|
||||
US{"America/Los_Angeles"}
|
||||
ZZ{"PST8PDT"}
|
||||
}
|
||||
"Pakistan Standard Time"{
|
||||
001{"Asia/Karachi"}
|
||||
PK{"Asia/Karachi"}
|
||||
}
|
||||
"Paraguay Standard Time"{
|
||||
001{"America/Asuncion"}
|
||||
PY{"America/Asuncion"}
|
||||
}
|
||||
"Romance Standard Time"{
|
||||
001{"Europe/Paris"}
|
||||
BE{"Europe/Brussels"}
|
||||
DK{"Europe/Copenhagen"}
|
||||
ES{"Europe/Madrid Africa/Ceuta"}
|
||||
FR{"Europe/Paris"}
|
||||
}
|
||||
"Russia Time Zone 10"{
|
||||
001{"Asia/Srednekolymsk"}
|
||||
RU{"Asia/Srednekolymsk"}
|
||||
}
|
||||
"Russia Time Zone 11"{
|
||||
001{"Asia/Kamchatka"}
|
||||
RU{"Asia/Kamchatka Asia/Anadyr"}
|
||||
}
|
||||
"Russia Time Zone 3"{
|
||||
001{"Europe/Samara"}
|
||||
RU{"Europe/Samara"}
|
||||
}
|
||||
"Russian Standard Time"{
|
||||
001{"Europe/Moscow"}
|
||||
RU{"Europe/Moscow Europe/Simferopol Europe/Volgograd"}
|
||||
}
|
||||
"SA Eastern Standard Time"{
|
||||
001{"America/Cayenne"}
|
||||
AQ{"Antarctica/Rothera"}
|
||||
BR{
|
||||
"America/Fortaleza America/Araguaina America/Belem America/Maceio Ame"
|
||||
"rica/Recife America/Santarem"
|
||||
}
|
||||
FK{"Atlantic/Stanley"}
|
||||
GF{"America/Cayenne"}
|
||||
SR{"America/Paramaribo"}
|
||||
ZZ{"Etc/GMT+3"}
|
||||
}
|
||||
"SA Pacific Standard Time"{
|
||||
001{"America/Bogota"}
|
||||
BR{"America/Rio_Branco America/Eirunepe"}
|
||||
CA{"America/Coral_Harbour"}
|
||||
CO{"America/Bogota"}
|
||||
EC{"America/Guayaquil"}
|
||||
JM{"America/Jamaica"}
|
||||
KY{"America/Cayman"}
|
||||
PA{"America/Panama"}
|
||||
PE{"America/Lima"}
|
||||
ZZ{"Etc/GMT+5"}
|
||||
}
|
||||
"SA Western Standard Time"{
|
||||
001{"America/La_Paz"}
|
||||
AG{"America/Antigua"}
|
||||
AI{"America/Anguilla"}
|
||||
AW{"America/Aruba"}
|
||||
BB{"America/Barbados"}
|
||||
BL{"America/St_Barthelemy"}
|
||||
BO{"America/La_Paz"}
|
||||
BQ{"America/Kralendijk"}
|
||||
BR{"America/Manaus America/Boa_Vista America/Porto_Velho"}
|
||||
CA{"America/Blanc-Sablon"}
|
||||
CW{"America/Curacao"}
|
||||
DM{"America/Dominica"}
|
||||
DO{"America/Santo_Domingo"}
|
||||
GD{"America/Grenada"}
|
||||
GP{"America/Guadeloupe"}
|
||||
GY{"America/Guyana"}
|
||||
KN{"America/St_Kitts"}
|
||||
LC{"America/St_Lucia"}
|
||||
MF{"America/Marigot"}
|
||||
MQ{"America/Martinique"}
|
||||
MS{"America/Montserrat"}
|
||||
PR{"America/Puerto_Rico"}
|
||||
SX{"America/Lower_Princes"}
|
||||
TC{"America/Grand_Turk"}
|
||||
TT{"America/Port_of_Spain"}
|
||||
VC{"America/St_Vincent"}
|
||||
VG{"America/Tortola"}
|
||||
VI{"America/St_Thomas"}
|
||||
ZZ{"Etc/GMT+4"}
|
||||
}
|
||||
"SE Asia Standard Time"{
|
||||
001{"Asia/Bangkok"}
|
||||
AQ{"Antarctica/Davis"}
|
||||
CX{"Indian/Christmas"}
|
||||
ID{"Asia/Jakarta Asia/Pontianak"}
|
||||
KH{"Asia/Phnom_Penh"}
|
||||
LA{"Asia/Vientiane"}
|
||||
MN{"Asia/Hovd"}
|
||||
TH{"Asia/Bangkok"}
|
||||
VN{"Asia/Saigon"}
|
||||
ZZ{"Etc/GMT-7"}
|
||||
}
|
||||
"Samoa Standard Time"{
|
||||
001{"Pacific/Apia"}
|
||||
WS{"Pacific/Apia"}
|
||||
}
|
||||
"Singapore Standard Time"{
|
||||
001{"Asia/Singapore"}
|
||||
BN{"Asia/Brunei"}
|
||||
ID{"Asia/Makassar"}
|
||||
MY{"Asia/Kuala_Lumpur Asia/Kuching"}
|
||||
PH{"Asia/Manila"}
|
||||
SG{"Asia/Singapore"}
|
||||
ZZ{"Etc/GMT-8"}
|
||||
}
|
||||
"South Africa Standard Time"{
|
||||
001{"Africa/Johannesburg"}
|
||||
BI{"Africa/Bujumbura"}
|
||||
BW{"Africa/Gaborone"}
|
||||
CD{"Africa/Lubumbashi"}
|
||||
LS{"Africa/Maseru"}
|
||||
MW{"Africa/Blantyre"}
|
||||
MZ{"Africa/Maputo"}
|
||||
RW{"Africa/Kigali"}
|
||||
SZ{"Africa/Mbabane"}
|
||||
ZA{"Africa/Johannesburg"}
|
||||
ZM{"Africa/Lusaka"}
|
||||
ZW{"Africa/Harare"}
|
||||
ZZ{"Etc/GMT-2"}
|
||||
}
|
||||
"Sri Lanka Standard Time"{
|
||||
001{"Asia/Colombo"}
|
||||
LK{"Asia/Colombo"}
|
||||
}
|
||||
"Syria Standard Time"{
|
||||
001{"Asia/Damascus"}
|
||||
SY{"Asia/Damascus"}
|
||||
}
|
||||
"Taipei Standard Time"{
|
||||
001{"Asia/Taipei"}
|
||||
TW{"Asia/Taipei"}
|
||||
}
|
||||
"Tasmania Standard Time"{
|
||||
001{"Australia/Hobart"}
|
||||
AU{"Australia/Hobart Australia/Currie"}
|
||||
}
|
||||
"Tokyo Standard Time"{
|
||||
001{"Asia/Tokyo"}
|
||||
ID{"Asia/Jayapura"}
|
||||
JP{"Asia/Tokyo"}
|
||||
PW{"Pacific/Palau"}
|
||||
TL{"Asia/Dili"}
|
||||
ZZ{"Etc/GMT-9"}
|
||||
}
|
||||
"Tonga Standard Time"{
|
||||
001{"Pacific/Tongatapu"}
|
||||
KI{"Pacific/Enderbury"}
|
||||
TK{"Pacific/Fakaofo"}
|
||||
TO{"Pacific/Tongatapu"}
|
||||
ZZ{"Etc/GMT-13"}
|
||||
}
|
||||
"Turkey Standard Time"{
|
||||
001{"Europe/Istanbul"}
|
||||
TR{"Europe/Istanbul"}
|
||||
}
|
||||
"US Eastern Standard Time"{
|
||||
001{"America/Indianapolis"}
|
||||
US{"America/Indianapolis America/Indiana/Marengo America/Indiana/Vevay"}
|
||||
}
|
||||
"US Mountain Standard Time"{
|
||||
001{"America/Phoenix"}
|
||||
CA{"America/Dawson_Creek America/Creston"}
|
||||
MX{"America/Hermosillo"}
|
||||
US{"America/Phoenix"}
|
||||
ZZ{"Etc/GMT+7"}
|
||||
}
|
||||
"UTC"{
|
||||
001{"Etc/GMT"}
|
||||
GL{"America/Danmarkshavn"}
|
||||
ZZ{"Etc/GMT"}
|
||||
}
|
||||
"UTC+12"{
|
||||
001{"Etc/GMT-12"}
|
||||
KI{"Pacific/Tarawa"}
|
||||
MH{"Pacific/Majuro Pacific/Kwajalein"}
|
||||
NR{"Pacific/Nauru"}
|
||||
TV{"Pacific/Funafuti"}
|
||||
UM{"Pacific/Wake"}
|
||||
WF{"Pacific/Wallis"}
|
||||
ZZ{"Etc/GMT-12"}
|
||||
}
|
||||
"UTC-02"{
|
||||
001{"Etc/GMT+2"}
|
||||
BR{"America/Noronha"}
|
||||
GS{"Atlantic/South_Georgia"}
|
||||
ZZ{"Etc/GMT+2"}
|
||||
}
|
||||
"UTC-11"{
|
||||
001{"Etc/GMT+11"}
|
||||
AS{"Pacific/Pago_Pago"}
|
||||
NU{"Pacific/Niue"}
|
||||
UM{"Pacific/Midway"}
|
||||
ZZ{"Etc/GMT+11"}
|
||||
}
|
||||
"Ulaanbaatar Standard Time"{
|
||||
001{"Asia/Ulaanbaatar"}
|
||||
MN{"Asia/Ulaanbaatar Asia/Choibalsan"}
|
||||
}
|
||||
"Venezuela Standard Time"{
|
||||
001{"America/Caracas"}
|
||||
VE{"America/Caracas"}
|
||||
}
|
||||
"Vladivostok Standard Time"{
|
||||
001{"Asia/Vladivostok"}
|
||||
RU{"Asia/Vladivostok Asia/Sakhalin Asia/Ust-Nera"}
|
||||
}
|
||||
"W. Australia Standard Time"{
|
||||
001{"Australia/Perth"}
|
||||
AQ{"Antarctica/Casey"}
|
||||
AU{"Australia/Perth"}
|
||||
}
|
||||
"W. Central Africa Standard Time"{
|
||||
001{"Africa/Lagos"}
|
||||
AO{"Africa/Luanda"}
|
||||
BJ{"Africa/Porto-Novo"}
|
||||
CD{"Africa/Kinshasa"}
|
||||
CF{"Africa/Bangui"}
|
||||
CG{"Africa/Brazzaville"}
|
||||
CM{"Africa/Douala"}
|
||||
DZ{"Africa/Algiers"}
|
||||
GA{"Africa/Libreville"}
|
||||
GQ{"Africa/Malabo"}
|
||||
NE{"Africa/Niamey"}
|
||||
NG{"Africa/Lagos"}
|
||||
TD{"Africa/Ndjamena"}
|
||||
TN{"Africa/Tunis"}
|
||||
ZZ{"Etc/GMT-1"}
|
||||
}
|
||||
"W. Europe Standard Time"{
|
||||
001{"Europe/Berlin"}
|
||||
AD{"Europe/Andorra"}
|
||||
AT{"Europe/Vienna"}
|
||||
CH{"Europe/Zurich"}
|
||||
DE{"Europe/Berlin Europe/Busingen"}
|
||||
GI{"Europe/Gibraltar"}
|
||||
IT{"Europe/Rome"}
|
||||
LI{"Europe/Vaduz"}
|
||||
LU{"Europe/Luxembourg"}
|
||||
MC{"Europe/Monaco"}
|
||||
MT{"Europe/Malta"}
|
||||
NL{"Europe/Amsterdam"}
|
||||
NO{"Europe/Oslo"}
|
||||
SE{"Europe/Stockholm"}
|
||||
SJ{"Arctic/Longyearbyen"}
|
||||
SM{"Europe/San_Marino"}
|
||||
VA{"Europe/Vatican"}
|
||||
}
|
||||
"West Asia Standard Time"{
|
||||
001{"Asia/Tashkent"}
|
||||
AQ{"Antarctica/Mawson"}
|
||||
KZ{"Asia/Oral Asia/Aqtau Asia/Aqtobe"}
|
||||
MV{"Indian/Maldives"}
|
||||
TF{"Indian/Kerguelen"}
|
||||
TJ{"Asia/Dushanbe"}
|
||||
TM{"Asia/Ashgabat"}
|
||||
UZ{"Asia/Tashkent Asia/Samarkand"}
|
||||
ZZ{"Etc/GMT-5"}
|
||||
}
|
||||
"West Pacific Standard Time"{
|
||||
001{"Pacific/Port_Moresby"}
|
||||
AQ{"Antarctica/DumontDUrville"}
|
||||
FM{"Pacific/Truk"}
|
||||
GU{"Pacific/Guam"}
|
||||
MP{"Pacific/Saipan"}
|
||||
PG{"Pacific/Port_Moresby"}
|
||||
ZZ{"Etc/GMT-10"}
|
||||
}
|
||||
"Yakutsk Standard Time"{
|
||||
001{"Asia/Yakutsk"}
|
||||
RU{"Asia/Yakutsk Asia/Khandyga"}
|
||||
}
|
||||
}
|
||||
}
|
3747
intl/tzdata/2015f/zoneinfo64.txt
Normal file
3747
intl/tzdata/2015f/zoneinfo64.txt
Normal file
File diff suppressed because it is too large
Load Diff
10
intl/tzdata/SVN-INFO
Normal file
10
intl/tzdata/SVN-INFO
Normal file
@ -0,0 +1,10 @@
|
||||
Path: 44
|
||||
URL: https://ssl.icu-project.org/repos/icu/data/trunk/tzdata/icunew/2015f/44
|
||||
Relative URL: ^/data/trunk/tzdata/icunew/2015f/44
|
||||
Repository Root: https://ssl.icu-project.org/repos/icu
|
||||
Repository UUID: 251d0590-4201-4cf1-90de-194747b24ca1
|
||||
Node Kind: directory
|
||||
Last Changed Author: yoshito
|
||||
Last Changed Rev: 37762
|
||||
Last Changed Date: 2015-08-12 20:21:44 +0000 (Wed, 12 Aug 2015)
|
||||
|
5
intl/tzdata/files.txt
Normal file
5
intl/tzdata/files.txt
Normal file
@ -0,0 +1,5 @@
|
||||
# tzdata resources in icudt*.dat
|
||||
zoneinfo64.res
|
||||
windowsZones.res
|
||||
timezoneTypes.res
|
||||
metaZones.res
|
@ -73,3 +73,6 @@ python ${topsrcdir}/js/src/tests/ecma_6/String/make-normalize-generateddata-inpu
|
||||
python `dirname $0`/icu_sources_data.py $topsrcdir
|
||||
|
||||
hg addremove ${icu_dir} ${topsrcdir}/config/external/icu
|
||||
|
||||
# Check local tzdata version.
|
||||
`dirname $0`/update-tzdata.sh -c
|
||||
|
166
intl/update-tzdata.sh
Executable file
166
intl/update-tzdata.sh
Executable file
@ -0,0 +1,166 @@
|
||||
#!/bin/sh
|
||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
set -e
|
||||
|
||||
# Usage: update-tzdata.sh <tzdata version>
|
||||
# E.g., for tzdata2016f: update-tzdata.sh 2016f
|
||||
|
||||
# Ensure that $Date$ in the checked-out svn files expands timezone-agnostically,
|
||||
# so that this script's behavior is consistent when run from any time zone.
|
||||
export TZ=UTC
|
||||
|
||||
# Also ensure SVN-INFO isn't localized.
|
||||
export LANG=C
|
||||
|
||||
# Path to icupkg executable, typically located at $ICU_DIR/bin/icupkg.
|
||||
icu_pkg=
|
||||
# Force updates even when current tzdata is newer than the requested version.
|
||||
force=false
|
||||
# Dry run, doesn't run 'svn export' and 'icupkg'.
|
||||
dry=false
|
||||
# Compare ICU and local tzdata versions (used by update-icu.sh).
|
||||
check_version=false
|
||||
|
||||
while getopts ce:fd opt
|
||||
do
|
||||
case "$opt" in
|
||||
c) check_version=true;;
|
||||
e) icu_pkg="$OPTARG";;
|
||||
f) force=true;;
|
||||
d) dry=true;;
|
||||
\?)
|
||||
echo >&2 "Usage: $0 [-e <path to icupkg>] [-f] [-d] <tzdata version>"
|
||||
exit 1;;
|
||||
esac
|
||||
done
|
||||
shift "$((OPTIND - 1))"
|
||||
|
||||
if [ $# -ne 1 -a $check_version = false ]; then
|
||||
echo >&2 "Usage: $0 [-e <path to icupkg>] [-f] [-d] <tzdata version>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tzdata_version=$1
|
||||
|
||||
icudata_dir=`dirname "$0"`/../config/external/icu/data
|
||||
icu_dir=`dirname "$0"`/icu
|
||||
tzdata_dir=`dirname "$0"`/tzdata
|
||||
tzdata_files="${tzdata_dir}"/files.txt
|
||||
tzdata_version_dir="${tzdata_dir}"/${tzdata_version}
|
||||
tzdata_url=https://ssl.icu-project.org/repos/icu/data/trunk/tzdata/icunew/${tzdata_version}/44/
|
||||
icu_tzdata_version=`grep --only-matching --perl-regexp --regexp="tz version:\s+\K.*$" "${icu_dir}"/source/data/misc/zoneinfo64.txt`
|
||||
local_tzdata_version=
|
||||
if [ -f "${tzdata_dir}"/SVN-INFO ]; then
|
||||
local_tzdata_version=`grep --only-matching --perl-regexp --regexp="^URL: .*tzdata/icunew/\K[0-9a-z]+" "${tzdata_dir}"/SVN-INFO`
|
||||
fi
|
||||
|
||||
# Check ICU and current local tzdata versions.
|
||||
if [ $check_version = true ]; then
|
||||
if [ ! -z ${local_tzdata_version} ]; then
|
||||
if [ ${local_tzdata_version} \> ${icu_tzdata_version} ]; then
|
||||
echo >&2 "WARN: Local tzdata (${local_tzdata_version}) is newer than ICU tzdata (${icu_tzdata_version}), please run '$0 ${local_tzdata_version}'"
|
||||
else
|
||||
echo "INFO: ICU tzdata ${icu_tzdata_version} is newer than local tzdata (${local_tzdata_version})"
|
||||
fi
|
||||
else
|
||||
echo "INFO: No local tzdata files found"
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Find icu_pkg if not provided as an argument.
|
||||
icu_pkg=${icu_pkg:-`which icupkg`}
|
||||
|
||||
# Test if we can execute icupkg.
|
||||
if [ ! -x "${icu_pkg}" ]; then
|
||||
echo >&2 "ERROR: icupkg is not an executable"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check ICU tzdata version.
|
||||
if [ ${icu_tzdata_version} \> ${tzdata_version} ]; then
|
||||
if [ $force = false ]; then
|
||||
echo >&2 "ERROR: ICU tzdata (${icu_tzdata_version}) is newer than requested version ${tzdata_version}, use -f to force replacing"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
# Check tzdata version from last checkout.
|
||||
if [ -n ${local_tzdata_version} -a ${local_tzdata_version} \> ${tzdata_version} ]; then
|
||||
if [ $force = false ]; then
|
||||
echo >&2 "ERROR: Local tzdata (${local_tzdata_version}) is newer than requested version ${tzdata_version}, use -f to force replacing"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "INFO: Updating tzdata from ${local_tzdata_version:-$icu_tzdata_version} to ${tzdata_version}"
|
||||
|
||||
# Search for ICU data files.
|
||||
# Little endian data files.
|
||||
icudata_file_le=`find "${icudata_dir}" -type f -name 'icudt*l.dat'`
|
||||
if [ -f "${icudata_file_le}" ]; then
|
||||
icudata_file_le=`cd "$(dirname "${icudata_file_le}")" && pwd -P`/`basename "${icudata_file_le}"`
|
||||
echo "INFO: ICU data file (little endian): ${icudata_file_le}"
|
||||
else
|
||||
echo >&2 "ERROR: ICU data (little endian) file not found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Big endian data files.
|
||||
# Optional until https://bugzilla.mozilla.org/show_bug.cgi?id=1264836 is fixed.
|
||||
icudata_file_be=`find "${icudata_dir}" -type f -name 'icudt*b.dat'`
|
||||
if [ -f "${icudata_file_be}" ]; then
|
||||
icudata_file_be=`cd "$(dirname "${icudata_file_be}")" && pwd -P`/`basename "${icudata_file_be}"`
|
||||
echo "INFO: ICU data file (big endian): ${icudata_file_be}"
|
||||
else
|
||||
echo "INFO: ICU data file (big endian) not found, skipping..."
|
||||
fi
|
||||
|
||||
# Retrieve tzdata from svn, unless already present.
|
||||
if [ ! -d "$tzdata_version_dir" ]; then
|
||||
if [ $dry = false ]; then
|
||||
echo "INFO: Downloading tzdata${tzdata_version}"
|
||||
svn export "${tzdata_url}" "${tzdata_version_dir}"
|
||||
fi
|
||||
else
|
||||
echo "INFO: Skip downloading tzdata${tzdata_version}, directory already present"
|
||||
fi
|
||||
|
||||
# Record `svn info`, eliding the line that changes every time the entire ICU
|
||||
# tzdata repository (not just the path within it we care about) receives a
|
||||
# commit.
|
||||
if [ $dry = false ]; then
|
||||
svn info "${tzdata_url}" | grep --invert-match '^Revision: [[:digit:]]\+$' > "${tzdata_dir}"/SVN-INFO
|
||||
fi
|
||||
|
||||
# Update ICU data.
|
||||
update_icu_data() {
|
||||
set +e
|
||||
|
||||
local type="$1"
|
||||
local file="$2"
|
||||
local cmd="${icu_pkg} --add ${tzdata_files} --sourcedir ${tzdata_version_dir}/${type} ${file}"
|
||||
eval "${cmd}"
|
||||
|
||||
local exit_status=$?
|
||||
|
||||
if [ $exit_status -ne 0 ]; then
|
||||
echo >&2 "ERROR: Error updating tzdata"
|
||||
echo >&2 "ERROR: If you see an error message like 'format version 03.00 not supported',\n"\
|
||||
" ensure your icupkg version matches the current ICU version."
|
||||
exit $exit_status
|
||||
fi
|
||||
}
|
||||
|
||||
if [ $dry = false ]; then
|
||||
update_icu_data "le" "${icudata_file_le}"
|
||||
if [ -n "${icudata_file_be}" ]; then
|
||||
update_icu_data "be" "${icudata_file_be}"
|
||||
fi
|
||||
|
||||
echo "INFO: Successfully updated tzdata!"
|
||||
echo "INFO: Please run js/src/builtin/make_intl_data.py to update additional time zone files for SpiderMonkey."
|
||||
fi
|
@ -5,8 +5,13 @@
|
||||
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
|
||||
""" Usage: make_intl_data.py [language-subtag-registry.txt]
|
||||
""" Usage:
|
||||
make_intl_data.py langtags [language-subtag-registry.txt]
|
||||
make_intl_data.py tzdata --icu=$MOZ/intl/icu/source \\
|
||||
--icutz=$MOZ/intl/tzdata/tz2016f \\
|
||||
--version=2016f
|
||||
|
||||
Target "langtags":
|
||||
This script extracts information about mappings between deprecated and
|
||||
current BCP 47 language tags from the IANA Language Subtag Registry and
|
||||
converts it to JavaScript object definitions in IntlData.js. The definitions
|
||||
@ -16,8 +21,28 @@
|
||||
http://www.iana.org/assignments/language-subtag-registry
|
||||
and uses the syntax specified in
|
||||
http://tools.ietf.org/html/rfc5646#section-3
|
||||
|
||||
|
||||
Target "tzdata":
|
||||
This script computes which time zone informations are not up-to-date in ICU
|
||||
and provides the necessary mappings to workaround this problem.
|
||||
http://bugs.icu-project.org/trac/ticket/12044
|
||||
"""
|
||||
|
||||
from __future__ import print_function
|
||||
import os
|
||||
import re
|
||||
import io
|
||||
import codecs
|
||||
import tarfile
|
||||
import tempfile
|
||||
import urllib2
|
||||
import urlparse
|
||||
from contextlib import closing
|
||||
from functools import partial
|
||||
from itertools import chain, ifilter, ifilterfalse, imap, tee
|
||||
from operator import attrgetter, itemgetter
|
||||
|
||||
def readRegistryRecord(registry):
|
||||
""" Yields the records of the IANA Language Subtag Registry as dictionaries. """
|
||||
record = {}
|
||||
@ -165,35 +190,433 @@ def writeLanguageTagData(intlData, fileDate, url, langTagMappings, langSubtagMap
|
||||
writeMappingsVar(intlData, extlangMappings, "extlangMappings",
|
||||
"Mappings from extlang subtags to preferred values", fileDate, url)
|
||||
|
||||
def updateLangTags(args):
|
||||
""" Update the IntlData.js file. """
|
||||
url = args.url
|
||||
out = args.out
|
||||
filename = args.file
|
||||
|
||||
if __name__ == '__main__':
|
||||
import codecs
|
||||
import sys
|
||||
import urllib2
|
||||
print("Arguments:")
|
||||
print("\tDownload url: %s" % url)
|
||||
print("\tLocal registry: %s" % filename)
|
||||
print("\tOutput file: %s" % out)
|
||||
print("")
|
||||
|
||||
url = "http://www.iana.org/assignments/language-subtag-registry"
|
||||
if len(sys.argv) > 1:
|
||||
if filename is not None:
|
||||
print("Always make sure you have the newest language-subtag-registry.txt!")
|
||||
registry = codecs.open(sys.argv[1], "r", encoding="utf-8")
|
||||
registry = codecs.open(filename, "r", encoding="utf-8")
|
||||
else:
|
||||
print("Downloading IANA Language Subtag Registry...")
|
||||
reader = urllib2.urlopen(url)
|
||||
text = reader.read().decode("utf-8")
|
||||
reader.close()
|
||||
with closing(urllib2.urlopen(url)) as reader:
|
||||
text = reader.read().decode("utf-8")
|
||||
registry = codecs.open("language-subtag-registry.txt", "w+", encoding="utf-8")
|
||||
registry.write(text)
|
||||
registry.seek(0)
|
||||
|
||||
print("Processing IANA Language Subtag Registry...")
|
||||
data = readRegistry(registry)
|
||||
with closing(registry) as reg:
|
||||
data = readRegistry(reg)
|
||||
fileDate = data["fileDate"]
|
||||
langTagMappings = data["langTagMappings"]
|
||||
langSubtagMappings = data["langSubtagMappings"]
|
||||
extlangMappings = data["extlangMappings"]
|
||||
registry.close()
|
||||
|
||||
print("Writing Intl data...")
|
||||
intlData = codecs.open("IntlData.js", "w", encoding="utf-8")
|
||||
intlData.write("// Generated by make_intl_data.py. DO NOT EDIT.\n")
|
||||
writeLanguageTagData(intlData, fileDate, url, langTagMappings, langSubtagMappings, extlangMappings)
|
||||
intlData.close()
|
||||
with codecs.open(out, "w", encoding="utf-8") as intlData:
|
||||
intlData.write("// Generated by make_intl_data.py. DO NOT EDIT.\n")
|
||||
writeLanguageTagData(intlData, fileDate, url, langTagMappings, langSubtagMappings, extlangMappings)
|
||||
|
||||
def flines(filepath, encoding="utf-8"):
|
||||
""" Open filepath and iterate over its content. """
|
||||
with io.open(filepath, mode="r", encoding=encoding) as f:
|
||||
for line in f:
|
||||
yield line
|
||||
|
||||
class Zone:
|
||||
""" Time zone with optional file name. """
|
||||
|
||||
def __init__(self, name, filename=""):
|
||||
self.name = name
|
||||
self.filename = filename
|
||||
def __eq__(self, other):
|
||||
return hasattr(other, "name") and self.name == other.name
|
||||
def __cmp__(self, other):
|
||||
if self.name == other.name:
|
||||
return 0
|
||||
if self.name < other.name:
|
||||
return -1
|
||||
return 1
|
||||
def __hash__(self):
|
||||
return hash(self.name)
|
||||
def __str__(self):
|
||||
return self.name
|
||||
def __repr__(self):
|
||||
return self.name
|
||||
|
||||
class TzDataDir:
|
||||
""" tzdata source from a directory. """
|
||||
|
||||
def __init__(self, obj):
|
||||
self.name = partial(os.path.basename, obj)
|
||||
self.resolve = partial(os.path.join, obj)
|
||||
self.basename = os.path.basename
|
||||
self.isfile = os.path.isfile
|
||||
self.listdir = partial(os.listdir, obj)
|
||||
self.readlines = flines
|
||||
|
||||
class TzDataFile:
|
||||
""" tzdata source from a file (tar or gzipped). """
|
||||
|
||||
def __init__(self, obj):
|
||||
self.name = lambda: os.path.splitext(os.path.splitext(os.path.basename(obj))[0])[0]
|
||||
self.resolve = obj.getmember
|
||||
self.basename = attrgetter("name")
|
||||
self.isfile = tarfile.TarInfo.isfile
|
||||
self.listdir = obj.getnames
|
||||
self.readlines = partial(self._tarlines, obj)
|
||||
|
||||
def _tarlines(self, tar, m):
|
||||
with closing(tar.extractfile(m)) as f:
|
||||
for line in codecs.EncodedFile(f, "utf-8"):
|
||||
yield line
|
||||
|
||||
def validateTimeZones(zones, links):
|
||||
""" Validate the zone and link entries. """
|
||||
linkZones = set(links.viewkeys())
|
||||
intersect = linkZones.intersection(zones)
|
||||
if intersect:
|
||||
raise RuntimeError("Links also present in zones: %s" % intersect)
|
||||
|
||||
zoneNames = set(z.name for z in zones)
|
||||
linkTargets = set(links.viewvalues())
|
||||
if not linkTargets.issubset(zoneNames):
|
||||
raise RuntimeError("Link targets not found: %s" % linkTargets.difference(zoneNames))
|
||||
|
||||
def readIANAFiles(tzdataDir, files):
|
||||
""" Read all IANA time zone files from the given iterable. """
|
||||
nameSyntax = "[\w/+\-]+"
|
||||
pZone = re.compile(r"Zone\s+(?P<name>%s)\s+.*" % nameSyntax)
|
||||
pLink = re.compile(r"Link\s+(?P<target>%s)\s+(?P<name>%s)(?:\s+#.*)?" % (nameSyntax, nameSyntax))
|
||||
|
||||
def createZone(line, fname):
|
||||
match = pZone.match(line)
|
||||
name = match.group("name")
|
||||
return Zone(name, fname)
|
||||
|
||||
def createLink(line, fname):
|
||||
match = pLink.match(line)
|
||||
(name, target) = match.group("name", "target")
|
||||
return (Zone(name, fname), target)
|
||||
|
||||
zones = set()
|
||||
links = dict()
|
||||
for filename in files:
|
||||
filepath = tzdataDir.resolve(filename)
|
||||
for line in tzdataDir.readlines(filepath):
|
||||
if line.startswith("Zone"):
|
||||
zones.add(createZone(line, filename))
|
||||
if line.startswith("Link"):
|
||||
(link, target) = createLink(line, filename)
|
||||
links[link] = target
|
||||
|
||||
return (zones, links)
|
||||
|
||||
def readIANATimeZones(tzdataDir):
|
||||
""" Read the IANA time zone information from `tzdataDir`. """
|
||||
def partition(pred, it):
|
||||
it1, it2 = tee(it)
|
||||
return (ifilterfalse(pred, it1), ifilter(pred, it2))
|
||||
def isTzFile(d, m, f):
|
||||
return m(f) and d.isfile(d.resolve(f))
|
||||
|
||||
backzoneFiles = {"backzone"}
|
||||
(tzfiles, bkfiles) = partition(
|
||||
backzoneFiles.__contains__,
|
||||
ifilter(partial(isTzFile, tzdataDir, re.compile("^[a-z0-9]+$").match), tzdataDir.listdir())
|
||||
)
|
||||
|
||||
# Read zone and link infos.
|
||||
(zones, links) = readIANAFiles(tzdataDir, tzfiles)
|
||||
(backzones, backlinks) = readIANAFiles(tzdataDir, bkfiles)
|
||||
|
||||
# Merge with backzone data.
|
||||
zones |= backzones
|
||||
zones.remove(Zone("Factory"))
|
||||
links = {name: target for name, target in links.iteritems() if name not in backzones}
|
||||
links.update(backlinks)
|
||||
|
||||
validateTimeZones(zones, links)
|
||||
|
||||
return (zones, links)
|
||||
|
||||
def readICUResourceFile(filename):
|
||||
""" Read an ICU resource file.
|
||||
|
||||
Returns ("table", <table-name>) when a table starts/ends.
|
||||
Returns ("entry", <data>) for each table entry.
|
||||
"""
|
||||
p = re.compile(r"^(?P<name>.+)\{$")
|
||||
q = re.compile(r'^(?P<quote>"?)(?P<key>.+)(?P=quote)\{"(?P<value>.+)"\}$')
|
||||
|
||||
tables = []
|
||||
for line in flines(filename, "utf-8-sig"):
|
||||
line = line.strip()
|
||||
if line == "" or line.startswith("//"):
|
||||
continue
|
||||
m = p.match(line)
|
||||
if m:
|
||||
tables.append(m.group("name"))
|
||||
yield ("table", m.group("name"))
|
||||
continue
|
||||
if line == "}":
|
||||
yield ("table", tables.pop())
|
||||
continue
|
||||
m = q.match(line)
|
||||
if not m:
|
||||
raise RuntimeError("unknown entry: %s" % line)
|
||||
yield ("entry", (m.group("key"), m.group("value")))
|
||||
|
||||
def readICUTimeZones(icuTzDir):
|
||||
""" Read the ICU time zone information from `icuTzDir`/timezoneTypes.txt
|
||||
and returns the tuple (zones, links).
|
||||
"""
|
||||
inTypeMap = False
|
||||
inTypeMapTimezone = False
|
||||
inTypeAlias = False
|
||||
inTypeAliasTimezone = False
|
||||
toTimeZone = lambda name: Zone(name.replace(":", "/"))
|
||||
|
||||
timezones = set()
|
||||
aliases = dict()
|
||||
for kind, value in readICUResourceFile(os.path.join(icuTzDir, "timezoneTypes.txt")):
|
||||
if kind == "table":
|
||||
if value == "typeMap":
|
||||
inTypeMap = not inTypeMap
|
||||
elif inTypeMap and value == "timezone":
|
||||
inTypeMapTimezone = not inTypeMapTimezone
|
||||
elif value == "typeAlias":
|
||||
inTypeAlias = not inTypeAlias
|
||||
elif inTypeAlias and value == "timezone":
|
||||
inTypeAliasTimezone = not inTypeAliasTimezone
|
||||
continue
|
||||
(fst, snd) = value
|
||||
if inTypeMapTimezone:
|
||||
timezones.add(toTimeZone(fst))
|
||||
if inTypeAliasTimezone:
|
||||
aliases[toTimeZone(fst)] = snd
|
||||
|
||||
# Remove the ICU placeholder time zone "Etc/Unknown".
|
||||
timezones.remove(Zone("Etc/Unknown"))
|
||||
|
||||
validateTimeZones(timezones, aliases)
|
||||
|
||||
return (timezones, aliases)
|
||||
|
||||
def readICULegacyZones(icuDir):
|
||||
""" Read the ICU legacy time zones from `icuTzDir`/tools/tzcode/icuzones
|
||||
and returns the tuple (zones, links).
|
||||
"""
|
||||
tzdir = TzDataDir(os.path.join(icuDir, "tools/tzcode"))
|
||||
(zones, links) = readIANAFiles(tzdir, ["icuzones"])
|
||||
|
||||
# Remove the ICU placeholder time zone "Etc/Unknown".
|
||||
zones.remove(Zone("Etc/Unknown"))
|
||||
|
||||
return (zones, links)
|
||||
|
||||
def icuTzDataVersion(icuTzDir):
|
||||
""" Read the ICU time zone version from `icuTzDir`/zoneinfo64.txt. """
|
||||
def searchInFile(pattern, f):
|
||||
p = re.compile(pattern)
|
||||
for line in flines(f, "utf-8-sig"):
|
||||
m = p.search(line)
|
||||
if m:
|
||||
return m.group(1)
|
||||
return None
|
||||
|
||||
zoneinfo = os.path.join(icuTzDir, "zoneinfo64.txt")
|
||||
if os.path.isfile(zoneinfo):
|
||||
version = searchInFile("^//\s+tz version:\s+([0-9]{4}[a-z])$", zoneinfo)
|
||||
else:
|
||||
version = None
|
||||
return version
|
||||
|
||||
def findIncorrectICUZones(zones, links, timezones, aliases):
|
||||
""" Find incorrect ICU zone entries. """
|
||||
isIANATimeZone = lambda zone: zone in zones or zone in links
|
||||
isICUTimeZone = lambda zone: zone in timezones or zone in aliases
|
||||
isICULink = lambda zone: zone in aliases
|
||||
|
||||
# Zones which aren't present in ICU.
|
||||
missingTimeZones = ((zone, "<not present>") for zone in zones if not isICUTimeZone(zone))
|
||||
|
||||
# Zones which are marked as links in ICU.
|
||||
incorrectMapping = ((zone, aliases[zone]) for zone in zones if isICULink(zone))
|
||||
|
||||
# Zones which are only present in ICU?
|
||||
removedTimeZones = [zone for zone in timezones if not isIANATimeZone(zone)]
|
||||
if removedTimeZones:
|
||||
raise RuntimeError("Removed zones? %s" % removedTimeZones)
|
||||
|
||||
result = chain(missingTimeZones, incorrectMapping)
|
||||
|
||||
# Remove unnecessary UTC mappings.
|
||||
utcnames = ["Etc/UTC", "Etc/UCT", "Etc/GMT"]
|
||||
result = ifilterfalse(lambda (zone, alias): zone.name in utcnames, result)
|
||||
|
||||
return sorted(result, key=itemgetter(0))
|
||||
|
||||
def findIncorrectICULinks(zones, links, timezones, aliases):
|
||||
""" Find incorrect ICU link entries. """
|
||||
isIANATimeZone = lambda zone: zone in zones or zone in links
|
||||
isICUTimeZone = lambda zone: zone in timezones or zone in aliases
|
||||
isICULink = lambda zone: zone in aliases
|
||||
isICUZone = lambda zone: zone in timezones
|
||||
|
||||
# Links which aren't present in ICU.
|
||||
missingTimeZones = ((zone, target, "<not present>") for (zone, target) in links.iteritems() if not isICUTimeZone(zone))
|
||||
|
||||
# Links which have a different target in ICU.
|
||||
incorrectMapping = ((zone, target, aliases[zone]) for (zone, target) in links.iteritems() if isICULink(zone) and target != aliases[zone])
|
||||
|
||||
# Links which are zones in ICU.
|
||||
incorrectMapping2 = ((zone, target, zone.name) for (zone, target) in links.iteritems() if isICUZone(zone))
|
||||
|
||||
# Links which are only present in ICU?
|
||||
removedTimeZones = [zone for zone in aliases.iterkeys() if not isIANATimeZone(zone)]
|
||||
if removedTimeZones:
|
||||
raise RuntimeError("Removed zones? %s" % removedTimeZones)
|
||||
|
||||
result = chain(missingTimeZones, incorrectMapping, incorrectMapping2)
|
||||
|
||||
# Remove unnecessary UTC mappings.
|
||||
utcnames = ["Etc/UTC", "Etc/UCT", "Etc/GMT"]
|
||||
result = ifilterfalse(lambda (zone, target, alias): target in utcnames and alias in utcnames, result)
|
||||
|
||||
return sorted(result, key=itemgetter(0))
|
||||
|
||||
def processTimeZones(tzdataDir, icuDir, icuTzDir, tzversion, out):
|
||||
""" Read the time zone info and create a new IntlTzData.js file. """
|
||||
print("Processing tzdata mapping...")
|
||||
(zones, links) = readIANATimeZones(tzdataDir)
|
||||
(timezones, aliases) = readICUTimeZones(icuTzDir)
|
||||
(legacyzones, legacylinks) = readICULegacyZones(icuDir)
|
||||
icuversion = icuTzDataVersion(icuTzDir)
|
||||
|
||||
incorrectZones = findIncorrectICUZones(zones, links, timezones, aliases)
|
||||
if not incorrectZones:
|
||||
print("<<< No incorrect ICU time zones found, please update Intl.js! >>>")
|
||||
print("<<< Maybe http://bugs.icu-project.org/trac/ticket/12044 was fixed? >>>")
|
||||
|
||||
incorrectLinks = findIncorrectICULinks(zones, links, timezones, aliases)
|
||||
if not incorrectLinks:
|
||||
print("<<< No incorrect ICU time zone links found, please update Intl.js! >>>")
|
||||
print("<<< Maybe http://bugs.icu-project.org/trac/ticket/12044 was fixed? >>>")
|
||||
|
||||
print("Writing Intl tzdata file...")
|
||||
with io.open(out, mode="w", encoding="utf-8", newline="") as f:
|
||||
println = partial(print, file=f)
|
||||
|
||||
println(u"// Generated by make_intl_data.py. DO NOT EDIT.")
|
||||
println(u"// tzdata version = %s" % tzversion)
|
||||
println(u"// ICU tzdata version = %s" % icuversion)
|
||||
println(u"")
|
||||
|
||||
println(u"// Format:")
|
||||
println(u'// "ZoneName": true // ICU-Name [time zone file]')
|
||||
println(u"var tzZoneNamesNonICU = {")
|
||||
for (zone, alias) in incorrectZones:
|
||||
println(u' "%s": true, // %s [%s]' % (zone, alias, zone.filename))
|
||||
println(u"};")
|
||||
println(u"")
|
||||
|
||||
println(u"// Format:")
|
||||
println(u'// "LinkName": "Target" // ICU-Target [time zone file]')
|
||||
println(u"var tzLinkNamesNonICU = {")
|
||||
for (zone, target, alias) in incorrectLinks:
|
||||
println(u' "%s": "%s", // %s [%s]' % (zone, target, alias, zone.filename))
|
||||
println(u"};")
|
||||
println(u"")
|
||||
|
||||
println(u"// Legacy ICU time zones, these are not valid IANA time zone names. We also")
|
||||
println(u"// disallow the old and deprecated System V time zones.")
|
||||
println(u"// http://source.icu-project.org/repos/icu/icu/trunk/source/tools/tzcode/icuzones")
|
||||
println(u"var legacyICUTimeZones = {")
|
||||
for zone in sorted(legacylinks.keys()) + sorted(list(legacyzones)):
|
||||
println(u' "%s": true,' % zone)
|
||||
println(u"};")
|
||||
|
||||
def updateTzdata(args):
|
||||
""" Update the IntlTzData.js file. """
|
||||
version = args.version
|
||||
if not re.match("^([0-9]{4}[a-z])$", version):
|
||||
raise RuntimeError("illegal version: %s" % version)
|
||||
url = args.url
|
||||
if url is None:
|
||||
url = "https://www.iana.org/time-zones/repository/releases/tzdata%s.tar.gz" % version
|
||||
tzDir = args.tz
|
||||
if tzDir is not None and not (os.path.isdir(tzDir) or os.path.isfile(tzDir)):
|
||||
raise RuntimeError("not a directory or file: %s" % tzDir)
|
||||
icuDir = args.icu
|
||||
if not os.path.isdir(icuDir):
|
||||
raise RuntimeError("not a directory: %s" % icuDir)
|
||||
icuTzDir = args.icutz
|
||||
if icuTzDir is None:
|
||||
icuTzDir = os.path.join(icuDir, "data/misc")
|
||||
if not os.path.isdir(icuTzDir):
|
||||
raise RuntimeError("not a directory: %s" % icuTzDir)
|
||||
out = args.out
|
||||
|
||||
print("Arguments:")
|
||||
print("\ttzdata version: %s" % version)
|
||||
print("\ttzdata URL: %s" % url)
|
||||
print("\ttzdata directory|file: %s" % tzDir)
|
||||
print("\tICU directory: %s" % icuDir)
|
||||
print("\tICU timezone directory: %s" % icuTzDir)
|
||||
print("\tOutput file: %s" % out)
|
||||
print("")
|
||||
|
||||
def updateFrom(f):
|
||||
if os.path.isfile(f) and tarfile.is_tarfile(f):
|
||||
with tarfile.open(f, "r:*") as tar:
|
||||
processTimeZones(TzDataFile(tar), icuDir, icuTzDir, version, out)
|
||||
elif os.path.isdir(f):
|
||||
processTimeZones(TzDataDir(f), icuDir, icuTzDir, version, out)
|
||||
else:
|
||||
raise RuntimError("unknown format")
|
||||
|
||||
if tzDir is None:
|
||||
print("Downloading tzdata file...")
|
||||
with closing(urllib2.urlopen(url)) as tzfile:
|
||||
fname = urlparse.urlsplit(tzfile.geturl()).path.split('/')[-1]
|
||||
with tempfile.NamedTemporaryFile(suffix=fname) as tztmpfile:
|
||||
print("File stored in %s" % tztmpfile.name)
|
||||
tztmpfile.write(tzfile.read())
|
||||
tztmpfile.flush()
|
||||
updateFrom(tztmpfile.name)
|
||||
else:
|
||||
updateFrom(tzDir)
|
||||
|
||||
if __name__ == '__main__':
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser(description="Update intl data.")
|
||||
subparsers = parser.add_subparsers(help="Select update mode")
|
||||
|
||||
parser_tags = subparsers.add_parser("langtags", help="Update language-subtag-registry", formatter_class=argparse.ArgumentDefaultsHelpFormatter)
|
||||
parser_tags.add_argument("--url", metavar="URL", default="http://www.iana.org/assignments/language-subtag-registry", help="Download url for language-subtag-registry.txt")
|
||||
parser_tags.add_argument("--out", default="IntlData.js", help="Output file")
|
||||
parser_tags.add_argument("file", nargs="?", help="Local language-subtag-registry.txt file, if omitted uses <URL>")
|
||||
parser_tags.set_defaults(func=updateLangTags)
|
||||
|
||||
parser_tz = subparsers.add_parser("tzdata", help="Update tzdata")
|
||||
parser_tz.add_argument("--icu", metavar="ICU", required=True, help="ICU source directory")
|
||||
parser_tz.add_argument("--icutz", help="ICU timezone directory, defaults to <ICU>/data/misc")
|
||||
parser_tz.add_argument("--tz", help="Local tzdata directory or file, if omitted uses <URL>")
|
||||
parser_tz.add_argument("--url", metavar="URL", help="Download url for tzdata, defaults to \"https://www.iana.org/time-zones/repository/releases/tzdata<VERSION>.tar.gz\"")
|
||||
parser_tz.add_argument("--version", metavar="VERSION", required=True, help="tzdata version")
|
||||
parser_tz.add_argument("--out", default="IntlTzData.js", help="Output file, defaults to \"IntlTzData.js\"")
|
||||
parser_tz.set_defaults(func=updateTzdata)
|
||||
|
||||
args = parser.parse_args()
|
||||
args.func(args)
|
||||
|
@ -4985,7 +4985,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
<h1><a id="unicode"></a>Unicode License</h1>
|
||||
|
||||
<p>This license applies to certain files in the directories
|
||||
<span class="path">intl/icu</span> and <span class="path">js/src/vm</span>.
|
||||
<span class="path">intl/icu</span>, <span class="path">intl/tzdata</span>,
|
||||
and <span class="path">js/src/vm</span>.
|
||||
</p>
|
||||
|
||||
<pre>
|
||||
|
Loading…
Reference in New Issue
Block a user