// ***************************************************************************
// *
// *   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" } -- don't know what this is; MVDOL does not make sense to me -- markus 20030424
        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 { "GBP", "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 { "INR", "Indische Rupie" }
        IQD { "IQD", "Irak Dinar" }
        IRR { "IRR", "Rial" }
        ISK { "ISK", "Isl\u00E4ndische Krone" }
        ITL { "ITL", "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 { "\u20A9", "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 { "\u20A6", "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 { "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" }
    }
}
