﻿// ***************************************************************************
// *
// * Copyright (C) 2013 International Business Machines
// * Corporation and others. All Rights Reserved.
// * Tool: org.unicode.cldr.icu.NewLdml2IcuConverter
// * Source File: <path>/common/main/gsw.xml
// *
// ***************************************************************************
/**
 * ICU <specials> source: <path>/common/main/gsw.xml
 */
gsw{
    Version{"2.0.92.87"}
    zoneStrings{
        "Africa:Accra"{
            ec{"Akkra"}
        }
        "Africa:Addis_Ababa"{
            ec{"Addis Abeba"}
        }
        "Africa:Algiers"{
            ec{"Algier"}
        }
        "Africa:Cairo"{
            ec{"Kairo"}
        }
        "Africa:Dar_es_Salaam"{
            ec{"Daressalam"}
        }
        "Africa:Djibouti"{
            ec{"Dschibuti"}
        }
        "Africa:El_Aaiun"{
            ec{"El Aaiún"}
        }
        "Africa:Khartoum"{
            ec{"Khartum"}
        }
        "Africa:Mogadishu"{
            ec{"Mogadischu"}
        }
        "Africa:Ouagadougou"{
            ec{"Wagadugu"}
        }
        "Africa:Sao_Tome"{
            ec{"São Tomé"}
        }
        "America:Asuncion"{
            ec{"Asunción"}
        }
        "America:Cayman"{
            ec{"Kaimaninsle"}
        }
        "America:Curacao"{
            ec{"Curaçao"}
        }
        "America:El_Salvador"{
            ec{"Salvador"}
        }
        "America:Havana"{
            ec{"Havanna"}
        }
        "America:Indiana:Knox"{
            ec{"Knox"}
        }
        "America:Jamaica"{
            ec{"Jamaika"}
        }
        "America:Mexico_City"{
            ec{"Mexiko-Schtadt"}
        }
        "America:Port_of_Spain"{
            ec{"Port-of-Spain"}
        }
        "America:Scoresbysund"{
            ec{"Ittoqqortoormiit"}
        }
        "America:St_Kitts"{
            ec{"St. Kitts"}
        }
        "America:St_Lucia"{
            ec{"St. Lucia"}
        }
        "America:St_Thomas"{
            ec{"St. Thomas"}
        }
        "America:St_Vincent"{
            ec{"St. Vincent"}
        }
        "Antarctica:DumontDUrville"{
            ec{"Dumont D'Urville"}
        }
        "Antarctica:South_Pole"{
            ec{"Süüdpol"}
        }
        "Antarctica:Vostok"{
            ec{"Woschtok"}
        }
        "Asia:Aqtobe"{
            ec{"Aktobe"}
        }
        "Asia:Baghdad"{
            ec{"Bagdad"}
        }
        "Asia:Bishkek"{
            ec{"Bischkek"}
        }
        "Asia:Damascus"{
            ec{"Damaskus"}
        }
        "Asia:Dushanbe"{
            ec{"Duschanbe"}
        }
        "Asia:Hong_Kong"{
            ec{"Hongkong"}
        }
        "Asia:Kamchatka"{
            ec{"Kamtschatka"}
        }
        "Asia:Krasnoyarsk"{
            ec{"Krasnojarsk"}
        }
        "Asia:Macau"{
            ec{"Macao"}
        }
        "Asia:Muscat"{
            ec{"Muschkat"}
        }
        "Asia:Nicosia"{
            ec{"Nikosia"}
        }
        "Asia:Novosibirsk"{
            ec{"Nowosibirsk"}
        }
        "Asia:Pyongyang"{
            ec{"Pjöngjang"}
        }
        "Asia:Qatar"{
            ec{"Katar"}
        }
        "Asia:Riyadh"{
            ec{"Riad"}
        }
        "Asia:Sakhalin"{
            ec{"Sachalin"}
        }
        "Asia:Singapore"{
            ec{"Singapur"}
        }
        "Asia:Taipei"{
            ec{"Taipeh"}
        }
        "Asia:Tashkent"{
            ec{"Taschkent"}
        }
        "Asia:Tbilisi"{
            ec{"Tiflis"}
        }
        "Asia:Tehran"{
            ec{"Teheran"}
        }
        "Asia:Tokyo"{
            ec{"Tokio"}
        }
        "Asia:Ulaanbaatar"{
            ec{"Ulan-Baator"}
        }
        "Asia:Vladivostok"{
            ec{"Wladiwostok"}
        }
        "Asia:Yakutsk"{
            ec{"Jakutsk"}
        }
        "Asia:Yekaterinburg"{
            ec{"Jekaterinburg"}
        }
        "Asia:Yerevan"{
            ec{"Erivan"}
        }
        "Atlantic:Azores"{
            ec{"Azore"}
        }
        "Atlantic:Bermuda"{
            ec{"Bermudas"}
        }
        "Atlantic:Canary"{
            ec{"Kanare"}
        }
        "Atlantic:Cape_Verde"{
            ec{"Kap Verde"}
        }
        "Atlantic:Faeroe"{
            ec{"Färöer"}
        }
        "Atlantic:South_Georgia"{
            ec{"Süüd-Georgie"}
        }
        "Atlantic:St_Helena"{
            ec{"St. Helena"}
        }
        "Etc:Unknown"{
            ec{"Unbekannt"}
        }
        "Europe:Athens"{
            ec{"Athen"}
        }
        "Europe:Brussels"{
            ec{"Brüssel"}
        }
        "Europe:Bucharest"{
            ec{"Bukarescht"}
        }
        "Europe:Chisinau"{
            ec{"Kischinau"}
        }
        "Europe:Copenhagen"{
            ec{"Kopehage"}
        }
        "Europe:Kiev"{
            ec{"Kiew"}
        }
        "Europe:Lisbon"{
            ec{"Lissabon"}
        }
        "Europe:Luxembourg"{
            ec{"Luxemburg"}
        }
        "Europe:Moscow"{
            ec{"Moskau"}
        }
        "Europe:Rome"{
            ec{"Rom"}
        }
        "Europe:Tirane"{
            ec{"Tirana"}
        }
        "Europe:Uzhgorod"{
            ec{"Uschgorod"}
        }
        "Europe:Vienna"{
            ec{"Wien"}
        }
        "Europe:Vilnius"{
            ec{"Wilna"}
        }
        "Europe:Warsaw"{
            ec{"Warschau"}
        }
        "Europe:Zaporozhye"{
            ec{"Saporischja"}
        }
        "Europe:Zurich"{
            ec{"Züri"}
        }
        "Indian:Christmas"{
            ec{"Wienachts-Insle"}
        }
        "Indian:Comoro"{
            ec{"Komore"}
        }
        "Indian:Maldives"{
            ec{"Maledive"}
        }
        "Indian:Reunion"{
            ec{"Réunion"}
        }
        "Pacific:Easter"{
            ec{"Oschterinsle"}
        }
        "Pacific:Fiji"{
            ec{"Fidschi"}
        }
        "meta:Acre"{
            ld{"Acre-Summerziit"}
            lg{"Acre-Ziit"}
            ls{"Acre-Schtandardziit"}
        }
        "meta:Afghanistan"{
            ls{"Afghanischtan-Ziit"}
        }
        "meta:Africa_Central"{
            ls{"Zentralafrikanischi Ziit"}
        }
        "meta:Africa_Eastern"{
            ls{"Oschtafrikanischi Ziit"}
        }
        "meta:Africa_Southern"{
            ls{"Süüdafrikanischi ziit"}
        }
        "meta:Africa_Western"{
            ld{"Weschtafrikanischi Summerziit"}
            lg{"Weschtafrikanischi Ziit"}
            ls{"Weschtafrikanischi Schtandardziit"}
        }
        "meta:Alaska"{
            ld{"Alaska-Summerziit"}
            lg{"Alaska-Ziit"}
            ls{"Alaska-Schtandardziit"}
        }
        "meta:Almaty"{
            ld{"Almaty-Summerziit"}
            lg{"Almaty-Ziit"}
            ls{"Almaty-Schtandardziit"}
        }
        "meta:Amazon"{
            ld{"Amazonas-Summerziit"}
            lg{"Amazonas-Ziit"}
            ls{"Amazonas-Schtandardziit"}
        }
        "meta:Europe_Central"{
            ld{"Mitteleuropäischi Summerziit"}
            lg{"Mitteleuropäischi Ziit"}
            ls{"Mitteleuropäischi Schtandardziit"}
            sd{"MESZ"}
            sg{"MEZ"}
            ss{"MEZ"}
        }
        "meta:Europe_Eastern"{
            ld{"Oschteuropäischi Summerziit"}
            lg{"Oschteuropäischi Ziit"}
            ls{"Oschteuropäischi Schtandardziit"}
            sd{"OESZ"}
            sg{"OEZ"}
            ss{"OEZ"}
        }
        "meta:Europe_Western"{
            ld{"Weschteuropäischi Summerziit"}
            lg{"Weschteuropäischi Ziit"}
            ls{"Weschteuropäischi Schtandardziit"}
            sd{"WESZ"}
            sg{"WEZ"}
            ss{"WEZ"}
        }
        "meta:Moscow"{
            ld{"Moskauer Summerziit"}
            lg{"Moskauer Ziit"}
            ls{"Moskauer Schtandardziit"}
        }
        fallbackFormat{"{1} ({0})"}
        gmtFormat{"GMT{0}"}
        hourFormat{"+HH:mm;-HH:mm"}
    }
}
