From 5af38a45cfcb6931a32f7d8fda2403c45185aa14 Mon Sep 17 00:00:00 2001 From: Aleksander Machniak Date: Tue, 16 May 2017 08:37:26 +0200 Subject: [PATCH] Localized timezone selector (#4983) --- CHANGELOG | 1 + program/localization/en_US/timezones.inc | 432 +++++++++++++++++++++++ program/steps/settings/func.inc | 38 +- 3 files changed, 470 insertions(+), 1 deletion(-) create mode 100644 program/localization/en_US/timezones.inc diff --git a/CHANGELOG b/CHANGELOG index 8b29e376f..2aa84c4ca 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,7 @@ CHANGELOG Roundcube Webmail =========================== +- Localized timezone selector (#4983) - Update to TinyMCE 4.5.7 - Fix bug where invalid recipients could be silently discarded (#5739) - Fix conflict with _gid cookie of Google Analytics (#5748) diff --git a/program/localization/en_US/timezones.inc b/program/localization/en_US/timezones.inc new file mode 100644 index 000000000..32a84cb8d --- /dev/null +++ b/program/localization/en_US/timezones.inc @@ -0,0 +1,432 @@ +/timezones.inc | + | | + | Localization file of the Roundcube Webmail client | + | Copyright (C) 2005-2017, The Roundcube Dev Team | + | | + | Licensed under the GNU General Public License version 3 or | + | any later version with exceptions for skins & plugins. | + | See the README file for a full license statement. | + +-----------------------------------------------------------------------+ + + For translation see https://www.transifex.com/projects/p/roundcube-webmail/resource/timezones/ +*/ + +$labels = array(); +$labels['tz:utc'] = 'UTC+'; +$labels['tz:africa'] = 'Africa'; +$labels['tz:africa:abidjan'] = 'Abidjan'; +$labels['tz:africa:accra'] = 'Accra'; +$labels['tz:africa:addis_ababa'] = 'Addis Ababa'; +$labels['tz:africa:algiers'] = 'Algiers'; +$labels['tz:africa:asmara'] = 'Asmara'; +$labels['tz:africa:bamako'] = 'Bamako'; +$labels['tz:africa:bangui'] = 'Bangui'; +$labels['tz:africa:banjul'] = 'Banjul'; +$labels['tz:africa:bissau'] = 'Bissau'; +$labels['tz:africa:blantyre'] = 'Blantyre'; +$labels['tz:africa:brazzaville'] = 'Brazzaville'; +$labels['tz:africa:bujumbura'] = 'Bujumbura'; +$labels['tz:africa:cairo'] = 'Cairo'; +$labels['tz:africa:casablanca'] = 'Casablanca'; +$labels['tz:africa:ceuta'] = 'Ceuta'; +$labels['tz:africa:conakry'] = 'Conakry'; +$labels['tz:africa:dakar'] = 'Dakar'; +$labels['tz:africa:dar_es_salaam'] = 'Dar es Salaam'; +$labels['tz:africa:djibouti'] = 'Djibouti'; +$labels['tz:africa:douala'] = 'Douala'; +$labels['tz:africa:el_aaiun'] = 'El Aaiun'; +$labels['tz:africa:freetown'] = 'Freetown'; +$labels['tz:africa:gaborone'] = 'Gaborone'; +$labels['tz:africa:harare'] = 'Harare'; +$labels['tz:africa:johannesburg'] = 'Johannesburg'; +$labels['tz:africa:juba'] = 'Juba'; +$labels['tz:africa:kampala'] = 'Kampala'; +$labels['tz:africa:khartoum'] = 'Khartoum'; +$labels['tz:africa:kigali'] = 'Kigali'; +$labels['tz:africa:kinshasa'] = 'Kinshasa'; +$labels['tz:africa:lagos'] = 'Lagos'; +$labels['tz:africa:libreville'] = 'Libreville'; +$labels['tz:africa:lome'] = 'Lome'; +$labels['tz:africa:luanda'] = 'Luanda'; +$labels['tz:africa:lubumbashi'] = 'Lubumbashi'; +$labels['tz:africa:lusaka'] = 'Lusaka'; +$labels['tz:africa:malabo'] = 'Malabo'; +$labels['tz:africa:maputo'] = 'Maputo'; +$labels['tz:africa:maseru'] = 'Maseru'; +$labels['tz:africa:mbabane'] = 'Mbabane'; +$labels['tz:africa:mogadishu'] = 'Mogadishu'; +$labels['tz:africa:monrovia'] = 'Monrovia'; +$labels['tz:africa:nairobi'] = 'Nairobi'; +$labels['tz:africa:ndjamena'] = 'Ndjamena'; +$labels['tz:africa:niamey'] = 'Niamey'; +$labels['tz:africa:nouakchott'] = 'Nouakchott'; +$labels['tz:africa:ouagadougou'] = 'Ouagadougou'; +$labels['tz:africa:porto-novo'] = 'Porto-Novo'; +$labels['tz:africa:sao_tome'] = 'Sao Tome'; +$labels['tz:africa:tripoli'] = 'Tripoli'; +$labels['tz:africa:tunis'] = 'Tunis'; +$labels['tz:africa:windhoek'] = 'Windhoek'; +$labels['tz:america'] = 'America'; +$labels['tz:america:adak'] = 'Adak'; +$labels['tz:america:anchorage'] = 'Anchorage'; +$labels['tz:america:anguilla'] = 'Anguilla'; +$labels['tz:america:antigua'] = 'Antigua'; +$labels['tz:america:araguaina'] = 'Araguaina'; +$labels['tz:america:argentina'] = 'Argentina'; +$labels['tz:america:aruba'] = 'Aruba'; +$labels['tz:america:asuncion'] = 'Asuncion'; +$labels['tz:america:atikokan'] = 'Atikokan'; +$labels['tz:america:bahia'] = 'Bahia'; +$labels['tz:america:bahia_banderas'] = 'Bahia Banderas'; +$labels['tz:america:barbados'] = 'Barbados'; +$labels['tz:america:belem'] = 'Belem'; +$labels['tz:america:belize'] = 'Belize'; +$labels['tz:america:blanc-sablon'] = 'Blanc-Sablon'; +$labels['tz:america:boa_vista'] = 'Boa Vista'; +$labels['tz:america:bogota'] = 'Bogota'; +$labels['tz:america:boise'] = 'Boise'; +$labels['tz:america:cambridge_bay'] = 'Cambridge Bay'; +$labels['tz:america:campo_grande'] = 'Campo Grande'; +$labels['tz:america:cancun'] = 'Cancun'; +$labels['tz:america:caracas'] = 'Caracas'; +$labels['tz:america:cayenne'] = 'Cayenne'; +$labels['tz:america:cayman'] = 'Cayman'; +$labels['tz:america:chicago'] = 'Chicago'; +$labels['tz:america:chihuahua'] = 'Chihuahua'; +$labels['tz:america:costa_rica'] = 'Costa Rica'; +$labels['tz:america:creston'] = 'Creston'; +$labels['tz:america:cuiaba'] = 'Cuiaba'; +$labels['tz:america:curacao'] = 'Curacao'; +$labels['tz:america:danmarkshavn'] = 'Danmarkshavn'; +$labels['tz:america:dawson'] = 'Dawson'; +$labels['tz:america:dawson_creek'] = 'Dawson Creek'; +$labels['tz:america:denver'] = 'Denver'; +$labels['tz:america:detroit'] = 'Detroit'; +$labels['tz:america:dominica'] = 'Dominica'; +$labels['tz:america:edmonton'] = 'Edmonton'; +$labels['tz:america:eirunepe'] = 'Eirunepe'; +$labels['tz:america:el_salvador'] = 'El Salvador'; +$labels['tz:america:fort_nelson'] = 'Fort Nelson'; +$labels['tz:america:fortaleza'] = 'Fortaleza'; +$labels['tz:america:glace_bay'] = 'Glace Bay'; +$labels['tz:america:godthab'] = 'Godthab'; +$labels['tz:america:goose_bay'] = 'Goose Bay'; +$labels['tz:america:grand_turk'] = 'Grand Turk'; +$labels['tz:america:grenada'] = 'Grenada'; +$labels['tz:america:guadeloupe'] = 'Guadeloupe'; +$labels['tz:america:guatemala'] = 'Guatemala'; +$labels['tz:america:guayaquil'] = 'Guayaquil'; +$labels['tz:america:guyana'] = 'Guyana'; +$labels['tz:america:halifax'] = 'Halifax'; +$labels['tz:america:havana'] = 'Havana'; +$labels['tz:america:hermosillo'] = 'Hermosillo'; +$labels['tz:america:indiana'] = 'Indiana'; +$labels['tz:america:inuvik'] = 'Inuvik'; +$labels['tz:america:iqaluit'] = 'Iqaluit'; +$labels['tz:america:jamaica'] = 'Jamaica'; +$labels['tz:america:juneau'] = 'Juneau'; +$labels['tz:america:kentucky'] = 'Kentucky'; +$labels['tz:america:kralendijk'] = 'Kralendijk'; +$labels['tz:america:la_paz'] = 'La Paz'; +$labels['tz:america:lima'] = 'Lima'; +$labels['tz:america:los_angeles'] = 'Los Angeles'; +$labels['tz:america:lower_princes'] = 'Lower Princes'; +$labels['tz:america:maceio'] = 'Maceio'; +$labels['tz:america:managua'] = 'Managua'; +$labels['tz:america:manaus'] = 'Manaus'; +$labels['tz:america:marigot'] = 'Marigot'; +$labels['tz:america:martinique'] = 'Martinique'; +$labels['tz:america:matamoros'] = 'Matamoros'; +$labels['tz:america:mazatlan'] = 'Mazatlan'; +$labels['tz:america:menominee'] = 'Menominee'; +$labels['tz:america:merida'] = 'Merida'; +$labels['tz:america:metlakatla'] = 'Metlakatla'; +$labels['tz:america:mexico_city'] = 'Mexico City'; +$labels['tz:america:miquelon'] = 'Miquelon'; +$labels['tz:america:moncton'] = 'Moncton'; +$labels['tz:america:monterrey'] = 'Monterrey'; +$labels['tz:america:montevideo'] = 'Montevideo'; +$labels['tz:america:montserrat'] = 'Montserrat'; +$labels['tz:america:nassau'] = 'Nassau'; +$labels['tz:america:new_york'] = 'New York'; +$labels['tz:america:nipigon'] = 'Nipigon'; +$labels['tz:america:nome'] = 'Nome'; +$labels['tz:america:noronha'] = 'Noronha'; +$labels['tz:america:north_dakota'] = 'North Dakota'; +$labels['tz:america:ojinaga'] = 'Ojinaga'; +$labels['tz:america:panama'] = 'Panama'; +$labels['tz:america:pangnirtung'] = 'Pangnirtung'; +$labels['tz:america:paramaribo'] = 'Paramaribo'; +$labels['tz:america:phoenix'] = 'Phoenix'; +$labels['tz:america:port-au-prince'] = 'Port-au-Prince'; +$labels['tz:america:port_of_spain'] = 'Port of Spain'; +$labels['tz:america:porto_velho'] = 'Porto Velho'; +$labels['tz:america:puerto_rico'] = 'Puerto Rico'; +$labels['tz:america:rainy_river'] = 'Rainy River'; +$labels['tz:america:rankin_inlet'] = 'Rankin Inlet'; +$labels['tz:america:recife'] = 'Recife'; +$labels['tz:america:regina'] = 'Regina'; +$labels['tz:america:resolute'] = 'Resolute'; +$labels['tz:america:rio_branco'] = 'Rio Branco'; +$labels['tz:america:santarem'] = 'Santarem'; +$labels['tz:america:santiago'] = 'Santiago'; +$labels['tz:america:santo_domingo'] = 'Santo Domingo'; +$labels['tz:america:sao_paulo'] = 'Sao Paulo'; +$labels['tz:america:scoresbysund'] = 'Scoresbysund'; +$labels['tz:america:sitka'] = 'Sitka'; +$labels['tz:america:st_barthelemy'] = 'St Barthelemy'; +$labels['tz:america:st_johns'] = 'St Johns'; +$labels['tz:america:st_kitts'] = 'St Kitts'; +$labels['tz:america:st_lucia'] = 'St Lucia'; +$labels['tz:america:st_thomas'] = 'St Thomas'; +$labels['tz:america:st_vincent'] = 'St Vincent'; +$labels['tz:america:swift_current'] = 'Swift Current'; +$labels['tz:america:tegucigalpa'] = 'Tegucigalpa'; +$labels['tz:america:thule'] = 'Thule'; +$labels['tz:america:thunder_bay'] = 'Thunder Bay'; +$labels['tz:america:tijuana'] = 'Tijuana'; +$labels['tz:america:toronto'] = 'Toronto'; +$labels['tz:america:tortola'] = 'Tortola'; +$labels['tz:america:vancouver'] = 'Vancouver'; +$labels['tz:america:whitehorse'] = 'Whitehorse'; +$labels['tz:america:winnipeg'] = 'Winnipeg'; +$labels['tz:america:yakutat'] = 'Yakutat'; +$labels['tz:america:yellowknife'] = 'Yellowknife'; +$labels['tz:antarctica'] = 'Antarctica'; +$labels['tz:antarctica:casey'] = 'Casey'; +$labels['tz:antarctica:davis'] = 'Davis'; +$labels['tz:antarctica:dumontdurville'] = 'DumontDUrville'; +$labels['tz:antarctica:macquarie'] = 'Macquarie'; +$labels['tz:antarctica:mawson'] = 'Mawson'; +$labels['tz:antarctica:mcmurdo'] = 'McMurdo'; +$labels['tz:antarctica:palmer'] = 'Palmer'; +$labels['tz:antarctica:rothera'] = 'Rothera'; +$labels['tz:antarctica:syowa'] = 'Syowa'; +$labels['tz:antarctica:troll'] = 'Troll'; +$labels['tz:antarctica:vostok'] = 'Vostok'; +$labels['tz:arctic'] = 'Arctic'; +$labels['tz:arctic:longyearbyen'] = 'Longyearbyen'; +$labels['tz:asia'] = 'Asia'; +$labels['tz:asia:aden'] = 'Aden'; +$labels['tz:asia:almaty'] = 'Almaty'; +$labels['tz:asia:amman'] = 'Amman'; +$labels['tz:asia:anadyr'] = 'Anadyr'; +$labels['tz:asia:aqtau'] = 'Aqtau'; +$labels['tz:asia:aqtobe'] = 'Aqtobe'; +$labels['tz:asia:ashgabat'] = 'Ashgabat'; +$labels['tz:asia:atyrau'] = 'Atyrau'; +$labels['tz:asia:baghdad'] = 'Baghdad'; +$labels['tz:asia:bahrain'] = 'Bahrain'; +$labels['tz:asia:baku'] = 'Baku'; +$labels['tz:asia:bangkok'] = 'Bangkok'; +$labels['tz:asia:barnaul'] = 'Barnaul'; +$labels['tz:asia:beirut'] = 'Beirut'; +$labels['tz:asia:bishkek'] = 'Bishkek'; +$labels['tz:asia:brunei'] = 'Brunei'; +$labels['tz:asia:chita'] = 'Chita'; +$labels['tz:asia:choibalsan'] = 'Choibalsan'; +$labels['tz:asia:colombo'] = 'Colombo'; +$labels['tz:asia:damascus'] = 'Damascus'; +$labels['tz:asia:dhaka'] = 'Dhaka'; +$labels['tz:asia:dili'] = 'Dili'; +$labels['tz:asia:dubai'] = 'Dubai'; +$labels['tz:asia:dushanbe'] = 'Dushanbe'; +$labels['tz:asia:famagusta'] = 'Famagusta'; +$labels['tz:asia:gaza'] = 'Gaza'; +$labels['tz:asia:hebron'] = 'Hebron'; +$labels['tz:asia:ho_chi_minh'] = 'Ho Chi Minh'; +$labels['tz:asia:hong_kong'] = 'Hong Kong'; +$labels['tz:asia:hovd'] = 'Hovd'; +$labels['tz:asia:irkutsk'] = 'Irkutsk'; +$labels['tz:asia:jakarta'] = 'Jakarta'; +$labels['tz:asia:jayapura'] = 'Jayapura'; +$labels['tz:asia:jerusalem'] = 'Jerusalem'; +$labels['tz:asia:kabul'] = 'Kabul'; +$labels['tz:asia:kamchatka'] = 'Kamchatka'; +$labels['tz:asia:karachi'] = 'Karachi'; +$labels['tz:asia:kathmandu'] = 'Kathmandu'; +$labels['tz:asia:khandyga'] = 'Khandyga'; +$labels['tz:asia:kolkata'] = 'Kolkata'; +$labels['tz:asia:krasnoyarsk'] = 'Krasnoyarsk'; +$labels['tz:asia:kuala_lumpur'] = 'Kuala Lumpur'; +$labels['tz:asia:kuching'] = 'Kuching'; +$labels['tz:asia:kuwait'] = 'Kuwait'; +$labels['tz:asia:macau'] = 'Macau'; +$labels['tz:asia:magadan'] = 'Magadan'; +$labels['tz:asia:makassar'] = 'Makassar'; +$labels['tz:asia:manila'] = 'Manila'; +$labels['tz:asia:muscat'] = 'Muscat'; +$labels['tz:asia:nicosia'] = 'Nicosia'; +$labels['tz:asia:novokuznetsk'] = 'Novokuznetsk'; +$labels['tz:asia:novosibirsk'] = 'Novosibirsk'; +$labels['tz:asia:omsk'] = 'Omsk'; +$labels['tz:asia:oral'] = 'Oral'; +$labels['tz:asia:phnom_penh'] = 'Phnom Penh'; +$labels['tz:asia:pontianak'] = 'Pontianak'; +$labels['tz:asia:pyongyang'] = 'Pyongyang'; +$labels['tz:asia:qatar'] = 'Qatar'; +$labels['tz:asia:qyzylorda'] = 'Qyzylorda'; +$labels['tz:asia:riyadh'] = 'Riyadh'; +$labels['tz:asia:sakhalin'] = 'Sakhalin'; +$labels['tz:asia:samarkand'] = 'Samarkand'; +$labels['tz:asia:seoul'] = 'Seoul'; +$labels['tz:asia:shanghai'] = 'Shanghai'; +$labels['tz:asia:singapore'] = 'Singapore'; +$labels['tz:asia:srednekolymsk'] = 'Srednekolymsk'; +$labels['tz:asia:taipei'] = 'Taipei'; +$labels['tz:asia:tashkent'] = 'Tashkent'; +$labels['tz:asia:tbilisi'] = 'Tbilisi'; +$labels['tz:asia:tehran'] = 'Tehran'; +$labels['tz:asia:thimphu'] = 'Thimphu'; +$labels['tz:asia:tokyo'] = 'Tokyo'; +$labels['tz:asia:tomsk'] = 'Tomsk'; +$labels['tz:asia:ulaanbaatar'] = 'Ulaanbaatar'; +$labels['tz:asia:urumqi'] = 'Urumqi'; +$labels['tz:asia:ust-nera'] = 'Ust-Nera'; +$labels['tz:asia:vientiane'] = 'Vientiane'; +$labels['tz:asia:vladivostok'] = 'Vladivostok'; +$labels['tz:asia:yakutsk'] = 'Yakutsk'; +$labels['tz:asia:yangon'] = 'Yangon'; +$labels['tz:asia:yekaterinburg'] = 'Yekaterinburg'; +$labels['tz:asia:yerevan'] = 'Yerevan'; +$labels['tz:atlantic'] = 'Atlantic'; +$labels['tz:atlantic:azores'] = 'Azores'; +$labels['tz:atlantic:bermuda'] = 'Bermuda'; +$labels['tz:atlantic:canary'] = 'Canary'; +$labels['tz:atlantic:cape_verde'] = 'Cape Verde'; +$labels['tz:atlantic:faroe'] = 'Faroe'; +$labels['tz:atlantic:madeira'] = 'Madeira'; +$labels['tz:atlantic:reykjavik'] = 'Reykjavik'; +$labels['tz:atlantic:south_georgia'] = 'South Georgia'; +$labels['tz:atlantic:st_helena'] = 'St Helena'; +$labels['tz:atlantic:stanley'] = 'Stanley'; +$labels['tz:australia'] = 'Australia'; +$labels['tz:australia:adelaide'] = 'Adelaide'; +$labels['tz:australia:brisbane'] = 'Brisbane'; +$labels['tz:australia:broken_hill'] = 'Broken Hill'; +$labels['tz:australia:currie'] = 'Currie'; +$labels['tz:australia:darwin'] = 'Darwin'; +$labels['tz:australia:eucla'] = 'Eucla'; +$labels['tz:australia:hobart'] = 'Hobart'; +$labels['tz:australia:lindeman'] = 'Lindeman'; +$labels['tz:australia:lord_howe'] = 'Lord Howe'; +$labels['tz:australia:melbourne'] = 'Melbourne'; +$labels['tz:australia:perth'] = 'Perth'; +$labels['tz:australia:sydney'] = 'Sydney'; +$labels['tz:europe'] = 'Europe'; +$labels['tz:europe:amsterdam'] = 'Amsterdam'; +$labels['tz:europe:andorra'] = 'Andorra'; +$labels['tz:europe:astrakhan'] = 'Astrakhan'; +$labels['tz:europe:athens'] = 'Athens'; +$labels['tz:europe:belgrade'] = 'Belgrade'; +$labels['tz:europe:berlin'] = 'Berlin'; +$labels['tz:europe:bratislava'] = 'Bratislava'; +$labels['tz:europe:brussels'] = 'Brussels'; +$labels['tz:europe:bucharest'] = 'Bucharest'; +$labels['tz:europe:budapest'] = 'Budapest'; +$labels['tz:europe:busingen'] = 'Busingen'; +$labels['tz:europe:chisinau'] = 'Chisinau'; +$labels['tz:europe:copenhagen'] = 'Copenhagen'; +$labels['tz:europe:dublin'] = 'Dublin'; +$labels['tz:europe:gibraltar'] = 'Gibraltar'; +$labels['tz:europe:guernsey'] = 'Guernsey'; +$labels['tz:europe:helsinki'] = 'Helsinki'; +$labels['tz:europe:isle_of_man'] = 'Isle of Man'; +$labels['tz:europe:istanbul'] = 'Istanbul'; +$labels['tz:europe:jersey'] = 'Jersey'; +$labels['tz:europe:kaliningrad'] = 'Kaliningrad'; +$labels['tz:europe:kiev'] = 'Kiev'; +$labels['tz:europe:kirov'] = 'Kirov'; +$labels['tz:europe:lisbon'] = 'Lisbon'; +$labels['tz:europe:ljubljana'] = 'Ljubljana'; +$labels['tz:europe:london'] = 'London'; +$labels['tz:europe:luxembourg'] = 'Luxembourg'; +$labels['tz:europe:madrid'] = 'Madrid'; +$labels['tz:europe:malta'] = 'Malta'; +$labels['tz:europe:mariehamn'] = 'Mariehamn'; +$labels['tz:europe:minsk'] = 'Minsk'; +$labels['tz:europe:monaco'] = 'Monaco'; +$labels['tz:europe:moscow'] = 'Moscow'; +$labels['tz:europe:oslo'] = 'Oslo'; +$labels['tz:europe:paris'] = 'Paris'; +$labels['tz:europe:podgorica'] = 'Podgorica'; +$labels['tz:europe:prague'] = 'Prague'; +$labels['tz:europe:riga'] = 'Riga'; +$labels['tz:europe:rome'] = 'Rome'; +$labels['tz:europe:samara'] = 'Samara'; +$labels['tz:europe:san_marino'] = 'San Marino'; +$labels['tz:europe:sarajevo'] = 'Sarajevo'; +$labels['tz:europe:saratov'] = 'Saratov'; +$labels['tz:europe:simferopol'] = 'Simferopol'; +$labels['tz:europe:skopje'] = 'Skopje'; +$labels['tz:europe:sofia'] = 'Sofia'; +$labels['tz:europe:stockholm'] = 'Stockholm'; +$labels['tz:europe:tallinn'] = 'Tallinn'; +$labels['tz:europe:tirane'] = 'Tirane'; +$labels['tz:europe:ulyanovsk'] = 'Ulyanovsk'; +$labels['tz:europe:uzhgorod'] = 'Uzhgorod'; +$labels['tz:europe:vaduz'] = 'Vaduz'; +$labels['tz:europe:vatican'] = 'Vatican'; +$labels['tz:europe:vienna'] = 'Vienna'; +$labels['tz:europe:vilnius'] = 'Vilnius'; +$labels['tz:europe:volgograd'] = 'Volgograd'; +$labels['tz:europe:warsaw'] = 'Warsaw'; +$labels['tz:europe:zagreb'] = 'Zagreb'; +$labels['tz:europe:zaporozhye'] = 'Zaporozhye'; +$labels['tz:europe:zurich'] = 'Zurich'; +$labels['tz:indian'] = 'Indian'; +$labels['tz:indian:antananarivo'] = 'Antananarivo'; +$labels['tz:indian:chagos'] = 'Chagos'; +$labels['tz:indian:christmas'] = 'Christmas'; +$labels['tz:indian:cocos'] = 'Cocos'; +$labels['tz:indian:comoro'] = 'Comoro'; +$labels['tz:indian:kerguelen'] = 'Kerguelen'; +$labels['tz:indian:mahe'] = 'Mahe'; +$labels['tz:indian:maldives'] = 'Maldives'; +$labels['tz:indian:mauritius'] = 'Mauritius'; +$labels['tz:indian:mayotte'] = 'Mayotte'; +$labels['tz:indian:reunion'] = 'Reunion'; +$labels['tz:pacific'] = 'Pacific'; +$labels['tz:pacific:apia'] = 'Apia'; +$labels['tz:pacific:auckland'] = 'Auckland'; +$labels['tz:pacific:bougainville'] = 'Bougainville'; +$labels['tz:pacific:chatham'] = 'Chatham'; +$labels['tz:pacific:chuuk'] = 'Chuuk'; +$labels['tz:pacific:easter'] = 'Easter'; +$labels['tz:pacific:efate'] = 'Efate'; +$labels['tz:pacific:enderbury'] = 'Enderbury'; +$labels['tz:pacific:fakaofo'] = 'Fakaofo'; +$labels['tz:pacific:fiji'] = 'Fiji'; +$labels['tz:pacific:funafuti'] = 'Funafuti'; +$labels['tz:pacific:galapagos'] = 'Galapagos'; +$labels['tz:pacific:gambier'] = 'Gambier'; +$labels['tz:pacific:guadalcanal'] = 'Guadalcanal'; +$labels['tz:pacific:guam'] = 'Guam'; +$labels['tz:pacific:honolulu'] = 'Honolulu'; +$labels['tz:pacific:johnston'] = 'Johnston'; +$labels['tz:pacific:kiritimati'] = 'Kiritimati'; +$labels['tz:pacific:kosrae'] = 'Kosrae'; +$labels['tz:pacific:kwajalein'] = 'Kwajalein'; +$labels['tz:pacific:majuro'] = 'Majuro'; +$labels['tz:pacific:marquesas'] = 'Marquesas'; +$labels['tz:pacific:midway'] = 'Midway'; +$labels['tz:pacific:nauru'] = 'Nauru'; +$labels['tz:pacific:niue'] = 'Niue'; +$labels['tz:pacific:norfolk'] = 'Norfolk'; +$labels['tz:pacific:noumea'] = 'Noumea'; +$labels['tz:pacific:pago_pago'] = 'Pago Pago'; +$labels['tz:pacific:palau'] = 'Palau'; +$labels['tz:pacific:pitcairn'] = 'Pitcairn'; +$labels['tz:pacific:pohnpei'] = 'Pohnpei'; +$labels['tz:pacific:port_moresby'] = 'Port Moresby'; +$labels['tz:pacific:rarotonga'] = 'Rarotonga'; +$labels['tz:pacific:saipan'] = 'Saipan'; +$labels['tz:pacific:tahiti'] = 'Tahiti'; +$labels['tz:pacific:tarawa'] = 'Tarawa'; +$labels['tz:pacific:tongatapu'] = 'Tongatapu'; +$labels['tz:pacific:wake'] = 'Wake'; +$labels['tz:pacific:wallis'] = 'Wallis'; diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index f6c6f06c0..20a9f23d0 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -234,7 +234,7 @@ function rcmail_user_prefs($current = null) foreach ($zones as $zone) { list($tzs, $offset) = $zone; - $select->add('(GMT ' . $offset . ') ' . strtr($tzs, '_', ' '), $tzs); + $select->add('(GMT ' . $offset . ') ' . rcmail_timezone_label($tzs), $tzs); } $blocks['main']['options']['timezone'] = array( @@ -1422,3 +1422,39 @@ function rcmail_settings_tabs($attrib) return join('', $tabs); } + +/** + * Localize timezone identifiers + */ +function rcmail_timezone_label($tz) +{ + static $labels; + + if ($labels === null) { + $labels = array(); + $lang = $_SESSION['language']; + if ($lang && $lang != 'en_US') { + if (file_exists(RCUBE_LOCALIZATION_DIR . "$lang/timezones.inc")) { + include RCUBE_LOCALIZATION_DIR . "$lang/timezones.inc"; + } + } + } + + if (empty($labels)) { + return str_replace('_', ' ', $tz); + } + + list($glob, $city) = explode('/', $tz); + + $glob_idx = 'tz:' . strtolower($glob); + $city_idx = 'tz:' . strtolower($glob) . ':' . strtolower($city); + $glob_label = $labels[$glob_idx] ?: $glob; + $city_label = $labels[$city_idx] ?: str_replace('_', ' ', $city); + + $label = $glob_label; + if ($city) { + $label .= '/' . $city_label; + } + + return $label; +}