master
1/*
2 *
3 * Date.addLocale(<code>) adds this locale to Sugar.
4 * To set the locale globally, simply call:
5 *
6 * Date.setLocale('de');
7 *
8 * var locale = Date.getLocale(<code>) will return this object, which
9 * can be tweaked to change the behavior of parsing/formatting in the locales.
10 *
11 * locale.addFormat adds a date format (see this file for examples).
12 * Special tokens in the date format will be parsed out into regex tokens:
13 *
14 * {0} is a reference to an entry in locale.tokens. Output: (?:the)?
15 * {unit} is a reference to all units. Output: (day|week|month|...)
16 * {unit3} is a reference to a specific unit. Output: (hour)
17 * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
18 * {unit?} "?" makes that token optional. Output: (day|week|month)?
19 *
20 * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
21 *
22 * All spaces are optional and will be converted to "\s*"
23 *
24 * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
25 * all entries in the modifiers array follow a special format indicated by a colon:
26 *
27 * minute:|s = minute|minutes
28 * thicke:n|r = thicken|thicker
29 *
30 * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
31 * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
32 *
33 * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
34 *
35 * When matched, the index will be found using:
36 *
37 * units.indexOf(match) % 7;
38 *
39 * Resulting in the correct index with any number of alternates for that entry.
40 *
41 */
42
43Date.addLocale('de', {
44 'plural': true,
45 'capitalizeUnit': true,
46 'months': 'Januar,Februar,März|Marz,April,Mai,Juni,Juli,August,September,Oktober,November,Dezember',
47 'weekdays': 'Sonntag,Montag,Dienstag,Mittwoch,Donnerstag,Freitag,Samstag',
48 'units': 'Millisekunde:|n,Sekunde:|n,Minute:|n,Stunde:|n,Tag:|en,Woche:|n,Monat:|en,Jahr:|en',
49 'numbers': 'ein:|e|er|en|em,zwei,drei,vier,fuenf,sechs,sieben,acht,neun,zehn',
50 'tokens': 'der',
51 'short':'{d}. {Month} {yyyy}',
52 'long': '{d}. {Month} {yyyy} {H}:{mm}',
53 'full': '{Weekday} {d}. {Month} {yyyy} {H}:{mm}:{ss}',
54 'past': '{sign} {num} {unit}',
55 'future': '{sign} {num} {unit}',
56 'duration': '{num} {unit}',
57 'timeMarker': 'um',
58 'ampm': 'am,pm',
59 'modifiers': [
60 { 'name': 'day', 'src': 'vorgestern', 'value': -2 },
61 { 'name': 'day', 'src': 'gestern', 'value': -1 },
62 { 'name': 'day', 'src': 'heute', 'value': 0 },
63 { 'name': 'day', 'src': 'morgen', 'value': 1 },
64 { 'name': 'day', 'src': 'übermorgen|ubermorgen|uebermorgen', 'value': 2 },
65 { 'name': 'sign', 'src': 'vor:|her', 'value': -1 },
66 { 'name': 'sign', 'src': 'in', 'value': 1 },
67 { 'name': 'shift', 'src': 'letzte:|r|n|s', 'value': -1 },
68 { 'name': 'shift', 'src': 'nächste:|r|n|s+nachste:|r|n|s+naechste:|r|n|s+kommende:n|r', 'value': 1 }
69 ],
70 'dateParse': [
71 '{sign} {num} {unit}',
72 '{num} {unit} {sign}',
73 '{shift} {unit=5-7}'
74 ],
75 'timeParse': [
76 '{weekday?} {date?} {month} {year?}',
77 '{shift} {weekday}'
78 ]
79});
80