// *******************************************************************************
// *
// *   Copyright (C) 1997-2000, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// *******************************************************************************

// Country names in de, de_AT, and de_CH are short names from the
// list of names maintained by the German
// Federal Permanent Committee for Geographic Names,
// Sta"ndiger Ausschuss fu"r Geographische Namen (StAGN),
// as published at its web site at
// http://www.ifag.de/kartographie/Stagn/Staatennamen.htm
// Date there: 1999-apr-19

de_CH {
    Countries {
        BD { "Bangladesh" }
        BW { "Botswana" }
        BN { "Brunei" }
        DJ { "Djibouti" }
        CV { "Kapverden" }
        MH { "Marshall-Inseln" }
        RW { "Rwanda" }
        SB { "Salomon-Inseln" }
        ST { "Sao Tom\u00e9 und Principe" }
        ZW { "Zimbabwe" }
        GB { "Grossbritannien" }
    }
    CurrencyElements { 
            "SFr.",
            "CHF",
            ".",
    }
    LocaleID { "0807" }
    LocaleString { "de_CH" }
    NumberElements { 
            ".",
            "'",
            ";",
            "%",
            "0",
            "#",
            "-",
            "E",
            "\u2030",
            "\u221E",
            "\uFFFD",
    }
    NumberPatterns { 
            "#,##0.###;-#,##0.###",
            "\u00A4 #,##0.00;\u00A4-#,##0.00",
            "#,##0%",
    }
    ShortCountry { "CHE" }
    zoneStrings { 
        {
                "Africa/Casablanca",
                "GMT",
                "GMT",
                "GMT",
                "GMT",
        }
    }
}
