// ***************************************************************************
// *
// *   Copyright (C) 1997-2003, 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

// Note 2003-sep-19: The site seems to have moved to
// http://www.bkg.bund.de/kartographie/stagn/Staatennamen.htm

de {
    Version{ "3.0" }
    Variants{
        Fallback{"en"}
        PREEURO { "Vor-Euro" }
        REVISED { "Revidiert" }
    }
    Types{
        PHONEBOOK { "Telefonbuch-Sortierregeln" }
        TRADITIONAL { "Traditionell" }
    }
    // 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 {
        Fallback{ "en"}
        //AD { "Andorra" }
        AE { "Vereinigte Arabische Emirate" }
        //AF { "Afghanistan" }
        AG { "Antigua und Barbuda" }
        //AI { "Anguilla" }
        AL { "Albanien" }
        AM { "Armenien" }
        AN { "Niederl\u00E4ndische Antillen" }
        //AO { "Angola" }
        AQ { "Antarktis" }
        AR { "Argentinien" }
        AS { "Amerikanisch-Samoa" }
        AT { "\u00D6sterreich" }
        AU { "Australien" }
        //AW { "Aruba" }
        AZ { "Aserbaidschan" }

        BA { "Bosnien und Herzegowina" }
        //BB { "Barbados" }
        BD { "Bangladesch" }
        BE { "Belgien" }
        //BF { "Burkina Faso" }
        BG { "Bulgarien" }
        //BH { "Bahrain" }
        //BI { "Burundi" }
        //BJ { "Benin" }
        //BM { "Bermuda" }
        BN { "Brunei Darussalam" }
        BO { "Bolivien" }
        BR { "Brasilien" }
        //BS { "Bahamas" }
        //BT { "Bhutan" }
        BV { "Bouvetinsel" }
        BW { "Botsuana" }
        //BY { "Belarus" }  // AKA Wei\u00DFrussland
        //BZ { "Belize" }

        CA { "Kanada" }
        CC { "Kokosinseln (Keeling)" }
        CD { "Demokratische Republik Kongo" }
        CF { "Zentralafrikanische Republik" }
        CG { "Kongo" }
        CH { "Schweiz" }
        //CI { "C\u00F4te d\u0092Ivoire" }
        CK { "Cookinseln" }
        //CL { "Chile" }
        CM { "Kamerun" }
        //CN { "China" }
        CO { "Kolumbien" }
        //CR { "Costa Rica" }
        CU { "Kuba" }
        CV { "Kap Verde" }
        CX { "Weihnachtsinsel" }
        CY { "Zypern" }
        CZ { "Tschechien" }

        DE { "Deutschland" }
        DJ { "Dschibuti" }
        DK { "D\u00E4nemark" }
        //DM { "Dominica" }
        DO { "Dominikanische Republik" }
        DZ { "Algerien" }

        //EC { "Ecuador" }
        EE { "Estland" }
        EG { "\u00C4gypten" }
        //ER { "Eritrea" }
        ES { "Spanien" }
        ET { "\u00C4thiopien" }

        FI { "Finnland" }
        FJ { "Fidschi" }
        FK { "Falklandinseln" }
        FM { "Mikronesien" }
        FO { "F\u00E4r\u00F6er" }
        FR { "Frankreich" }

        GA { "Gabun" }
        GB { "Vereinigtes K\u00F6nigreich" }
        //GD { "Grenada" }
        GE { "Georgien" }
        GF { "Franz\u00f6sisch-Guayana" }
        //GH { "Ghana" }
        //GI { "Gibraltar" }
        GL { "Gr\u00F6nland" }
        //GM { "Gambia" }
        //GN { "Guinea" }
        //GP { "Guadeloupe" }
        GQ { "\u00C4quatorialguinea" }
        GR { "Griechenland" }
        GS { "S\u00FCdgeorgien und die S\u00FCdlichen Sandwichinseln" }
        //GT { "Guatemala" }
        //GU { "Guam" }
        //GW { "Guinea-Bissau" }
        //GY { "Guyana" }

        HM { "Heard und McDonaldinseln" }
        //HN { "Honduras" }
        HR { "Kroatien" }
        //HT { "Haiti" }
        HU { "Ungarn" }

        ID { "Indonesien" }
        IE { "Irland" }
        //IL { "Israel" }
        IN { "Indien" }
        IO { "Britisches Territorium im Indischen Ozean" }
        IQ { "Irak" }
        //IR { "Iran" }
        IS { "Island" }
        IT { "Italien" }

        JM { "Jamaika" }
        JO { "Jordanien" }
        //JP { "Japan" }

        KE { "Kenia" }
        KG { "Kirgisistan" }
        KH { "Kambodscha" }
        //KI { "Kiribati" }
        KM { "Komoren" }
        KN { "St. Kitts und Nevis" }
        KP { "Demokratische Volksrepublik Korea" }
        KR { "Republik Korea" }
        //KW { "Kuwait" }
        KY { "Kaimaninseln" }
        KZ { "Kasachstan" }

        //LA { "Laos" }
        LB { "Libanon" }
        LC { "St. Lucia" }
        //LI { "Liechtenstein" }
        //LK { "Sri Lanka" }
        //LR { "Liberia" }
        //LS { "Lesotho" }
        LT { "Litauen" }
        LU { "Luxemburg" }
        LV { "Lettland" }
        LY { "Libyen" }

        MA { "Marokko" }
        //MC { "Monaco" }
        MD { "Moldawien" }
        MG { "Madagaskar" }
        MH { "Marshallinseln" }
        MK { "Mazedonien" }
        //ML { "Mali" }
        //MM { "Myanmar" }
        MN { "Mongolei" }
        MO { "Macau S.A.R.,China" }
        MP { "N\u00f6rdliche Marianen" }
        //MQ { "Martinique" }
        MR { "Mauretanien" }
        //MS { "Montserrat" }
        //MT { "Malta" }
        //MU { "Mauritius" }
        MV { "Malediven" }
        //MW { "Malawi" }
        MX { "Mexiko" }
        //MY { "Malaysia" }
        MZ { "Mosambik" }

        //NA { "Namibia" }
        NC { "Neukaledonien" }
        //NE { "Niger" }
        NF { "Norfolkinsel" }
        //NG { "Nigeria" }
        //NI { "Nicaragua" }
        NL { "Niederlande" }
        NO { "Norwegen" }
        //NP { "Nepal" }
        //NR { "Nauru" }
        //NU { "Niue" }
        NZ { "Neuseeland" }

        //OM { "Oman" }

        //PA { "Panama" }
        //PE { "Peru" }
        PF { "Franz\u00F6sisch-Polynesien" }
        PG { "Papua-Neuguinea" }
        PH { "Philippinen" }
        //PK { "Pakistan" }
        PL { "Polen" }
        PM { "St. Pierre und Miquelon" }
        //PN { "Pitcairn" }
        //PR { "Puerto Rico" }
        PS { "Pal\u00E4stina" }
        //PT { "Portugal" }
        //PW { "Palau" }
        //PY { "Paraguay" }

        QA { "Katar" }

        //RE { "R\u00E9union" }
        RO { "Rum\u00E4nien" }
        RU { "Russland" }
        RW { "Ruanda" }

        SA { "Saudi-Arabien" }
        SB { "Salomonen" }
        SC { "Seychellen" }
        //SD { "Sudan" }
        SE { "Schweden" }
        SG { "Singapur" }
        SH { "St. Helena" }
        SI { "Slowenien" }
        SJ { "Svalbard und Jan Mayen" }
        SK { "Slowakei" }
        //SL { "Sierra Leone" }
        //SM { "San Marino" }
        //SN { "Senegal" }
        //SO { "Somalia" }
        //SR { "Suriname" }
        ST { "S\u00E3o Tom\u00E9 und Pr\u00EDncipe" }
        //SV { "El Salvador" }
        SY { "Syrien" }
        SZ { "Swasiland" }

        TC { "Turks- und Caicosinseln" }
        TD { "Tschad" }
        TF { "Franz\u00F6sische S\u00FCd- und Antarktisgebiete" }
        //TG { "Togo" }
        //TH { "Thailand" }
        TJ { "Tadschikistan" }
        //TK { "Tokelau" }
        //TM { "Turkmenistan" }
        TN { "Tunesien" }
        //TO { "Tonga" }
        TR { "T\u00FCrkei" }
        TT { "Trinidad und Tobago" }
        //TV { "Tuvalu" }
        //TW { "Taiwan" }
        TZ { "Tansania" }

        //UA { "Ukraine" }
        //UG { "Uganda" }
        UM { "Amerikanisch-Ozeanien" }
        US { "Vereinigte Staaten" }
        //UY { "Uruguay" }
        UZ { "Usbekistan" }

        VA { "Vatikanstadt" }
        VC { "St. Vincent und die Grenadinen" }
        //VE { "Venezuela" }
        VG { "Britische Jungferninseln" }
        VI { "Amerikanische Jungferninseln" }
        //VN { "Vietnam" }
        //VU { "Vanuatu" }

        WF { "Wallis und Futuna" }
        //WS { "Samoa" }

        YE { "Jemen" }
        //YT { "Mayotte" }
        YU { "Jugoslawien" }

        ZA { "S\u00FCdafrika" }
        ZM { "Sambia" }
        ZW { "Simbabwe" }

        // some entries that are not in the official list:
        //EH { "West Sahara" }
        //HK { "Hong Kong S.A.R., China" }
        SP { "Serbien" }
    }
    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 {
        Fallback{ "en"}
        // ? aa { "Afar" }
        ab { "Abchasisch" }
        // af { "Afrikaans" }
        am { "Amharisch" } // ?
        ar { "Arabisch" }
        as { "Assamesisch" }
        ay { "Aimara" }
        az { "Aserbaidschanisch" }
        ba { "Baschkirisch" }
        be { "Wei\u00dfrussisch" }
        bg { "Bulgarisch" }
        bh { "Biharisch" }
        // bi { "Bislama" }
        bn { "Bengalisch" } // ?
        bo { "Tibetisch" }
        br { "Bretonisch" }
        ca { "Katalanisch" } // Katalonisch?
        co { "Korsisch" }
        cs { "Tschechisch" }
        cy { "Walisisch" }
        da { "D\u00e4nisch" }
        de { "Deutsch" }
        dz { "Bhutanisch" }
        el { "Griechisch" }
        en { "Englisch" }
        // eo { "Esperanto" }
        es { "Spanisch" }
        et { "Estnisch" }
        eu { "Baskisch" }
        fa { "Persisch" }
        fj { "Fidschianisch" }
        fi { "Finnisch" }
        fo { "F\u00e4r\u00f6isch" }
        fr { "Franz\u00f6sisch" }
        fy { "Friesisch" }
        ga { "Irisch" }
        gd { "Schottisch-G\u00e4lisch" }
        gl { "Galizisch" } // Galizianisch??
        // ? gn { "Guarani" }
        // ? gu { "Gujarati" }
        // gv { "Manx" }
        // ? ha { "Hausa" }
        haw { "Hawaiianisch" }
        he { "Hebr\u00e4isch" }
        // hi { "Hindi" }
        hr { "Kroatisch" }
        hu { "Ungarisch" }
        hy { "Armenisch" }
        // ia { "Interlingua" }
        id { "Indonesisch" }
        // ie { "Interlingue" }
        // ? ik { "Inupiak" }
        //in { "Indonesisch" }  // Use "id" instead
        is { "Isl\u00e4ndisch" }
        it { "Italienisch" }
        // ? iu { "Inukitut" }
        // iw { "Hebr\u00e4isch" }// Use he instead
        ja { "Japanisch" }
        // ji { "Jiddisch" }  // Use "yi" instead
        //jw { "Javanesisch" } // Use jv instead
        jv { "Javanesisch" } // ?
        ka { "Georgisch" }
        kk { "Kasachisch" }
        kl { "Gr\u00f6nl\u00e4ndisch" }
        km { "Kambodschanisch" }
        // kn { "Kannada" }
        ko { "Koreanisch" }
        ks { "Kaschmirisch" } // ?
        ku { "Kurdisch" }
        ky { "Kirgisisch" }
        la { "Latein" } // Lateinisch doesn't seem correct
        // ? ln { "Lingala" }
        lo { "Laotisch" }
        lt { "Litauisch" }
        lv { "Lettisch" }
        mg { "Madagassisch" }
        // mi { "Maori" }
        mk { "Mazedonisch" }
        // ml { "Malayalam" }
        mn { "Mongolisch" }
        mo { "Moldauisch" }
        // mr { "Marathi" }
        ms { "Malaiisch" }
        mt { "Maltesisch" }
        my { "Burmesisch" }
        na { "Nauruisch" }
        nb { "Norwegisch Bokm\u00e5l" }
        ne { "Nepalesisch" }
        nl { "Niederl\u00e4ndisch" } // "Holl\u00e4ndisch" is not correct
        nn { "Norwegisch Nynorsk" }
        no { "Norwegisch" }
        oc { "Okzitanisch" }
        or { "Orija" }
        // ? om { "Oromo (Afan)" }
        pa { "Pandschabisch" }
        pl { "Polnisch" }
        ps { "Afghanisch (Paschtu)" }
        pt { "Portugiesisch" }
        // qu { "Quechua" }
        rm { "R\u00e4toromanisch" }
        // ? rn { "Kirundi" }
        ro { "Rum\u00e4nisch" }
        ru { "Russisch" }
        rw { "Ruandisch" } // Kinyarwanda?
        // sa { "Sanskrit" }
        // sd { "Sindhi" }
        sg { "Sango" }
        sh { "Serbo-Kroatisch" }
        si { "Singhalesisch" }
        sk { "Slowakisch" }
        sl { "Slowenisch" }
        sm { "Samoanisch" }
        // sn { "Shona" }
        // so { "Somali" } // "Somalisch" is incorrect
        sq { "Albanisch" }
        sr { "Serbisch" }
        ss { "Swazi" }
        st { "Sotho" }
        su { "Sudanesisch" }
        sw { "Suaheli" }
        sv { "Schwedisch" }
        ta { "Tamilisch" }
        // ? te { "Telugu" }
        tg { "Tadschikisch" }
        // th { "Thai" }
        ti { "Tigrinja" }
        tk { "Turkmenisch" } // "T\u00fcrkmenisch" is a typo
        // ? tl { "Tagalog" }
        tn { "Tsuana" }
        to { "Tongaisch" }
        tr { "T\u00fcrkisch" }
        // ts { "Tsonga" }
        tt { "Tatarisch" }
        // tw { "Twi" }
        // ug { "Uighur" }
        uk { "Ukrainisch" }
        // ? ur { "Urdu" }
        uz { "Usbekisch" }
        vi { "Vietnamesisch" }
        //vo { "Volap\u00fck" }
        // ? wo { "Wolof" }
        // ? xh { "Xhosa" }
        yi { "Jiddisch" }
        yo { "Joruba" }
        za { "Zapotekisch" }
        zh { "Chinesisch" }
        // zu { "Zulu" }
    }
    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",
        ",",
        "+",
    }
    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" }
    }
}