﻿// ***************************************************************************
// *
// * Copyright (C) 2012 International Business Machines
// * Corporation and others.  All Rights Reserved.
// * Tool: com.ibm.icu.dev.tool.cldr.LDML2ICUConverter.java
// * Source File:<path>/common/main/de.xml
// *
// ***************************************************************************
/**
 *  ICU <specials> source: <path>/xml/main/de.xml
 */
de{
    AuxExemplarCharacters{"[á à ă â å ã ā æ ç é è ĕ ê ë ē í ì ĭ î ï ī ñ ó ò ŏ ô ø ō œ ú ù ŭ û ū ÿ]"}
    ExemplarCharacters{"[a ä b c d e f g h i j k l m n o ö p q r s ß t u ü v w x y z]"}
    ExemplarCharactersCurrency{"[a b c d e f g h i j k l m n o p q r s t u v w x y z]"}
    ExemplarCharactersIndex{"[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]"}
    ExemplarCharactersPunctuation{"[\- ‐ – — , ; \: ! ? . … ' ‘ ‚ \" “ „ « » ( ) \[ \] \{ \} § @ * / \& #]"}
    LocaleScript{
        "Latn",
    }
    NumberElements{
        latn{
            patterns{
                currencyFormat{"#,##0.00 ¤"}
                decimalFormat{"#,##0.###"}
                percentFormat{"#,##0 %"}
                scientificFormat{"#E0"}
            }
            symbols{
                decimal{","}
                exponential{"E"}
                group{"."}
                infinity{"∞"}
                list{";"}
                minusSign{"-"}
                nan{"NaN"}
                perMille{"‰"}
                percentSign{"%"}
                plusSign{"+"}
            }
        }
    }
    Version{"2.0.64.72"}
    calendar{
        buddhist{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d. MMMM y G",
                "d. MMMM y G",
                "d. MMM y G",
                "d.M.yyyy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d."}
                Gy{"y G"}
                H{"HH 'Uhr'"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d.M."}
                MMM{"LLL"}
                MMMEd{"E, d. MMM"}
                MMMMdd{"dd. MMMM"}
                MMMd{"d. MMM"}
                MMd{"d.MM."}
                MMdd{"dd.MM."}
                Md{"d.M."}
                d{"d"}
                ms{"mm:ss"}
                y{"y G"}
                yM{"M.y G"}
                yMEd{"E, d.M.y G"}
                yMMM{"MMM y G"}
                yMMMEd{"E, d. MMM y G"}
                yMMMd{"d. MMM y G"}
                yMd{"d.M.y G"}
                yQ{"Q y G"}
                yQQQ{"QQQ y G"}
                yyMM{"MM.y G"}
                yyMMM{"MMM y G"}
                yyMMdd{"dd.MM.y G"}
                yyQ{"Q y G"}
                yyQQQQ{"QQQQ y G"}
                yyyy{"y G"}
                yyyyMMMM{"MMMM y G"}
            }
        }
        gregorian{
            AmPmMarkers{
                "vorm.",
                "nachm.",
            }
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE, d. MMMM y",
                "d. MMMM y",
                "dd.MM.yyyy",
                "dd.MM.yy",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E, d."}
                H{"HH 'Uhr'"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d.M."}
                MMM{"LLL"}
                MMMEd{"E, d. MMM"}
                MMMMEd{"E, d. MMMM"}
                MMMMdd{"dd. MMMM"}
                MMMd{"d. MMM"}
                MMd{"d.MM."}
                MMdd{"dd.MM."}
                Md{"d.M."}
                d{"d"}
                hm{"h:mm a"}
                hms{"h:mm:ss a"}
                ms{"mm:ss"}
                y{"y"}
                yM{"M.y"}
                yMEd{"E, d.M.y"}
                yMMM{"MMM y"}
                yMMMEd{"E, d. MMM y"}
                yMMMd{"d. MMM y"}
                yMd{"d.M.y"}
                yQ{"Q y"}
                yQQQ{"QQQ y"}
                yyMM{"MM.yy"}
                yyMMM{"MMM yy"}
                yyMMdd{"dd.MM.yy"}
                yyQ{"Q yy"}
                yyQQQQ{"QQQQ yy"}
                yyyy{"y"}
                yyyyMMMM{"MMMM y"}
            }
            dayNames{
                format{
                    abbreviated{
                        "So.",
                        "Mo.",
                        "Di.",
                        "Mi.",
                        "Do.",
                        "Fr.",
                        "Sa.",
                    }
                    wide{
                        "Sonntag",
                        "Montag",
                        "Dienstag",
                        "Mittwoch",
                        "Donnerstag",
                        "Freitag",
                        "Samstag",
                    }
                }
                stand-alone{
                    abbreviated{
                        "So",
                        "Mo",
                        "Di",
                        "Mi",
                        "Do",
                        "Fr",
                        "Sa",
                    }
                    narrow{
                        "S",
                        "M",
                        "D",
                        "M",
                        "D",
                        "F",
                        "S",
                    }
                }
            }
            eras{
                abbreviated{
                    "v. Chr.",
                    "n. Chr.",
                }
                wide{
                    "v. Chr.",
                    "n. Chr.",
                }
            }
            fields{
                day{
                    dn{"Tag"}
                    relative{
                        "-1"{"Gestern"}
                        "-2"{"Vorgestern"}
                        "0"{"Heute"}
                        "1"{"Morgen"}
                        "2"{"Übermorgen"}
                    }
                }
                dayperiod{
                    dn{"Tageshälfte"}
                }
                era{
                    dn{"Epoche"}
                }
                hour{
                    dn{"Stunde"}
                }
                minute{
                    dn{"Minute"}
                }
                month{
                    dn{"Monat"}
                    relative{
                        "-1"{"Letzter Monat"}
                        "0"{"Dieser Monat"}
                        "1"{"Nächster Monat"}
                    }
                }
                second{
                    dn{"Sekunde"}
                }
                week{
                    dn{"Woche"}
                    relative{
                        "-1"{"Letzte Woche"}
                        "0"{"Diese Woche"}
                        "1"{"Nächste Woche"}
                    }
                }
                weekday{
                    dn{"Wochentag"}
                }
                year{
                    dn{"Jahr"}
                    relative{
                        "-1"{"Letztes Jahr"}
                        "0"{"Dieses Jahr"}
                        "1"{"Nächstes Jahr"}
                    }
                }
                zone{
                    dn{"Zone"}
                }
            }
            intervalFormats{
                H{
                    H{"HH-HH 'Uhr'"}
                    a{"HH-HH 'Uhr'"}
                }
                Hm{
                    H{"HH:mm-HH:mm"}
                    a{"HH:mm-HH:mm"}
                    m{"HH:mm-HH:mm"}
                }
                Hmv{
                    H{"HH:mm-HH:mm v"}
                    a{"HH:mm-HH:mm v"}
                    m{"HH:mm-HH:mm v"}
                }
                Hv{
                    H{"HH-HH 'Uhr' v"}
                    a{"HH-HH 'Uhr' v"}
                }
                M{
                    M{"M.-M."}
                }
                MEd{
                    M{"E, dd.MM. - E, dd.MM."}
                    d{"E, dd.MM. - E, dd.MM."}
                }
                MMM{
                    M{"MMM-MMM"}
                }
                MMMEd{
                    M{"E, d. MMM - E, d. MMM"}
                    d{"E, d. - E, d. MMM"}
                }
                MMMM{
                    M{"LLLL-LLLL"}
                }
                MMMd{
                    M{"d. MMM - d. MMM"}
                    d{"d.-d. MMM"}
                }
                Md{
                    M{"dd.MM. - dd.MM."}
                    d{"dd.MM. - dd.MM."}
                }
                d{
                    d{"d.-d."}
                }
                fallback{"{0} - {1}"}
                h{
                    a{"h a - h a"}
                    h{"h-h a"}
                }
                hm{
                    a{"h:mm a - h:mm a"}
                    h{"h:mm-h:mm a"}
                    m{"h:mm-h:mm a"}
                }
                hmv{
                    a{"h:mm a - h:mm a v"}
                    h{"h:mm-h:mm a v"}
                    m{"h:mm-h:mm a v"}
                }
                hv{
                    a{"h a - h a v"}
                    h{"h-h a v"}
                }
                y{
                    y{"y-y"}
                }
                yM{
                    M{"MM.yy - MM.yy"}
                    y{"MM.yy - MM.yy"}
                }
                yMEd{
                    M{"E, dd.MM.yy - E, dd.MM.yy"}
                    d{"E, dd.MM.yy - E, dd.MM.yy"}
                    y{"E, dd.MM.yy - E, dd.MM.yy"}
                }
                yMMM{
                    M{"MMM-MMM y"}
                    y{"MMM y - MMM y"}
                }
                yMMMEd{
                    M{"E, d. MMM - E, d. MMM y"}
                    d{"E, d. - E, d. MMM y"}
                    y{"E, d. MMM y - E, d. MMM y"}
                }
                yMMMM{
                    M{"MMMM-MMMM y"}
                    y{"MMMM y - MMMM y"}
                }
                yMMMd{
                    M{"d. MMM - d. MMM y"}
                    d{"d.-d. MMM y"}
                    y{"d. MMM y - d. MMM y"}
                }
                yMd{
                    M{"dd.MM.yy - dd.MM.yy"}
                    d{"dd.MM.yy - dd.MM.yy"}
                    y{"dd.MM.yy - dd.MM.yy"}
                }
            }
            monthNames{
                format{
                    abbreviated{
                        "Jan",
                        "Feb",
                        "Mär",
                        "Apr",
                        "Mai",
                        "Jun",
                        "Jul",
                        "Aug",
                        "Sep",
                        "Okt",
                        "Nov",
                        "Dez",
                    }
                    wide{
                        "Januar",
                        "Februar",
                        "März",
                        "April",
                        "Mai",
                        "Juni",
                        "Juli",
                        "August",
                        "September",
                        "Oktober",
                        "November",
                        "Dezember",
                    }
                }
                stand-alone{
                    abbreviated{
                        "Jan",
                        "Feb",
                        "Mär",
                        "Apr",
                        "Mai",
                        "Jun",
                        "Jul",
                        "Aug",
                        "Sep",
                        "Okt",
                        "Nov",
                        "Dez",
                    }
                    narrow{
                        "J",
                        "F",
                        "M",
                        "A",
                        "M",
                        "J",
                        "J",
                        "A",
                        "S",
                        "O",
                        "N",
                        "D",
                    }
                }
            }
            quarters{
                format{
                    abbreviated{
                        "Q1",
                        "Q2",
                        "Q3",
                        "Q4",
                    }
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                    }
                    wide{
                        "1. Quartal",
                        "2. Quartal",
                        "3. Quartal",
                        "4. Quartal",
                    }
                }
            }
        }
        islamic{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d. MMMM y G",
                "d. MMMM y G",
                "d. MMM y G",
                "d.M.y G",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d."}
                H{"HH 'Uhr'"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d.M."}
                MMM{"LLL"}
                MMMEd{"E, d. MMM"}
                MMMMdd{"dd. MMMM"}
                MMMd{"d. MMM"}
                MMd{"d.MM."}
                MMdd{"dd.MM."}
                Md{"d.M."}
                d{"d"}
                ms{"mm:ss"}
                yyMM{"MM.y G"}
                yyMMM{"MMM y G"}
                yyMMdd{"dd.MM.y G"}
                yyQ{"Q y G"}
                yyQQQQ{"QQQQ y G"}
                yyyy{"y G"}
                yyyyM{"M.y G"}
                yyyyMEd{"E, d.M.y G"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"E, d. MMM y G"}
                yyyyMMMM{"MMMM y G"}
                yyyyMMMd{"d. MMM y G"}
                yyyyMd{"d.M.y G"}
                yyyyQ{"Q y G"}
                yyyyQQQ{"QQQ y G"}
            }
            eras{
                abbreviated{
                    "AH",
                }
            }
            monthNames{
                default{"format"}
                format{
                    abbreviated{
                        "Muh.",
                        "Saf.",
                        "Rab. I",
                        "Rab. II",
                        "Jum. I",
                        "Jum. II",
                        "Raj.",
                        "Sha.",
                        "Ram.",
                        "Shaw.",
                        "Dhuʻl-Q.",
                        "Dhuʻl-H.",
                    }
                    default{"wide"}
                    wide{
                        "Muharram",
                        "Safar",
                        "Rabiʻ I",
                        "Rabiʻ II",
                        "Jumada I",
                        "Jumada II",
                        "Rajab",
                        "Shaʻban",
                        "Ramadan",
                        "Shawwal",
                        "Dhuʻl-Qiʻdah",
                        "Dhuʻl-Hijjah",
                    }
                }
                stand-alone{
                    narrow{
                        "1",
                        "2",
                        "3",
                        "4",
                        "5",
                        "6",
                        "7",
                        "8",
                        "9",
                        "10",
                        "11",
                        "12",
                    }
                }
            }
        }
        japanese{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d. MMMM y G",
                "d. MMMM y G",
                "d. MMM y G",
                "d.M.y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d."}
                Gy{"y G"}
                H{"HH 'Uhr'"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d.M."}
                MMM{"LLL"}
                MMMEd{"E, d. MMM"}
                MMMMdd{"dd. MMMM"}
                MMMd{"d. MMM"}
                MMd{"d.MM."}
                MMdd{"dd.MM."}
                Md{"d.M."}
                d{"d"}
                ms{"mm:ss"}
                y{"y G"}
                yyMM{"MM.y GGGGG"}
                yyMMM{"MMM y G"}
                yyMMdd{"dd.MM.y GGGGG"}
                yyQ{"Q y G"}
                yyQQQQ{"QQQQ y G"}
                yyyy{"y G"}
                yyyyM{"M.y GGGGG"}
                yyyyMEd{"E, d.M.y GGGGG"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"E, d. MMM y G"}
                yyyyMMMM{"MMMM y G"}
                yyyyMMMd{"d. MMM y G"}
                yyyyQ{"Q y G"}
                yyyyQQQ{"QQQ y G"}
            }
        }
        roc{
            DateTimePatterns{
                "HH:mm:ss zzzz",
                "HH:mm:ss z",
                "HH:mm:ss",
                "HH:mm",
                "EEEE d. MMMM y G",
                "d. MMMM y G",
                "d. MMM y G",
                "d.M.y GGGGG",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
                "{1} {0}",
            }
            availableFormats{
                Ed{"E d."}
                Gy{"y G"}
                H{"HH 'Uhr'"}
                Hm{"HH:mm"}
                Hms{"HH:mm:ss"}
                M{"L"}
                MEd{"E, d.M."}
                MMM{"LLL"}
                MMMEd{"E, d. MMM"}
                MMMMdd{"dd. MMMM"}
                MMMd{"d. MMM"}
                MMd{"d.MM."}
                MMdd{"dd.MM."}
                Md{"d.M."}
                d{"d"}
                ms{"mm:ss"}
                y{"y G"}
                yyMM{"MM.y GGGGG"}
                yyMMM{"MMM y G"}
                yyMMdd{"dd.MM.y GGGGG"}
                yyQ{"Q y G"}
                yyQQQQ{"QQQQ y G"}
                yyyy{"y G"}
                yyyyM{"M.y GGGGG"}
                yyyyMEd{"E, d.M.y GGGGG"}
                yyyyMMM{"MMM y G"}
                yyyyMMMEd{"E, d. MMM y G"}
                yyyyMMMM{"MMMM y G"}
                yyyyMMMd{"d. MMM y G"}
                yyyyQ{"Q y G"}
                yyyyQQQ{"QQQ y G"}
            }
        }
    }
    delimiters{
        alternateQuotationEnd{"‘"}
        alternateQuotationStart{"‚"}
        quotationEnd{"“"}
        quotationStart{"„"}
    }
    listPattern{
        standard{
            2{"{0} und {1}"}
            end{"{0} und {1}"}
        }
    }
    measurementSystemNames{
        US{"Angloamerikanisch"}
        metric{"Metrisch"}
    }
    units{
        day{
            one{"{0} Tag"}
            other{"{0} Tage"}
        }
        day-future{
            0{"In 0 Tagen"}
            1{"In 1 Tag"}
            one{"In {0} Tag"}
            other{"In {0} Tagen"}
        }
        day-past{
            0{"Vor 0 Tagen"}
            1{"Vor 1 Tag"}
            one{"Vor {0} Tag"}
            other{"Vor {0} Tagen"}
        }
        hour{
            one{"{0} Stunde"}
            other{"{0} Stunden"}
        }
        hour-future{
            0{"In 0 Stunden"}
            1{"In 1 Stunde"}
            one{"In {0} Stunde"}
            other{"In {0} Stunden"}
        }
        hour-past{
            0{"Vor 0 Stunden"}
            1{"Vor 1 Stunde"}
            one{"Vor {0} Stunde"}
            other{"Vor {0} Stunden"}
        }
        minute{
            one{"{0} Minute"}
            other{"{0} Minuten"}
        }
        minute-future{
            0{"In 0 Minuten"}
            1{"In 1 Minute"}
            one{"In {0} Minute"}
            other{"In {0} Minuten"}
        }
        minute-past{
            0{"Vor 0 Minuten"}
            1{"Vor 1 Minute"}
            one{"Vor {0} Minute"}
            other{"Vor {0} Minuten"}
        }
        month{
            one{"{0} Monat"}
            other{"{0} Monate"}
        }
        month-future{
            0{"In 0 Monaten"}
            1{"In 1 Monat"}
            one{"In {0} Monat"}
            other{"In {0} Monaten"}
        }
        month-past{
            0{"Vor 0 Monaten"}
            1{"Vor 1 Monat"}
            one{"Vor {0} Monat"}
            other{"Vor {0} Monaten"}
        }
        second{
            one{"{0} Sekunde"}
            other{"{0} Sekunden"}
        }
        second-future{
            0{"In 0 Sekunden"}
            1{"In 1 Sekunde"}
            one{"In {0} Sekunde"}
            other{"In {0} Sekunden"}
        }
        second-past{
            0{"Vor 0 Sekunden"}
            1{"Vor 1 Sekunde"}
            one{"Vor {0} Sekunde"}
            other{"Vor {0} Sekunden"}
        }
        week{
            one{"{0} Woche"}
            other{"{0} Wochen"}
        }
        week-future{
            0{"In 0 Wochen"}
            1{"In 1 Woche"}
            one{"In {0} Woche"}
            other{"In {0} Wochen"}
        }
        week-past{
            0{"Vor 0 Wochen"}
            1{"Vor 1 Woche"}
            one{"Vor {0} Woche"}
            other{"Vor {0} Wochen"}
        }
        year{
            one{"{0} Jahr"}
            other{"{0} Jahre"}
        }
        year-future{
            0{"In 0 Jahren"}
            1{"In 1 Jahr"}
            one{"In {0} Jahr"}
            other{"In {0} Jahren"}
        }
        year-past{
            0{"Vor 0 Jahren"}
            1{"Vor 1 Jahr"}
            one{"Vor {0} Jahr"}
            other{"Vor {0} Jahren"}
        }
    }
    unitsShort{
        day{
            one{"{0} Tag"}
            other{"{0} Tage"}
        }
        hour{
            one{"{0} Std."}
            other{"{0} Std."}
        }
        minute{
            one{"{0} Min."}
            other{"{0} Min."}
        }
        month{
            one{"{0} Monat"}
            other{"{0} Monate"}
        }
        second{
            one{"{0} Sek."}
            other{"{0} Sek."}
        }
        week{
            one{"{0} Woche"}
            other{"{0} Wochen"}
        }
        year{
            one{"{0} Jahr"}
            other{"{0} Jahre"}
        }
    }
}
