﻿// ***************************************************************************
// *
// * 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.67.6"}
    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"}
            }
        }
        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"}
        }
    }
}
