// ***************************************************************************
// *
// *   Copyright (C) 1997-2002, 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 {
    Version{ "1.2" }

    "%%PHONEBOOK" { "Telefonbuch-Sortierregeln" }

    // This shouldn't be used, but valid data should be here.
    // vorm. -> vormittags -> in the morning
    // nachm. -> nachmittags -> in the afternoon
    AmPmMarkers {
        "vorm.",
        "nachm.",
    }
    Countries {
        //AF { "Afghanistan" }
        EG { "\u00c4gypten" }
        AL { "Albanien" }
        DZ { "Algerien" }
        //AD { "Andorra" }
        //AO { "Angola" }
        AG { "Antigua und Barbuda" }
        GQ { "\u00c4quatorialguinea" }
        AR { "Argentinien" }
        AM { "Armenien" }
        AZ { "Aserbaidschan" }
        ET { "\u00c4thiopien" }
        AU { "Australien" }
        //BS { "Bahamas" }
        //BH { "Bahrain" }
        BD { "Bangladesch" }
        //BB { "Barbados" }
        BE { "Belgien" }
        //BZ { "Belize" }
        //BJ { "Benin" }
        //BT { "Bhutan" }
        BO { "Bolivien" }
        BA { "Bosnien und Herzegowina" }
        BW { "Botsuana" }
        BR { "Brasilien" }
        BN { "Brunei Darussalam" }
        BG { "Bulgarien" }
        //BF { "Burkina Faso" }
        //BI { "Burundi" }
        //CL { "Chile" }
        //CN { "China" }
        //CR { "Costa Rica" }
        CI { "C\u00f4te d\u0092Ivoire" }
        DK { "D\u00e4nemark" }
        DE { "Deutschland" }
        //DM { "Dominica" }
        DO { "Dominikanische Republik" }
        DJ { "Dschibuti" }
        //EC { "Ecuador" }
        //SV { "El Salvador" }
        //ER { "Eritrea" }
        EE { "Estland" }
        FJ { "Fidschi" }
        FI { "Finnland" }
        FR { "Frankreich" }
        GA { "Gabun" }
        //GM { "Gambia" }
        GE { "Georgien" }
        //GH { "Ghana" }
        //GD { "Grenada" }
        GR { "Griechenland" }
        //GT { "Guatemala" }
        //GN { "Guinea" }
        //GW { "Guinea-Bissau" }
        //GY { "Guyana" }
        //HT { "Haiti" }
        //HN { "Honduras" }
        IN { "Indien" }
        ID { "Indonesien" }
        IQ { "Irak" }
        //IR { "Iran" }
        IE { "Irland" }
        IS { "Island" }
        //IL { "Israel" }
        IT { "Italien" }
        JM { "Jamaika" }
        //JP { "Japan" }
        YE { "Jemen" }
        JO { "Jordanien" }
        YU { "Jugoslawien" }
        KH { "Kambodscha" }
        CM { "Kamerun" }
        CA { "Kanada" }
        CV { "Kap Verde" }
        KZ { "Kasachstan" }
        QA { "Katar" }
        KE { "Kenia" }
        KG { "Kirgisistan" }
        //KI { "Kiribati" }
        CO { "Kolumbien" }
        KM { "Komoren" }
        CG { "Kongo" }
        CD { "Demokratische Republik Kongo" }
        KP { "Demokratische Volksrepublik Korea" }
        KR { "Republik Korea" }
        HR { "Kroatien" }
        CU { "Kuba" }
        //KW { "Kuwait" }
        //LA { "Laos" }
        //LS { "Lesotho" }
        LV { "Lettland" }
        LB { "Libanon" }
        //LR { "Liberia" }
        LY { "Libyen" }
        //LI { "Liechtenstein" }
        LT { "Litauen" }
        LU { "Luxemburg" }
        MG { "Madagaskar" }
        //MW { "Malawi" }
        //MY { "Malaysia" }
        MV { "Malediven" }
        //ML { "Mali" }
        //MT { "Malta" }
        MA { "Marokko" }
        MH { "Marshallinseln" }
        MR { "Mauretanien" }
        //MU { "Mauritius" }
        MK { "Mazedonien" }
        MX { "Mexiko" }
        FM { "Mikronesien" }
        MD { "Moldawien" }
        //MC { "Monaco" }
        MN { "Mongolei" }
        MZ { "Mosambik" }
        //MM { "Myanmar" }
        //NA { "Namibia" }
        //NR { "Nauru" }
        //NP { "Nepal" }
        NZ { "Neuseeland" }
        //NI { "Nicaragua" }
        NL { "Niederlande" }
        //NE { "Niger" }
        //NG { "Nigeria" }
        NO { "Norwegen" }
        //OM { "Oman" }
        AT { "\u00d6sterreich" }
        //PK { "Pakistan" }
        //PW { "Palau" }
        //PA { "Panama" }
        PG { "Papua-Neuguinea" }
        //PY { "Paraguay" }
        //PE { "Peru" }
        PH { "Philippinen" }
        PL { "Polen" }
        //PT { "Portugal" }
        RW { "Ruanda" }
        RO { "Rum\u00e4nien" }
        RU { "Russland" }
        KN { "St. Kitts und Nevis" }
        LC { "St. Lucia" }
        VC { "St. Vincent und die Grenadinen" }
        SB { "Salomonen" }
        ZM { "Sambia" }
        //WS { "Samoa" }
        //SM { "San Marino" }
        ST { "S\u00e3o Tom\u00e9 und Pr\u00edncipe" }
        SA { "Saudi-Arabien" }
        SE { "Schweden" }
        CH { "Schweiz" }
        //SN { "Senegal" }
        SC { "Seychellen" }
        //SL { "Sierra Leone" }
        ZW { "Simbabwe" }
        SG { "Singapur" }
        SK { "Slowakei" }
        SI { "Slowenien" }
        //SO { "Somalia" }
        ES { "Spanien" }
        //LK { "Sri Lanka" }
        ZA { "S\u00fcdafrika" }
        //SD { "Sudan" }
        //SR { "Suriname" }
        SZ { "Swasiland" }
        SY { "Syrien" }
        TJ { "Tadschikistan" }
        //TW { "Taiwan" }
        TZ { "Tansania" }
        //TH { "Thailand" }
        //TG { "Togo" }
        //TO { "Tonga" }
        TT { "Trinidad und Tobago" }
        TD { "Tschad" }
        CZ { "Tschechien" }
        TN { "Tunesien" }
        TR { "T\u00fcrkei" }
        //TM { "Turkmenistan" }
        //TV { "Tuvalu" }
        //UG { "Uganda" }
        //UA { "Ukraine" }
        HU { "Ungarn" }
        //UY { "Uruguay" }
        UZ { "Usbekistan" }
        //VU { "Vanuatu" }
        VA { "Vatikanstadt" }
        //VE { "Venezuela" }
        AE { "Vereinigte Arabische Emirate" }
        GB { "Vereinigtes K\u00f6nigreich" }
        US { "Vereinigte Staaten" }
        //VN { "Vietnam" }
        //BY { "Belarus" }
        CF { "Zentralafrikanische Republik" }
        CY { "Zypern" }

        UM { "Amerikanisch-Ozeanien" }
        AS { "Amerikanisch-Samoa" }
        VI { "Amerikanische Jungferninseln" }
        //AI { "Anguilla" }
        AQ { "Antarktis" }
        //AW { "Aruba" }
        SJ { "Svalbard und Jan Mayen" }
        //BM { "Bermuda" }
        BV { "Bouvetinsel" }
        VG { "Britische Jungferninseln" }
        IO { "Britisches Territorium im Indischen Ozean" }
        CK { "Cookinseln" }
        FK { "Falklandinseln" }
        FO { "F\u00e4r\u00f6er" }
        GF { "Franz\u00f6sisch-Guayana" }
        PF { "Franz\u00f6sisch-Polynesien" }
        TF { "Franz\u00f6sische S\u00fcd- und Antarktisgebiete" }
        //GI { "Gibraltar" }
        GL { "Gr\u00f6nland" }
        //GP { "Guadeloupe" }
        //GU { "Guam" }
        HM { "Heard und McDonaldinseln" }
        KY { "Kaimaninseln" }
        CC { "Kokosinseln" }
        MO { "Macau S.A.R.,China" }
        //MQ { "Martinique" }
        //YT { "Mayotte" }
        //MS { "Montserrat" }
        NC { "Neukaledonien" }
        AN { "Niederl\u00e4ndische Antillen" }
        //NU { "Niue" }
        MP { "N\u00f6rdliche Marianen" }
        NF { "Norfolkinsel" }
        //PN { "Pitcairn" }
        //PR { "Puerto Rico" }
        //RE { "R\u00e9union" }
        SH { "St. Helena" }
        PM { "St. Pierre und Miquelon" }
        GS { "S\u00fcdgeorgien und die S\u00fcdlichen Sandwichinseln" }
        //TK { "Tokelau" }
        TC { "Turks- und Caicosinseln" }
        WF { "Wallis und Futuna" }
        CX { "Weihnachtsinsel" }

        // some entries that are not in the official list:
        //EH { "West Sahara" }
        //HK { "Hong Kong S.A.R., China" }
        SP { "Serbien" }
        // Zaire is now the Democratic Republic of Congo (CD)
        // same as in root: ZR { "Zaire" }
    }
    DateTimeElements:intvector { 
        2,
        4,
    }
    DateTimePatterns { 
        "H:mm' Uhr 'z",
        "HH:mm:ss z",
        "HH:mm:ss",
        "HH:mm",
        "EEEE, d. MMMM yyyy",
        "d. MMMM yyyy",
        "dd.MM.yyyy",
        "dd.MM.yy",
        "{1} {0}",
    }
    DayAbbreviations { 
        "So",
        "Mo",
        "Di",
        "Mi",
        "Do",
        "Fr",
        "Sa",
    }
    DayNames { 
        "Sonntag",
        "Montag",
        "Dienstag",
        "Mittwoch",
        "Donnerstag",
        "Freitag",
        "Samstag",
    }
    Eras { 
        "v. Chr.",
        "n. Chr.",
    }

    // For the languages, I am trying to use the adjective list in the
    // official list of country names.
    // Sometimes I am guessing, many entries have a question mark for
    // further checking.
    //   Markus Scherer, 2000jun01
    Languages {
        ab { "Abchasisch" }
        // ? aa { "Afar" }
        // same as in root? af { "Afrikaans" }
        sq { "Albanisch" }
        am { "Amharisch" } // ?
        ar { "Arabisch" }
        hy { "Armenisch" }
        // ? as { "Assamese" }
        // ? ay { "Aymara" }
        az { "Aserbaidschanisch" }
        // ? ba { "Bashkir" }
        eu { "Baskisch" }
        bn { "Bengalisch" } // ?
        dz { "Bhutanisch" }
        // ? bh { "Bihari" }
        // ? bi { "Bislama" }
        br { "Bretonisch" }
        bg { "Bulgarisch" }
        my { "Burmesisch" }
        be { "Wei\u00dfrussisch" }
        km { "Kkambodschanisch" }
        ca { "Katalanisch" } // Katalonisch?
        zh { "Chinesisch" }
        co { "Korsisch" }
        hr { "Kroatisch" }
        cs { "Tschechisch" }
        da { "D\u00e4nisch" }
        nl { "Holl\u00e4ndisch" }
        en { "Englisch" }
        // same as in root: eo { "Esperanto" }
        et { "Estnisch" }
        fo { "F\u00e4r\u00f6isch" }
        fj { "Fidschianisch" }
        fi { "Finnisch" }
        fr { "Franz\u00f6sisch" }
        fy { "Frisisch" }
        gl { "Galizisch" } // Galizianisch??
        ka { "Georgisch" }
        de { "Deutsch" }
        el { "Griechisch" }
        kl { "Gr\u00f6nl\u00e4ndisch" }
        // ? gn { "Guarani" }
        // ? gu { "Gujarati" }
        // ? ha { "Hausa" }
        he { "Hebr\u00e4isch" }
        // iw { "Hebr\u00e4isch" }// Use he instead
        // same as in root? hi { "Hindi" }
        hu { "Ungarisch" }
        is { "Isl\u00e4ndisch" }
        id { "Indonesisch" }
        //in { "Indonesisch" }  // Use "id" instead
        // same as in root: ia { "Interlingua" }
        // same as in root: ie { "Interlingue" }
        // ? iu { "Inukitut" }
        // ? ik { "Inupiak" }
        ga { "Irisch" }
        it { "Italienisch" }
        ja { "Japanisch" }
        jv { "Javanesisch" } // ?
        //jw { "Javanesisch" } // Use jv instead
        // ? kn { "Kannada" }
        ks { "Kaschmirisch" } // ?
        kk { "Kasachisch" }
        // ? rw { "Kinyarwanda" }
        ky { "Kirgisisch" }
        // ? rn { "Kirundi" }
        ko { "Koreanisch" }
        ku { "Kurdisch" }
        // ? lo { "Laothian" }
        la { "Latein" }
        lv { "Lettisch" }
        // ? ln { "Lingala" }
        lt { "Litauisch" }
        mk { "Mazedonisch" }
        // ? mg { "Malagasy" }
        // ? ms { "Malay" }
        // ? ml { "Malayalam" }
        mt { "Maltesisch" }
        // ? mi { "Maori" }
        // ? mr { "Marathi" }
        mo { "Moldawisch" }
        mn { "Mongolisch" }
        na { "Nauruisch" }
        nb { "Norwegisch Bokm\u00e5l" }    
        ne { "Nepalesisch" }
        nn { "Norwegisch Nynorsk" }
        no { "Norwegisch" }
        // ? oc { "Occitan" }
        // ? or { "Oriya" }
        // ? om { "Oromo (Afan)" }
        // ? ps { "Pashto (Pushto)" }
        fa { "Persisch" }
        pl { "Polnisch" }
        pt { "Portugiesisch" }
        // ? pa { "Punjabi" }
        // ? qu { "Quechua" }
        rm { "R\u00e4toromanisch" }
        ro { "Rum\u00e4nisch" }
        ru { "Russisch" }
        sm { "Samoanisch" }
        // ? sg { "Sangro" }
        // same as in root: sa { "Sanskrit" }
        gd { "Schottisch-G\u00e4lisch" }
        sr { "Serbisch" }
        sh { "Serbo-Kroatisch" }
        // ? st { "Sesotho" }
        // ? tn { "Setswana" }
        // ? sn { "Shona" }
        // ? sd { "Sindhi" }
        // ? si { "Singhalese" }
        // ? ss { "Siswati" }
        sk { "Slowakisch" }
        sl { "Slowenisch" }
        so { "Somalisch" }
        es { "Spanisch" }
        // ? su { "Sundanese" }
        // ? sw { "Swahili" }
        sv { "Schwedisch" }
        // ? tl { "Tagalog" }
        tg { "Tadschikisch" }
        // ? ta { "Tamil" }
        // ? tt { "Tatar" }
        // ? te { "Telugu" }
        // same as in root? th { "Thai" }
        bo { "Tibetisch" }
        // ? ti { "Tigrinya" }
        // ? to { "Tonga" }
        // ? ts { "Tsonga" }
        tr { "T\u00fcrkisch" }
        tk { "T\u00fcrkmenisch" } // Turkmenisch??
        // ? tw { "Twi" }
        // ? ug { "Uighur" }
        uk { "Ukrainisch" }
        // ? ur { "Urdu" }
        uz { "Usbekisch" }
        vi { "Vietnamesisch" }
        //vo { "Volap\u00fck" }
        cy { "Walisisch" }
        // ? wo { "Wolof" }
        // ? xh { "Xhosa" }
        // ji { "Jiddisch" }  // Use "yi" instead
        yi { "Jiddisch" }
        // ? yo { "Yoruba" }
        // ? za { "Zhuang" }
        // same as in root?? zu { "Zulu" }
    }
    LocaleID:int { 0x07 }
//    LocaleString { "de" }
    MonthAbbreviations { 
        "Jan",
        "Feb",
        "Mrz",
        "Apr",
        "Mai",
        "Jun",
        "Jul",
        "Aug",
        "Sep",
        "Okt",
        "Nov",
        "Dez",
    }
    MonthNames { 
        "Januar",
        "Februar",
        "M\u00E4rz",
        "April",
        "Mai",
        "Juni",
        "Juli",
        "August",
        "September",
        "Oktober",
        "November",
        "Dezember",
    }
    NumberElements {
        ",",
        ".",
        ";",
        "%",
        "0",
        "#",
        "-",
        "E",
        "\u2030",
        "\u221E",
        "\uFFFD",
        ",",
    }
//    ShortLanguage { "deu" }
    localPatternChars { "GjMtkHmsSEDFwWahKzJe" }
    zoneStrings { 
        {
            "Europe/Berlin", 
            "Mitteleurop\u00E4ische Zeit", 
            "MEZ", 
            "Mitteleurop\u00E4ische Sommerzeit", 
            "MESZ",
            "Berlin",
        }
    }
//    LocaleScript{ 
//        "Latn",  // ISO 15924 Name 
//    }
    ExemplarCharacters { "[a-z \u00e4 \u00f6 \u00fc \u00df]" }
    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------

    // * RuleBasedNumberFormat data for German

    // again, I'm not 100% sure of these rules.  I think both "hundert" and
    // "einhundert" are correct or 100, but I'm not sure which is preferable
    // in situations where this framework is likely to be used.  Also, is it
    // really true that numbers are run together into compound words all the
    // time?

    SpelloutRules {
        // 1 is "eins" when by itself, but turns into "ein" in most
        // combinations
        "%alt-ones:\n"
        "    -x: minus >>;\n"
        "    x.x: << komma >>;\n"
        "    null; eins; =%%main=;\n"
        "%%main:\n"
               // words for numbers from 0 to 12.  Notice that the values
               // from 13 to 19 can derived algorithmically, unlike in most
               // other languages
        "    null; ein; zwei; drei; vier; f\u00fcnf; sechs; sieben; acht; neun;\n"
        "    zehn; elf; zw\u00f6lf; >>zehn;\n"
               // rules for the multiples of 10.  Notice that the ones digit
               // goes on the front
        "    20: [>>und]zwanzig;\n"
        "    30: [>>und]drei\u00dfig;\n"
        "    40: [>>und]vierzig;\n"
        "    50: [>>und]f\u00fcnfzig;\n"
        "    60: [>>und]sechzig;\n"
        "    70: [>>und]siebzig;\n"
        "    80: [>>und]achtzig;\n"
        "    90: [>>und]neunzig;\n"
        "    100: hundert[>%alt-ones>];\n"
        "    200: <<hundert[>%alt-ones>];\n"
        "    1000: tausend[>%alt-ones>];\n"
        "    2000: <<tausend[>%alt-ones>];\n"
        "    1,000,000: eine Million[ >%alt-ones>];\n"
        "    2,000,000: << Millionen[ >%alt-ones>];\n"
        "    1,000,000,000: eine Milliarde[ >%alt-ones>];\n"
        "    2,000,000,000: << Milliarden[ >%alt-ones>];\n"
        "    1,000,000,000,000: eine Billion[ >%alt-ones>];\n"
        "    2,000,000,000,000: << Billionen[ >%alt-ones>];\n"
        "    1,000,000,000,000,000: =#,##0=;"
        "%%lenient-parse:\n"
        "    &\u0000 << ' ' << '-'\n"
        "    & ae , \u00e4 & ae , \u00c4\n"
        "    & oe , \u00f6 & oe , \u00d6\n"
        "    & ue , \u00fc & ue , \u00dc\n"
    }

    // Currency display names

    // See for example "W\u00e4hrungscodes" at
    // http://www-cik.uni-paderborn.de/vddk/Dokumentationen/Dokumentation_IDM_1_3/ISO-Tabellen/Wahrungscodes/body_wahrungscodes.html
    // (On the page it says "Quelle: gem\u00e4\u00df ISO 4217 3-alpha-code (Stand: Juli 2000)"
    // and "Verzeichnis der ISO-Codes f\u00FCr W\u00e4hrung mit Land".)

    // See also http://umrechnen.de/
    Currencies {
        AED { "AED", "UAE Dirham" }
        AFA { "AFA", "Afghani" }
        ALL { "ALL", "Lek" }
        AMD { "AMD", "Dram" }
        ANG { "ANG", "Niederl. Antillen Gulden" }
        AOA { "AOA", "Kwanza" }
        AON { "AON", "Neuer Kwanza" }
        AOR { "AOR", "Kwanza Reajustado" }
        ARS { "ARS", "Argentinischer Peso" }
        ATS { "\u00F6S", "\u00D6sterreichischer Schilling" }
        AUD { "AUD", "Australischer Dollar" }
        AWG { "AWG", "Aruba Florin" }
        AZM { "AZM", "Aserbeidschan Manat" }
        BAM { "BAM", "Konvertierbare Mark" }
        BBD { "BBD", "Barbados-Dollar" }
        BDT { "BDT", "Taka" }
        BEF { "BEF", "Belgischer Franc" }
        BGL { "BGL", "Lew" }
        BGN { "BGN", "Bulgarian Lev" }
        BHD { "BHD", "Bahrain-Dinar" }
        BIF { "BIF", "Burundi-Franc" }
        BMD { "BMD", "Bermuda-Dollar" }
        BND { "BND", "Brunei-Dollar" }
        BOB { "BOB", "Boliviano" }
        BOV { "BOV", "Mvdol" } // financial instrument
        BRL { "BRL", "Real" }
        BSD { "BSD", "Bahama-Dollar" }
        BTN { "BTN", "Ngultrum" }
        BWP { "BWP", "Pula" }
        BYB { "BYB", "Belarus Rubel (alt)" }
        BYR { "BYR", "Belarus Rubel (neu)" }
        BZD { "BZD", "Belize-Dollar" }
        CAD { "CAD", "Kanadischer Dollar" }
        CDF { "CDF", "Franc congolais" }
        CHF { "SFr.", "Schweizer Franken" }
        CLF { "CLF", "Unidades de Fomento" }
        CLP { "CLP", "Chilenischer Peso" }
        CNY { "CNY", "Renminbi Yuan" }
        COP { "COP", "Kolumbianischer Peso" }
        CRC { "CRC", "Costa Rica Colon" }
        CUP { "CUP", "Kubanischer Peso" }
        CVE { "CVE", "Kap Verde Escudo" }
        CYP { "CYP", "Zypern Pfund" }
        CZK { "CZK", "Tschechische Krone" }
        DEM { "DM",  "Deutsche Mark" }
        DJF { "DJF", "Dschibuti-Franc" }
        DKK { "DKK", "D\u00E4nische Krone" }
        DOP { "DOP", "Dominikanischer Peso" }
        DZD { "DZD", "Algerischer Dinar" }
        ECS { "ECS", "Ecuadorianischer Sucre" }
        ECV { "ECV", "Verrechnungseinheit f\u00FCr EC" }
        EEK { "EEK", "Estnische Krone" }
        EGP { "EGP", "\u00C4gyptisches Pfund" }
        ERN { "ERN", "Nakfa" }
        ESP { "ESP", "Spanische Pesete" }
        ETB { "ETB", "Birr" }
        EUR { "\u20AC", "Euro" }
        FIM { "FIM", "Finnische Mark" }
        FJD { "FJD", "Fidschi Dollar" }
        FKP { "FKP", "Falkland Pfund" }
        FRF { "FF",  "Franz\u00F6sischer Franc" }
        GBP { "\u00A3", "Pfund Sterling" }
        GEL { "GEL", "Georgischer Lari" }
        GHC { "GHC", "Cedi" }
        GIP { "GIP", "Gibraltar Pfund" }
        GMD { "GMD", "Dalasi" }
        GNF { "GNF", "Guinea Franc" }
        GRD { "GRD", "Griechische Drachme" }
        GTQ { "GTQ", "Quetzal" }
        GWP { "GWP", "Guinea Bissau Peso" }
        GYD { "GYD", "Guyana Dollar" }
        HKD { "HKD", "Hongkong Dollar" }
        HNL { "HNL", "Lempira" }
        HRK { "HRK", "Kuna" }
        HTG { "HTG", "Gourde" }
        HUF { "HUF", "Forint" }
        IDR { "IDR", "Rupiah" }
        IEP { "IEP", "Irisches Pfund" }
        ILS { "ILS", "Schekel" }
        INR { "=0#Rs.|1#Re.|1<Rs.", "Indische Rupie" }
        IQD { "IQD", "Irak Dinar" }
        IRR { "IRR", "Rial" }
        ISK { "ISK", "Isl\u00E4ndische Krone" }
        ITL { "\u20A4", "Italienische Lire" }
        JMD { "JMD", "Jamaika Dollar" }
        JOD { "JOD", "Jordanischer Dinar" }
        JPY { "\u00A5", "Yen" }
        KES { "KES", "Kenia Schilling" }
        // KGS { "KGS", "SOM" } -- not useful, commented out -- markus 20030424
        KHR { "KHR", "Riel" }
        KMF { "KMF", "Komoren Franc" }
        KPW { "KPW", "Nordkoreanischer Won" }
        KRW { "KRW", "S\u00FCdkoreanischer Won" }
        KWD { "KWD", "Kuwait Dinar" }
        KYD { "KYD", "Kaiman-Dollar" }
        KZT { "KZT", "Tenge" }
        LAK { "LAK", "Kip" }
        LBP { "LBP", "Libanesisches Pfund" }
        LKR { "LKR", "Sri Lanka Rupie" }
        LRD { "LRD", "Liberianischer Dollar" }
        LSL { "LSL", "Loti" }
        LTL { "LTL", "Litauischer Litas" }
        LUF { "LUF", "Luxemburgischer Franc" }
        LVL { "LVL", "Lettischer Lats" }
        LYD { "LYD", "Libyscher Dinar" }
        MAD { "MAD", "Marokkanischer Dirham" }
        MDL { "MDL", "Moldau Leu" }
        MGF { "MGF", "Madagaskar Franc" }
        MKD { "MKD", "Denar" }
        MMK { "MMK", "Kyat" }
        MNT { "MNT", "Tugrik" }
        MOP { "MOP", "Pataca" }
        MRO { "MRO", "Ouguiya" }
        MTL { "MTL", "Maltesische Lira" }
        MUR { "MUR", "Mauritius Rupie" }
        MVR { "MVR", "Rufiyaa" }
        MWK { "MWK", "Malawi Kwacha" }
        MXN { "MXN", "Mexikanischer Peso" }
        MXV { "MXV", "Mexican Unidad de Inversion (UDI)" }
        MYR { "MYR", "Malaysischer Ringgit" }
        MZM { "MZM", "Metical" }
        NAD { "NAD", "Namibia Dollar" }
        NGN { "NGN", "Naira" }
        NIO { "NIO", "Gold-Cordoba" }
        NLG { "NLG", "Holl\u00e4ndischer Gulden" }
        NOK { "NOK", "Norwegische Krone" }
        NPR { "NPR", "Nepalesische Rupie" }
        NZD { "NZD", "Neuseeland Dollar" }
        OMR { "OMR", "Rial Omani" }
        PAB { "PAB", "Balboa" }
        PEN { "PEN", "Neuer Sol" }
        PGK { "PGK", "Kina" }
        PHP { "PHP", "Philippinischer Peso" }
        PKR { "PKR", "Pakistanische Rupie" }
        PLN { "PLN", "Zloty" }
        PTE { "PTE", "Portugiesischer Escudo" }
        PYG { "PYG", "Guarani" }
        QAR { "QAR", "Katar Riyal" }
        ROL { "ROL", "Leu" }
        RUB { "RUB", "Russischer Rubel (neu)" }
        RUR { "RUR", "Russischer Rubel (alt)" }
        RWF { "RWF", "Ruanda Franc" }
        SAR { "SAR", "Saudi Riyal" }
        SBD { "SBD", "Salomonen Dollar" }
        SCR { "SCR", "Seychellen Rupie" }
        SDD { "SDD", "Sudanesischer Dinar" }
        SEK { "SEK", "Schwedische Krone" }
        SGD { "SGD", "Singapur Dollar" }
        SHP { "SHP", "St. Helena Pfund" }
        SIT { "SIT", "Tolar" }
        SKK { "SKK", "Slowakische Krone" }
        SLL { "SLL", "Leone" }
        SOS { "SOS", "Somalia Schilling" }
        SRG { "SRG", "Suriname Gulden" }
        STD { "STD", "Dobra" }
        SVC { "SVC", "El Salvador Colon" }
        SYP { "SYP", "Syrisches Pfund" }
        SZL { "SZL", "Lilangeni" }
        THB { "THB", "Baht" }
        TJR { "TJR", "Tadschikistan Rubel" }
        TMM { "TMM", "Turkmenistan-Manat" }
        TND { "TND", "Tunesischer Dinar" }
        TOP { "TOP", "Pa'anga" }
        TPE { "TPE", "Timor Escudo" }
        TRL { "TRL", "T\u00FCrkische Lira" }
        TTD { "TTD", "Trinidad und Tobago Dollar" }
        TWD { "TWD", "Neuer Taiwan Dollar" }
        TZS { "TZS", "Tansania Schilling" }
        UAH { "UAH", "Hryvnia" }
        UGX { "UGX", "Uganda Schilling" }
        USD { "$", "US Dollar" }
        UYU { "UYU", "Uruguayischer Peso" }
        UZS { "UZS", "Usbekistan Sum" }
        VEB { "VEB", "Bolivar" }
        VND { "VND", "Dong" }
        VUV { "VUV", "Vatu" }
        WST { "WST", "Tala" }
        XAF { "XAF", "CFA Franc (\u00C4quatorial)" }
        XCD { "XCD", "Ostkaribischer Dollar" }
        XOF { "XOF", "CFA Franc (West)" }
        XPF { "XPF", "CFP Franc" }
        YER { "YER", "Jemen Rial" }
        YUM { "YUM", "Neuer Dinar" }
        ZAR { "ZAR", "Rand" }
        ZMK { "ZMK", "Kwacha" }
        ZWD { "ZWD", "Simbabwe Dollar" }
    }
}
