import { UnitRecord } from '../DayFunctions' ; import { Functions as fn } from '../Functions' ; import { Locale , Locales } from '../Locale' ; const unitToWordSingular = { millis : 'Millisekunde' , second : 'Sekunde' , minute : 'Minute' , hour : 'Stunde' , day : 'Tag' , week : 'Woche' , month : 'Monat' , quarter : 'Quartal' , year : 'Jahr' } ; const unitToWordPlural = { millis : 'Millisekunden' , second : 'Sekunden' , minute : 'Minuten' , hour : 'Stunden' , day : 'Tage' , week : 'Wochen' , month : 'Monate' , quarter : 'Viertel' , year : 'Jahre' } ; const de = { weekStartsOn : 1 , firstWeekContainsDate : 4 , suffix : ( value ) => value + '.' , am : '' , pm : '' , formatLT : 'HH:mm' , formatLTS : 'HH:mm:ss' , formatL : 'DD.MM.Y' , formatl : 'D.M.Y' , formatLL : 'D. MMMM Y' , formatll : 'D. MMM Y' , formatLLL : 'D. MMMM Y HH:mm' , formatlll : 'D. MMM Y HH:mm' , formatLLLL : 'dddd, D. MMMM Y HH:mm' , formatllll : 'ddd, D. MMM Y HH:mm' , identifierTime : ( short ) => short ? 'lll' : 'LLL' , identifierDay : ( short ) => short ? 'll' : 'LL' , identifierWeek : ( short ) => 'wo [Woche in] Y' , identifierMonth : ( short ) => short ? 'MMM Y' : 'MMMM Y' , identifierQuarter : ( short ) => 'Qo [Quartal] Y' , identifierYear : ( short ) => 'Y' , patternNone : ( ) => `Nicht wiederholend` , patternDaily : ( ) => `Täglich` , patternWeekly : ( day ) => `Wöchentlich am ${ de . weekdays [ 0 ] [ day . day ] }` , patternMonthlyWeek : ( day ) => `Monatlich am ${ day . weekspanOfMonth + 1 }. ${ de . weekdays [ 0 ] [ day . day ] }` , patternAnnually : ( day ) => `Jährlich am ${ day . dayOfMonth }. ${ de . months [ 0 ] [ day . month ] }` , patternAnnuallyMonthWeek : ( day ) => `Jährlich am ${ day . weekspanOfMonth + 1 }. ${ de . weekdays [ 0 ] [ day . day ] } im ${ de . months [ 0 ] [ day . month ] }` , patternWeekday : ( ) => 'Jeden Werktag (Montag bis Freitag)' , patternMonthly : ( day ) => `Monatlich am ${ day . dayOfMonth }. Tag` , patternLastDay : ( ) => `Am letzten Tag im Monat` , patternLastDayOfMonth : ( day ) => `Am letzten Tag im ${ de . months [ 0 ] [ day . month ] }` , patternLastWeekday : ( day ) => `Am letzten ${ de . weekdays [ 0 ] [ day . day ] } im ${ de . months [ 0 ] [ day . month ] }` , patternCustom : ( ) => `Benutzerdefiniert...` , scheduleStartingOn : ( start ) => `Startend am ${ fn . padNumber ( start . dayOfMonth , 2 ) }. ${ de . months [ 0 ] [ start . month ] } ${ start . year }` , scheduleEndingOn : ( end ) => `und endend am ${ fn . padNumber ( end . dayOfMonth , 2 ) }. ${ de . months [ 0 ] [ end . month ] } ${ end . year }` , scheduleEndsOn : ( end ) => `Bis zum ${ fn . padNumber ( end . dayOfMonth , 2 ) }. ${ de . months [ 0 ] [ end . month ] } ${ end . year }` , scheduleThing : ( thing , start ) => start ? 'Wird das ' + thing + ' stattfinden' : ' wird das ' + thing + ' stattfinden' , scheduleAtTimes : ' um ' , scheduleDuration : ( duration , unit ) => ' mit einer Dauer von ' + duration + ' ' + ( unit ? ( duration !== 1 ? unitToWordPlural [ unit ] : unitToWordSingular [ unit ] ) + ' ' : '' ) , scheduleExcludes : ' mit Ausnahme vom ' , scheduleIncludes : ' mit Einnahme vom ' , scheduleCancels : ' mit einer Aussetzung am ' , ruleDayOfWeek : { every : ( every ) => `jeden ${ de . suffix ( every ) } Tag der Woche` , offset : ( offset ) => `startend am the ${ de . suffix ( offset ) } Tag der Woche` , oneOf : ( values ) => `am ${ de . list ( values . map ( de . suffix ) ) } Tag der Woche` } , ruleLastDayOfMonth : { every : ( every ) => `jeden ${ de . suffix ( every ) } letzten Tag des Monats` , offset : ( offset ) => `startend am the ${ de . suffix ( offset ) } letzten Tag des Monats` , oneOf : ( values ) => `am ${ de . list ( values . map ( de . suffix ) ) } letzten Tag des Monats` } , ruleDayOfMonth : { every : ( every ) => `jeden ${ de . suffix ( every ) } Tag des Monats` , offset : ( offset ) => `startend am the ${ de . suffix ( offset ) } Tag des Monats` , oneOf : ( values ) => `am ${ de . list ( values . map ( de . suffix ) ) } Tag des Monats` } , ruleDayOfYear : { every : ( every ) => `jeden ${ de . suffix ( every ) } Tag des Jahres` , offset : ( offset ) => `startend am the ${ de . suffix ( offset + 1 ) } Tag des Jahres` , oneOf : ( values ) => `am ${ de . list ( values . map ( de . suffix ) ) } Tag des Jahres` } , ruleYear : { every : ( every ) => `jeden ${ de . suffix ( every ) } Jahr` , offset : ( offset ) => `startend in ${ offset }` , oneOf : ( values ) => `in ${ de . list ( values . map ( x => x . toString ( ) ) ) }` } , ruleMonth : { every : ( every ) => `jeden ${ de . suffix ( every ) } Monat` , offset : ( offset ) => `startend in ${ de . months [ 0 ] [ offset ] }` , oneOf : ( values ) => `in ${ de . list ( values . map ( x => de . months [ 0 ] [ x ] ) ) }` } , ruleDay : { every : ( every ) => `jeden ${ de . suffix ( every ) } Tag der Woche` , offset : ( offset ) => `startend am ${ de . weekdays [ 0 ] [ offset ] }` , oneOf : ( values ) => `on ${ de . list ( values . map ( v => de . weekdays [ 0 ] [ v ] ) ) }` } , ruleWeek : { every : ( every ) => `jeden ${ de . suffix ( every ) } Woche des Jahres` , offset : ( offset ) => `startend am the ${ de . suffix ( offset ) } Woche des Jahres` , oneOf : ( values ) => `am ${ de . list ( values . map ( de . suffix ) ) } Woche des Jahres` } , ruleWeekOfYear : { every : ( every ) => `jeden ${ de . suffix ( every ) } Woche des Jahres` , offset : ( offset ) => `startend am the ${ de . suffix ( offset ) } Woche des Jahres` , oneOf : ( values ) => `am ${ de . list ( values . map ( de . suffix ) ) } Woche des Jahres` } , ruleWeekspanOfYear : { every : ( every ) => `jeden ${ de . suffix ( every + 1 ) } Wochenspanne des Jahres` , offset : ( offset ) => `startend am the ${ de . suffix ( offset + 1 ) } Wochenspanne des Jahres` , oneOf : ( values ) => `am ${ de . list ( values . map ( x => de . suffix ( x + 1 ) ) ) } Wochenspanne des Jahres` } , ruleFullWeekOfYear : { every : ( every ) => `jeden ${ de . suffix ( every ) } vollen Woche des Jahres` , offset : ( offset ) => `startend am the ${ de . suffix ( offset ) } vollen Woche des Jahres` , oneOf : ( values ) => `am ${ de . list ( values . map ( de . suffix ) ) } vollen Woche des Jahres` } , ruleLastWeekspanOfYear : { every : ( every ) => `jeden ${ de . suffix ( every + 1 ) } last Wochenspanne des Jahres` , offset : ( offset ) => `startend am the ${ de . suffix ( offset + 1 ) } last Wochenspanne des Jahres` , oneOf : ( values ) => `am ${ de . list ( values . map ( x => de . suffix ( x + 1 ) ) ) } last Wochenspanne des Jahres` } , ruleLastFullWeekOfYear : { every : ( every ) => `jeden ${ de . suffix ( every ) } letzte volle Woche des Jahres` , offset : ( offset ) => `startend am the ${ de . suffix ( offset ) } letzte volle Woche des Jahres` , oneOf : ( values ) => `am ${ de . list ( values . map ( de . suffix ) ) } letzte volle Woche des Jahres` } , ruleWeekOfMonth : { every : ( every ) => `jeden ${ de . suffix ( every ) } Woche des Monats` , offset : ( offset ) => `startend am the ${ de . suffix ( offset ) } Woche des Monats` , oneOf : ( values ) => `am ${ de . list ( values . map ( de . suffix ) ) } Woche des Monats` } , ruleFullWeekOfMonth : { every : ( every ) => `jeden ${ de . suffix ( every ) } vollen Woche des Monats` , offset : ( offset ) => `startend am the ${ de . suffix ( offset ) } vollen Woche des Monats` , oneOf : ( values ) => `am ${ de . list ( values . map ( de . suffix ) ) } vollen Woche des Monats` } , ruleWeekspanOfMonth : { every : ( every ) => `jeden ${ de . suffix ( every + 1 ) } Wochenspanne des Monats` , offset : ( offset ) => `startend am the ${ de . suffix ( offset + 1 ) } Wochenspanne des Monats` , oneOf : ( values ) => `am ${ de . list ( values . map ( x => de . suffix ( x + 1 ) ) ) } Wochenspanne des Monats` } , ruleLastFullWeekOfMonth : { every : ( every ) => `jeden ${ de . suffix ( every ) } letzte volle week des Monats` , offset : ( offset ) => `startend am the ${ de . suffix ( offset ) } letzte volle week des Monats` , oneOf : ( values ) => `am ${ de . list ( values . map ( de . suffix ) ) } letzte volle week des Monats` } , ruleLastWeekspanOfMonth : { every : ( every ) => `jeden ${ de . suffix ( every + 1 ) } letzten Wochenspanne des Monats` , offset : ( offset ) => `startend am the ${ de . suffix ( offset + 1 ) } letzten Wochenspanne des Monats` , oneOf : ( values ) => `am ${ de . list ( values . map ( x => de . suffix ( x + 1 ) ) ) } letzten Wochenspanne des Monats` } , summaryDay : ( short , dayOfWeek , year ) => ( dayOfWeek ? ( short ? 'ddd, ' : 'dddd, ' ) : '' ) + ( short ? 'MMM ' : 'MMMM ' ) + 'Do' + ( year ? ' Y' : '' ) , summaryWeek : ( short , dayOfWeek , year ) => ( dayOfWeek ? ( short ? 'ddd, ' : 'dddd, ' ) : '' ) + ( short ? 'MMM ' : 'MMMM ' ) + 'Do' + ( year ? ' Y' : '' ) , summaryMonth : ( short , dayOfWeek , year ) => ( short ? 'MMM' : 'MMMM' ) + ( year ? ' YYYY' : '' ) , summaryYear : ( short , dayOfWeek , year ) => ( year ? 'YYYY' : '' ) , list : ( items ) => { const last = items . length - 1 ; let out = items [ 0 ] ; for ( let i = 1 ; i < last ; i ++ ) { out += ', ' + items [ i ] ; } if ( last > 0 ) { out += ' und ' + items [ last ] ; } return out ; } , months : [ [ 'Januar' , 'Februar' , 'März' , 'April' , 'Mai' , 'Juni' , 'Juli' , 'August' , 'September' , 'Oktober' , 'November' , 'Dezember' ] , [ 'Jan' , 'Feb' , 'Mrz' , 'Apr' , 'Mai' , 'Juni' , 'Juli' , 'Aug' , 'Sept' , 'Okt' , 'Nov' , 'Dez' ] , [ 'Jan' , 'Feb' , 'Mrz' , 'Apr' , 'Mai' , 'Jun' , 'Jul' , 'Aug' , 'Sep' , 'Okt' , 'Nov' , 'Dez' ] , [ 'J' , 'F' , 'Mä' , 'A' , 'Ma' , 'Ju' , 'Jl' , 'Ag' , 'S' , 'O' , 'N' , 'D' ] ] , weekdays : [ [ 'Sonntag' , 'Montag' , 'Dienstag' , 'Mittwoch' , 'Donnerstag' , 'Freitag' , 'Samstag' ] , [ 'So' , 'Mo' , 'Di' , 'Mi' , 'Do' , 'Fr' , 'Sa' ] , [ 'So' , 'Mo' , 'Di' , 'Mi' , 'Do' , 'Fr' , 'Sa' ] , [ 'So' , 'Mo' , 'Di' , 'Mi' , 'Do' , 'Fr' , 'Sa' ] , ] , } ; export default de ; Locales . add ( [ 'de' , 'de-at' , 'de-de' , 'de-li' , 'de-lu' , 'de-ch' ] , de ) ;