sugar-rails 1.2.5.1 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/README.md +110 -28
  2. data/lib/generators/sugar/build/build_generator.rb +107 -0
  3. data/lib/generators/sugar/install/install_generator.rb +2 -2
  4. data/lib/sugar/rails/version.rb +2 -2
  5. data/sugar-rails.gemspec +1 -1
  6. data/vendor/assets/javascripts/precompiled/development/array.js +1212 -0
  7. data/vendor/assets/javascripts/precompiled/development/core.js +329 -0
  8. data/vendor/assets/javascripts/precompiled/development/date.js +2179 -0
  9. data/vendor/assets/javascripts/precompiled/development/date_locales.js +952 -0
  10. data/vendor/assets/javascripts/precompiled/development/date_ranges.js +183 -0
  11. data/vendor/assets/javascripts/precompiled/development/es5.js +443 -0
  12. data/vendor/assets/javascripts/precompiled/development/function.js +222 -0
  13. data/vendor/assets/javascripts/{sugar-inflections.js → precompiled/development/inflections.js} +51 -162
  14. data/vendor/assets/javascripts/precompiled/development/language.js +383 -0
  15. data/vendor/assets/javascripts/precompiled/development/number.js +422 -0
  16. data/vendor/assets/javascripts/precompiled/development/object.js +348 -0
  17. data/vendor/assets/javascripts/precompiled/development/regexp.js +92 -0
  18. data/vendor/assets/javascripts/precompiled/development/string.js +871 -0
  19. data/vendor/assets/javascripts/precompiled/minified/array.js +16 -0
  20. data/vendor/assets/javascripts/precompiled/minified/core.js +8 -0
  21. data/vendor/assets/javascripts/precompiled/minified/date.js +40 -0
  22. data/vendor/assets/javascripts/precompiled/minified/date_locales.js +38 -0
  23. data/vendor/assets/javascripts/precompiled/minified/date_ranges.js +3 -0
  24. data/vendor/assets/javascripts/precompiled/minified/es5.js +7 -0
  25. data/vendor/assets/javascripts/precompiled/minified/function.js +4 -0
  26. data/vendor/assets/javascripts/precompiled/minified/inflections.js +11 -0
  27. data/vendor/assets/javascripts/precompiled/minified/language.js +19 -0
  28. data/vendor/assets/javascripts/precompiled/minified/number.js +5 -0
  29. data/vendor/assets/javascripts/precompiled/minified/object.js +6 -0
  30. data/vendor/assets/javascripts/precompiled/minified/regexp.js +2 -0
  31. data/vendor/assets/javascripts/precompiled/minified/string.js +12 -0
  32. data/vendor/assets/javascripts/precompiled/readme.txt +3 -0
  33. data/vendor/assets/javascripts/sugar-development.js +8054 -0
  34. data/vendor/assets/javascripts/sugar-full.js +179 -0
  35. data/vendor/assets/javascripts/sugar.js +111 -6211
  36. metadata +35 -9
  37. data/vendor/assets/javascripts/sugar-core.js +0 -4001
  38. data/vendor/assets/javascripts/sugar-dates-only.js +0 -3121
  39. data/vendor/assets/javascripts/sugar-dates.js +0 -2210
@@ -0,0 +1,952 @@
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.optionals. 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
+
43
+ Date.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
+ 'optionals': '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
+
81
+ /*
82
+ *
83
+ * Date.addLocale(<code>) adds this locale to Sugar.
84
+ * To set the locale globally, simply call:
85
+ *
86
+ * Date.setLocale('es');
87
+ *
88
+ * var locale = Date.getLocale(<code>) will return this object, which
89
+ * can be tweaked to change the behavior of parsing/formatting in the locales.
90
+ *
91
+ * locale.addFormat adds a date format (see this file for examples).
92
+ * Special tokens in the date format will be parsed out into regex tokens:
93
+ *
94
+ * {0} is a reference to an entry in locale.optionals. Output: (?:the)?
95
+ * {unit} is a reference to all units. Output: (day|week|month|...)
96
+ * {unit3} is a reference to a specific unit. Output: (hour)
97
+ * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
98
+ * {unit?} "?" makes that token optional. Output: (day|week|month)?
99
+ *
100
+ * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
101
+ *
102
+ * All spaces are optional and will be converted to "\s*"
103
+ *
104
+ * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
105
+ * all entries in the modifiers array follow a special format indicated by a colon:
106
+ *
107
+ * minute:|s = minute|minutes
108
+ * thicke:n|r = thicken|thicker
109
+ *
110
+ * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
111
+ * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
112
+ *
113
+ * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
114
+ *
115
+ * When matched, the index will be found using:
116
+ *
117
+ * units.indexOf(match) % 7;
118
+ *
119
+ * Resulting in the correct index with any number of alternates for that entry.
120
+ *
121
+ */
122
+
123
+ Date.addLocale('es', {
124
+ 'plural': true,
125
+ 'months': 'enero,febrero,marzo,abril,mayo,junio,julio,agosto,septiembre,octubre,noviembre,diciembre',
126
+ 'weekdays': 'domingo,lunes,martes,miércoles|miercoles,jueves,viernes,sábado|sabado',
127
+ 'units': 'milisegundo:|s,segundo:|s,minuto:|s,hora:|s,día|días|dia|dias,semana:|s,mes:|es,año|años|ano|anos',
128
+ 'numbers': 'uno,dos,tres,cuatro,cinco,seis,siete,ocho,nueve,diez',
129
+ 'optionals': 'el,de',
130
+ 'short':'{d} {month} {yyyy}',
131
+ 'long': '{d} {month} {yyyy} {H}:{mm}',
132
+ 'full': '{Weekday} {d} {month} {yyyy} {H}:{mm}:{ss}',
133
+ 'past': '{sign} {num} {unit}',
134
+ 'future': '{num} {unit} {sign}',
135
+ 'duration': '{num} {unit}',
136
+ 'timeMarker': 'a las',
137
+ 'ampm': 'am,pm',
138
+ 'modifiers': [
139
+ { 'name': 'day', 'src': 'anteayer', 'value': -2 },
140
+ { 'name': 'day', 'src': 'ayer', 'value': -1 },
141
+ { 'name': 'day', 'src': 'hoy', 'value': 0 },
142
+ { 'name': 'day', 'src': 'mañana|manana', 'value': 1 },
143
+ { 'name': 'sign', 'src': 'hace', 'value': -1 },
144
+ { 'name': 'sign', 'src': 'de ahora', 'value': 1 },
145
+ { 'name': 'shift', 'src': 'pasad:o|a', 'value': -1 },
146
+ { 'name': 'shift', 'src': 'próximo|próxima|proximo|proxima', 'value': 1 }
147
+ ],
148
+ 'dateParse': [
149
+ '{sign} {num} {unit}',
150
+ '{num} {unit} {sign}',
151
+ '{0} {unit=5-7} {shift}',
152
+ '{0} {shift} {unit=5-7}'
153
+ ],
154
+ 'timeParse': [
155
+ '{shift} {weekday}',
156
+ '{weekday} {shift}',
157
+ '{date?} {1} {month} {1} {year?}'
158
+ ]
159
+ });
160
+ /*
161
+ *
162
+ * Date.addLocale(<code>) adds this locale to Sugar.
163
+ * To set the locale globally, simply call:
164
+ *
165
+ * Date.setLocale('fr');
166
+ *
167
+ * var locale = Date.getLocale(<code>) will return this object, which
168
+ * can be tweaked to change the behavior of parsing/formatting in the locales.
169
+ *
170
+ * locale.addFormat adds a date format (see this file for examples).
171
+ * Special tokens in the date format will be parsed out into regex tokens:
172
+ *
173
+ * {0} is a reference to an entry in locale.optionals. Output: (?:the)?
174
+ * {unit} is a reference to all units. Output: (day|week|month|...)
175
+ * {unit3} is a reference to a specific unit. Output: (hour)
176
+ * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
177
+ * {unit?} "?" makes that token optional. Output: (day|week|month)?
178
+ *
179
+ * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
180
+ *
181
+ * All spaces are optional and will be converted to "\s*"
182
+ *
183
+ * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
184
+ * all entries in the modifiers array follow a special format indicated by a colon:
185
+ *
186
+ * minute:|s = minute|minutes
187
+ * thicke:n|r = thicken|thicker
188
+ *
189
+ * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
190
+ * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
191
+ *
192
+ * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
193
+ *
194
+ * When matched, the index will be found using:
195
+ *
196
+ * units.indexOf(match) % 7;
197
+ *
198
+ * Resulting in the correct index with any number of alternates for that entry.
199
+ *
200
+ */
201
+
202
+ Date.addLocale('fr', {
203
+ 'plural': true,
204
+ 'months': 'janvier,février|fevrier,mars,avril,mai,juin,juillet,août,septembre,octobre,novembre,décembre|decembre',
205
+ 'weekdays': 'dimanche,lundi,mardi,mercredi,jeudi,vendredi,samedi',
206
+ 'units': 'milliseconde:|s,seconde:|s,minute:|s,heure:|s,jour:|s,semaine:|s,mois,an:|s|née|nee',
207
+ 'numbers': 'un:|e,deux,trois,quatre,cinq,six,sept,huit,neuf,dix',
208
+ 'optionals': ["l'|la|le"],
209
+ 'short':'{d} {month} {yyyy}',
210
+ 'long': '{d} {month} {yyyy} {H}:{mm}',
211
+ 'full': '{Weekday} {d} {month} {yyyy} {H}:{mm}:{ss}',
212
+ 'past': '{sign} {num} {unit}',
213
+ 'future': '{sign} {num} {unit}',
214
+ 'duration': '{num} {unit}',
215
+ 'timeMarker': 'à',
216
+ 'ampm': 'am,pm',
217
+ 'modifiers': [
218
+ { 'name': 'day', 'src': 'hier', 'value': -1 },
219
+ { 'name': 'day', 'src': "aujourd'hui", 'value': 0 },
220
+ { 'name': 'day', 'src': 'demain', 'value': 1 },
221
+ { 'name': 'sign', 'src': 'il y a', 'value': -1 },
222
+ { 'name': 'sign', 'src': "dans|d'ici", 'value': 1 },
223
+ { 'name': 'shift', 'src': 'derni:èr|er|ère|ere', 'value': -1 },
224
+ { 'name': 'shift', 'src': 'prochain:|e', 'value': 1 }
225
+ ],
226
+ 'dateParse': [
227
+ '{sign} {num} {unit}',
228
+ '{sign} {num} {unit}',
229
+ '{0} {unit=5-7} {shift}'
230
+ ],
231
+ 'timeParse': [
232
+ '{0} {date?} {month} {year?}',
233
+ '{0} {weekday} {shift}'
234
+ ]
235
+ });
236
+
237
+ /*
238
+ *
239
+ * Date.addLocale(<code>) adds this locale to Sugar.
240
+ * To set the locale globally, simply call:
241
+ *
242
+ * Date.setLocale('it');
243
+ *
244
+ * var locale = Date.getLocale(<code>) will return this object, which
245
+ * can be tweaked to change the behavior of parsing/formatting in the locales.
246
+ *
247
+ * locale.addFormat adds a date format (see this file for examples).
248
+ * Special tokens in the date format will be parsed out into regex tokens:
249
+ *
250
+ * {0} is a reference to an entry in locale.optionals. Output: (?:the)?
251
+ * {unit} is a reference to all units. Output: (day|week|month|...)
252
+ * {unit3} is a reference to a specific unit. Output: (hour)
253
+ * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
254
+ * {unit?} "?" makes that token optional. Output: (day|week|month)?
255
+ *
256
+ * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
257
+ *
258
+ * All spaces are optional and will be converted to "\s*"
259
+ *
260
+ * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
261
+ * all entries in the modifiers array follow a special format indicated by a colon:
262
+ *
263
+ * minute:|s = minute|minutes
264
+ * thicke:n|r = thicken|thicker
265
+ *
266
+ * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
267
+ * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
268
+ *
269
+ * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
270
+ *
271
+ * When matched, the index will be found using:
272
+ *
273
+ * units.indexOf(match) % 7;
274
+ *
275
+ * Resulting in the correct index with any number of alternates for that entry.
276
+ *
277
+ */
278
+
279
+ Date.addLocale('it', {
280
+ 'plural': true,
281
+ 'months': 'Gennaio,Febbraio,Marzo,Aprile,Maggio,Giugno,Luglio,Agosto,Settembre,Ottobre,Novembre,Dicembre',
282
+ 'weekdays': 'Domenica,Luned:ì|i,Marted:ì|i,Mercoled:ì|i,Gioved:ì|i,Venerd:ì|i,Sabato',
283
+ 'units': 'millisecond:o|i,second:o|i,minut:o|i,or:a|e,giorn:o|i,settiman:a|e,mes:e|i,ann:o|i',
284
+ 'numbers': "un:|a|o|',due,tre,quattro,cinque,sei,sette,otto,nove,dieci",
285
+ 'optionals': "l'|la|il",
286
+ 'short':'{d} {Month} {yyyy}',
287
+ 'long': '{d} {Month} {yyyy} {H}:{mm}',
288
+ 'full': '{Weekday} {d} {Month} {yyyy} {H}:{mm}:{ss}',
289
+ 'past': '{num} {unit} {sign}',
290
+ 'future': '{num} {unit} {sign}',
291
+ 'duration': '{num} {unit}',
292
+ 'timeMarker': 'alle',
293
+ 'ampm': 'am,pm',
294
+ 'modifiers': [
295
+ { 'name': 'day', 'src': 'ieri', 'value': -1 },
296
+ { 'name': 'day', 'src': 'oggi', 'value': 0 },
297
+ { 'name': 'day', 'src': 'domani', 'value': 1 },
298
+ { 'name': 'day', 'src': 'dopodomani', 'value': 2 },
299
+ { 'name': 'sign', 'src': 'fa', 'value': -1 },
300
+ { 'name': 'sign', 'src': 'da adesso', 'value': 1 },
301
+ { 'name': 'shift', 'src': 'scors:o|a', 'value': -1 },
302
+ { 'name': 'shift', 'src': 'prossim:o|a', 'value': 1 }
303
+ ],
304
+ 'dateParse': [
305
+ '{num} {unit} {sign}',
306
+ '{0} {unit=5-7} {shift}',
307
+ '{0} {shift} {unit=5-7}'
308
+ ],
309
+ 'timeParse': [
310
+ '{weekday?} {date?} {month} {year?}',
311
+ '{shift} {weekday}'
312
+ ]
313
+ });
314
+
315
+ /*
316
+ *
317
+ * Date.addLocale(<code>) adds this locale to Sugar.
318
+ * To set the locale globally, simply call:
319
+ *
320
+ * Date.setLocale('ja');
321
+ *
322
+ * var locale = Date.getLocale(<code>) will return this object, which
323
+ * can be tweaked to change the behavior of parsing/formatting in the locales.
324
+ *
325
+ * locale.addFormat adds a date format (see this file for examples).
326
+ * Special tokens in the date format will be parsed out into regex tokens:
327
+ *
328
+ * {0} is a reference to an entry in locale.optionals. Output: (?:the)?
329
+ * {unit} is a reference to all units. Output: (day|week|month|...)
330
+ * {unit3} is a reference to a specific unit. Output: (hour)
331
+ * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
332
+ * {unit?} "?" makes that token optional. Output: (day|week|month)?
333
+ *
334
+ * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
335
+ *
336
+ * All spaces are optional and will be converted to "\s*"
337
+ *
338
+ * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
339
+ * all entries in the modifiers array follow a special format indicated by a colon:
340
+ *
341
+ * minute:|s = minute|minutes
342
+ * thicke:n|r = thicken|thicker
343
+ *
344
+ * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
345
+ * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
346
+ *
347
+ * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
348
+ *
349
+ * When matched, the index will be found using:
350
+ *
351
+ * units.indexOf(match) % 7;
352
+ *
353
+ * Resulting in the correct index with any number of alternates for that entry.
354
+ *
355
+ */
356
+
357
+ Date.addLocale('ja', {
358
+ 'monthSuffix': '月',
359
+ 'weekdays': '日曜日,月曜日,火曜日,水曜日,木曜日,金曜日,土曜日',
360
+ 'units': 'ミリ秒,秒,分,時間,日,週間|週,ヶ月|ヵ月|月,年',
361
+ 'short': '{yyyy}年{M}月{d}日',
362
+ 'long': '{yyyy}年{M}月{d}日 {H}時{mm}分',
363
+ 'full': '{yyyy}年{M}月{d}日 {Weekday} {H}時{mm}分{ss}秒',
364
+ 'past': '{num}{unit}{sign}',
365
+ 'future': '{num}{unit}{sign}',
366
+ 'duration': '{num}{unit}',
367
+ 'timeSuffixes': '時,分,秒',
368
+ 'ampm': '午前,午後',
369
+ 'modifiers': [
370
+ { 'name': 'day', 'src': '一昨日', 'value': -2 },
371
+ { 'name': 'day', 'src': '昨日', 'value': -1 },
372
+ { 'name': 'day', 'src': '今日', 'value': 0 },
373
+ { 'name': 'day', 'src': '明日', 'value': 1 },
374
+ { 'name': 'day', 'src': '明後日', 'value': 2 },
375
+ { 'name': 'sign', 'src': '前', 'value': -1 },
376
+ { 'name': 'sign', 'src': '後', 'value': 1 },
377
+ { 'name': 'shift', 'src': '去|先', 'value': -1 },
378
+ { 'name': 'shift', 'src': '来', 'value': 1 }
379
+ ],
380
+ 'dateParse': [
381
+ '{num}{unit}{sign}'
382
+ ],
383
+ 'timeParse': [
384
+ '{shift}{unit=5-7}{weekday?}',
385
+ '{year}年{month?}月?{date?}日?',
386
+ '{month}月{date?}日?',
387
+ '{date}日'
388
+ ]
389
+ });
390
+
391
+ /*
392
+ *
393
+ * Date.addLocale(<code>) adds this locale to Sugar.
394
+ * To set the locale globally, simply call:
395
+ *
396
+ * Date.setLocale('ko');
397
+ *
398
+ * var locale = Date.getLocale(<code>) will return this object, which
399
+ * can be tweaked to change the behavior of parsing/formatting in the locales.
400
+ *
401
+ * locale.addFormat adds a date format (see this file for examples).
402
+ * Special tokens in the date format will be parsed out into regex tokens:
403
+ *
404
+ * {0} is a reference to an entry in locale.optionals. Output: (?:the)?
405
+ * {unit} is a reference to all units. Output: (day|week|month|...)
406
+ * {unit3} is a reference to a specific unit. Output: (hour)
407
+ * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
408
+ * {unit?} "?" makes that token optional. Output: (day|week|month)?
409
+ *
410
+ * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
411
+ *
412
+ * All spaces are optional and will be converted to "\s*"
413
+ *
414
+ * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
415
+ * all entries in the modifiers array follow a special format indicated by a colon:
416
+ *
417
+ * minute:|s = minute|minutes
418
+ * thicke:n|r = thicken|thicker
419
+ *
420
+ * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
421
+ * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
422
+ *
423
+ * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
424
+ *
425
+ * When matched, the index will be found using:
426
+ *
427
+ * units.indexOf(match) % 7;
428
+ *
429
+ * Resulting in the correct index with any number of alternates for that entry.
430
+ *
431
+ */
432
+
433
+ Date.addLocale('ko', {
434
+ 'digitDate': true,
435
+ 'monthSuffix': '월',
436
+ 'weekdays': '일요일,월요일,화요일,수요일,목요일,금요일,토요일',
437
+ 'units': '밀리초,초,분,시간,일,주,개월|달,년',
438
+ 'numbers': '일|한,이,삼,사,오,육,칠,팔,구,십',
439
+ 'short': '{yyyy}년{M}월{d}일',
440
+ 'long': '{yyyy}년{M}월{d}일 {H}시{mm}분',
441
+ 'full': '{yyyy}년{M}월{d}일 {Weekday} {H}시{mm}분{ss}초',
442
+ 'past': '{num}{unit} {sign}',
443
+ 'future': '{num}{unit} {sign}',
444
+ 'duration': '{num}{unit}',
445
+ 'timeSuffixes': '시,분,초',
446
+ 'ampm': '오전,오후',
447
+ 'modifiers': [
448
+ { 'name': 'day', 'src': '그저께', 'value': -2 },
449
+ { 'name': 'day', 'src': '어제', 'value': -1 },
450
+ { 'name': 'day', 'src': '오늘', 'value': 0 },
451
+ { 'name': 'day', 'src': '내일', 'value': 1 },
452
+ { 'name': 'day', 'src': '모레', 'value': 2 },
453
+ { 'name': 'sign', 'src': '전', 'value': -1 },
454
+ { 'name': 'sign', 'src': '후', 'value': 1 },
455
+ { 'name': 'shift', 'src': '지난|작', 'value': -1 },
456
+ { 'name': 'shift', 'src': '이번', 'value': 0 },
457
+ { 'name': 'shift', 'src': '다음|내', 'value': 1 }
458
+ ],
459
+ 'dateParse': [
460
+ '{num}{unit} {sign}',
461
+ '{shift?} {unit=5-7}'
462
+ ],
463
+ 'timeParse': [
464
+ '{shift} {unit=5?} {weekday}',
465
+ '{year}년{month?}월?{date?}일?',
466
+ '{month}월{date?}일?',
467
+ '{date}일'
468
+ ]
469
+ });
470
+
471
+ /*
472
+ *
473
+ * Date.addLocale(<code>) adds this locale to Sugar.
474
+ * To set the locale globally, simply call:
475
+ *
476
+ * Date.setLocale('pl');
477
+ *
478
+ * var locale = Date.getLocale(<code>) will return this object, which
479
+ * can be tweaked to change the behavior of parsing/formatting in the locales.
480
+ *
481
+ * locale.addFormat adds a date format (see this file for examples).
482
+ * Special tokens in the date format will be parsed out into regex tokens:
483
+ *
484
+ * {0} is a reference to an entry in locale.optionals. Output: (?:the)?
485
+ * {unit} is a reference to all units. Output: (day|week|month|...)
486
+ * {unit3} is a reference to a specific unit. Output: (hour)
487
+ * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
488
+ * {unit?} "?" makes that token optional. Output: (day|week|month)?
489
+ *
490
+ * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
491
+ *
492
+ * All spaces are optional and will be converted to "\s*"
493
+ *
494
+ * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
495
+ * all entries in the modifiers array follow a special format indicated by a colon:
496
+ *
497
+ * minute:|s = minute|minutes
498
+ * thicke:n|r = thicken|thicker
499
+ *
500
+ * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
501
+ * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
502
+ *
503
+ * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
504
+ *
505
+ * When matched, the index will be found using:
506
+ *
507
+ * units.indexOf(match) % 7;
508
+ *
509
+ * Resulting in the correct index with any number of alternates for that entry.
510
+ *
511
+ */
512
+
513
+ Date.addLocale('pl', {
514
+ 'plural': true,
515
+ 'months': 'Styczeń|Stycznia,Luty|Lutego,Marzec|Marca,Kwiecień|Kwietnia,Maj|Maja,Czerwiec|Czerwca,Lipiec|Lipca,Sierpień|Sierpnia,Wrzesień|Września,Październik|Października,Listopad|Listopada,Grudzień|Grudnia',
516
+ 'weekdays': 'Niedziela|Niedzielę,Poniedziałek,Wtorek,Środ:a|ę,Czwartek,Piątek,Sobota|Sobotę',
517
+ 'units': 'milisekund:a|y|,sekund:a|y|,minut:a|y|,godzin:a|y|,dzień|dni,tydzień|tygodnie|tygodni,miesiące|miesiące|miesięcy,rok|lata|lat',
518
+ 'numbers': 'jeden|jedną,dwa|dwie,trzy,cztery,pięć,sześć,siedem,osiem,dziewięć,dziesięć',
519
+ 'optionals': 'w|we,roku',
520
+ 'short': '{d} {Month} {yyyy}',
521
+ 'long': '{d} {Month} {yyyy} {H}:{mm}',
522
+ 'full' : '{Weekday}, {d} {Month} {yyyy} {H}:{mm}:{ss}',
523
+ 'past': '{num} {unit} {sign}',
524
+ 'future': '{sign} {num} {unit}',
525
+ 'duration': '{num} {unit}',
526
+ 'timeMarker':'o',
527
+ 'ampm': 'am,pm',
528
+ 'modifiers': [
529
+ { 'name': 'day', 'src': 'przedwczoraj', 'value': -2 },
530
+ { 'name': 'day', 'src': 'wczoraj', 'value': -1 },
531
+ { 'name': 'day', 'src': 'dzisiaj|dziś', 'value': 0 },
532
+ { 'name': 'day', 'src': 'jutro', 'value': 1 },
533
+ { 'name': 'day', 'src': 'pojutrze', 'value': 2 },
534
+ { 'name': 'sign', 'src': 'temu|przed', 'value': -1 },
535
+ { 'name': 'sign', 'src': 'za', 'value': 1 },
536
+ { 'name': 'shift', 'src': 'zeszły|zeszła|ostatni|ostatnia', 'value': -1 },
537
+ { 'name': 'shift', 'src': 'następny|następna|następnego|przyszły|przyszła|przyszłego', 'value': 1 }
538
+ ],
539
+ 'dateParse': [
540
+ '{num} {unit} {sign}',
541
+ '{sign} {num} {unit}',
542
+ '{month} {year}',
543
+ '{shift} {unit=5-7}',
544
+ '{0} {shift?} {weekday}'
545
+ ],
546
+ 'timeParse': [
547
+ '{date} {month} {year?} {1}',
548
+ '{0} {shift?} {weekday}'
549
+ ]
550
+ });
551
+
552
+ /*
553
+ *
554
+ * Date.addLocale(<code>) adds this locale to Sugar.
555
+ * To set the locale globally, simply call:
556
+ *
557
+ * Date.setLocale('pt');
558
+ *
559
+ * var locale = Date.getLocale(<code>) will return this object, which
560
+ * can be tweaked to change the behavior of parsing/formatting in the locales.
561
+ *
562
+ * locale.addFormat adds a date format (see this file for examples).
563
+ * Special tokens in the date format will be parsed out into regex tokens:
564
+ *
565
+ * {0} is a reference to an entry in locale.optionals. Output: (?:the)?
566
+ * {unit} is a reference to all units. Output: (day|week|month|...)
567
+ * {unit3} is a reference to a specific unit. Output: (hour)
568
+ * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
569
+ * {unit?} "?" makes that token optional. Output: (day|week|month)?
570
+ *
571
+ * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
572
+ *
573
+ * All spaces are optional and will be converted to "\s*"
574
+ *
575
+ * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
576
+ * all entries in the modifiers array follow a special format indicated by a colon:
577
+ *
578
+ * minute:|s = minute|minutes
579
+ * thicke:n|r = thicken|thicker
580
+ *
581
+ * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
582
+ * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
583
+ *
584
+ * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
585
+ *
586
+ * When matched, the index will be found using:
587
+ *
588
+ * units.indexOf(match) % 7;
589
+ *
590
+ * Resulting in the correct index with any number of alternates for that entry.
591
+ *
592
+ */
593
+
594
+ Date.addLocale('pt', {
595
+ 'plural': true,
596
+ 'months': 'janeiro,fevereiro,março,abril,maio,junho,julho,agosto,setembro,outubro,novembro,dezembro',
597
+ 'weekdays': 'domingo,segunda-feira,terça-feira,quarta-feira,quinta-feira,sexta-feira,sábado|sabado',
598
+ 'units': 'milisegundo:|s,segundo:|s,minuto:|s,hora:|s,dia:|s,semana:|s,mês|mêses|mes|meses,ano:|s',
599
+ 'numbers': 'um,dois,três|tres,quatro,cinco,seis,sete,oito,nove,dez,uma,duas',
600
+ 'optionals': 'a,de',
601
+ 'short':'{d} de {month} de {yyyy}',
602
+ 'long': '{d} de {month} de {yyyy} {H}:{mm}',
603
+ 'full': '{Weekday}, {d} de {month} de {yyyy} {H}:{mm}:{ss}',
604
+ 'past': '{num} {unit} {sign}',
605
+ 'future': '{sign} {num} {unit}',
606
+ 'duration': '{num} {unit}',
607
+ 'timeMarker': 'às',
608
+ 'ampm': 'am,pm',
609
+ 'modifiers': [
610
+ { 'name': 'day', 'src': 'anteontem', 'value': -2 },
611
+ { 'name': 'day', 'src': 'ontem', 'value': -1 },
612
+ { 'name': 'day', 'src': 'hoje', 'value': 0 },
613
+ { 'name': 'day', 'src': 'amanh:ã|a', 'value': 1 },
614
+ { 'name': 'sign', 'src': 'atrás|atras|há|ha', 'value': -1 },
615
+ { 'name': 'sign', 'src': 'daqui a', 'value': 1 },
616
+ { 'name': 'shift', 'src': 'passad:o|a', 'value': -1 },
617
+ { 'name': 'shift', 'src': 'próximo|próxima|proximo|proxima', 'value': 1 }
618
+ ],
619
+ 'dateParse': [
620
+ '{num} {unit} {sign}',
621
+ '{sign} {num} {unit}',
622
+ '{0} {unit=5-7} {shift}',
623
+ '{0} {shift} {unit=5-7}'
624
+ ],
625
+ 'timeParse': [
626
+ '{date?} {1} {month} {1} {year?}',
627
+ '{0} {shift} {weekday}'
628
+ ]
629
+ });
630
+
631
+ /*
632
+ *
633
+ * Date.addLocale(<code>) adds this locale to Sugar.
634
+ * To set the locale globally, simply call:
635
+ *
636
+ * Date.setLocale('ru');
637
+ *
638
+ * var locale = Date.getLocale(<code>) will return this object, which
639
+ * can be tweaked to change the behavior of parsing/formatting in the locales.
640
+ *
641
+ * locale.addFormat adds a date format (see this file for examples).
642
+ * Special tokens in the date format will be parsed out into regex tokens:
643
+ *
644
+ * {0} is a reference to an entry in locale.optionals. Output: (?:the)?
645
+ * {unit} is a reference to all units. Output: (day|week|month|...)
646
+ * {unit3} is a reference to a specific unit. Output: (hour)
647
+ * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
648
+ * {unit?} "?" makes that token optional. Output: (day|week|month)?
649
+ *
650
+ * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
651
+ *
652
+ * All spaces are optional and will be converted to "\s*"
653
+ *
654
+ * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
655
+ * all entries in the modifiers array follow a special format indicated by a colon:
656
+ *
657
+ * minute:|s = minute|minutes
658
+ * thicke:n|r = thicken|thicker
659
+ *
660
+ * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
661
+ * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
662
+ *
663
+ * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
664
+ *
665
+ * When matched, the index will be found using:
666
+ *
667
+ * units.indexOf(match) % 7;
668
+ *
669
+ * Resulting in the correct index with any number of alternates for that entry.
670
+ *
671
+ */
672
+
673
+ Date.addLocale('ru', {
674
+ 'months': 'Январ:я|ь,Феврал:я|ь,Март:а|,Апрел:я|ь,Ма:я|й,Июн:я|ь,Июл:я|ь,Август:а|,Сентябр:я|ь,Октябр:я|ь,Ноябр:я|ь,Декабр:я|ь',
675
+ 'weekdays': 'Воскресенье,Понедельник,Вторник,Среда,Четверг,Пятница,Суббота',
676
+ 'units': 'миллисекунд:а|у|ы|,секунд:а|у|ы|,минут:а|у|ы|,час:||а|ов,день|день|дня|дней,недел:я|ю|и|ь|е,месяц:||а|ев|е,год|год|года|лет|году',
677
+ 'numbers': 'од:ин|ну,дв:а|е,три,четыре,пять,шесть,семь,восемь,девять,десять',
678
+ 'optionals': 'в|на,года',
679
+ 'short':'{d} {month} {yyyy} года',
680
+ 'long': '{d} {month} {yyyy} года {H}:{mm}',
681
+ 'full': '{Weekday} {d} {month} {yyyy} года {H}:{mm}:{ss}',
682
+ 'past': '{num} {unit} {sign}',
683
+ 'future': '{sign} {num} {unit}',
684
+ 'duration': '{num} {unit}',
685
+ 'timeMarker': 'в',
686
+ 'ampm': ' утра, вечера',
687
+ 'modifiers': [
688
+ { 'name': 'day', 'src': 'позавчера', 'value': -2 },
689
+ { 'name': 'day', 'src': 'вчера', 'value': -1 },
690
+ { 'name': 'day', 'src': 'сегодня', 'value': 0 },
691
+ { 'name': 'day', 'src': 'завтра', 'value': 1 },
692
+ { 'name': 'day', 'src': 'послезавтра', 'value': 2 },
693
+ { 'name': 'sign', 'src': 'назад', 'value': -1 },
694
+ { 'name': 'sign', 'src': 'через', 'value': 1 },
695
+ { 'name': 'shift', 'src': 'прошл:ый|ой|ом', 'value': -1 },
696
+ { 'name': 'shift', 'src': 'следующ:ий|ей|ем', 'value': 1 }
697
+ ],
698
+ 'dateParse': [
699
+ '{num} {unit} {sign}',
700
+ '{sign} {num} {unit}',
701
+ '{month} {year}',
702
+ '{0} {shift} {unit=5-7}'
703
+ ],
704
+ 'timeParse': [
705
+ '{date} {month} {year?} {1}',
706
+ '{0} {shift} {weekday}'
707
+ ]
708
+ });
709
+
710
+ /*
711
+ *
712
+ * Date.addLocale(<code>) adds this locale to Sugar.
713
+ * To set the locale globally, simply call:
714
+ *
715
+ * Date.setLocale('sv');
716
+ *
717
+ * var locale = Date.getLocale(<code>) will return this object, which
718
+ * can be tweaked to change the behavior of parsing/formatting in the locales.
719
+ *
720
+ * locale.addFormat adds a date format (see this file for examples).
721
+ * Special tokens in the date format will be parsed out into regex tokens:
722
+ *
723
+ * {0} is a reference to an entry in locale.optionals. Output: (?:the)?
724
+ * {unit} is a reference to all units. Output: (day|week|month|...)
725
+ * {unit3} is a reference to a specific unit. Output: (hour)
726
+ * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
727
+ * {unit?} "?" makes that token optional. Output: (day|week|month)?
728
+ *
729
+ * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
730
+ *
731
+ * All spaces are optional and will be converted to "\s*"
732
+ *
733
+ * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
734
+ * all entries in the modifiers array follow a special format indicated by a colon:
735
+ *
736
+ * minute:|s = minute|minutes
737
+ * thicke:n|r = thicken|thicker
738
+ *
739
+ * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
740
+ * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
741
+ *
742
+ * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
743
+ *
744
+ * When matched, the index will be found using:
745
+ *
746
+ * units.indexOf(match) % 7;
747
+ *
748
+ * Resulting in the correct index with any number of alternates for that entry.
749
+ *
750
+ */
751
+
752
+ Date.addLocale('sv', {
753
+ 'plural': true,
754
+ 'months': 'januari,februari,mars,april,maj,juni,juli,augusti,september,oktober,november,december',
755
+ 'weekdays': 'söndag|sondag,måndag:|en+mandag:|en,tisdag,onsdag,torsdag,fredag,lördag|lordag',
756
+ 'units': 'millisekund:|er,sekund:|er,minut:|er,timm:e|ar,dag:|ar,veck:a|or|an,månad:|er|en+manad:|er|en,år:||et+ar:||et',
757
+ 'numbers': 'en|ett,två|tva,tre,fyra,fem,sex,sju,åtta|atta,nio,tio',
758
+ 'optionals': 'den,för|for',
759
+ 'articles': 'den',
760
+ 'short':'den {d} {month} {yyyy}',
761
+ 'long': 'den {d} {month} {yyyy} {H}:{mm}',
762
+ 'full': '{Weekday} den {d} {month} {yyyy} {H}:{mm}:{ss}',
763
+ 'past': '{num} {unit} {sign}',
764
+ 'future': '{sign} {num} {unit}',
765
+ 'duration': '{num} {unit}',
766
+ 'ampm': 'am,pm',
767
+ 'modifiers': [
768
+ { 'name': 'day', 'src': 'förrgår|i förrgår|iförrgår|forrgar|i forrgar|iforrgar', 'value': -2 },
769
+ { 'name': 'day', 'src': 'går|i går|igår|gar|i gar|igar', 'value': -1 },
770
+ { 'name': 'day', 'src': 'dag|i dag|idag', 'value': 0 },
771
+ { 'name': 'day', 'src': 'morgon|i morgon|imorgon', 'value': 1 },
772
+ { 'name': 'day', 'src': 'över morgon|övermorgon|i över morgon|i övermorgon|iövermorgon|over morgon|overmorgon|i over morgon|i overmorgon|iovermorgon', 'value': 2 },
773
+ { 'name': 'sign', 'src': 'sedan|sen', 'value': -1 },
774
+ { 'name': 'sign', 'src': 'om', 'value': 1 },
775
+ { 'name': 'shift', 'src': 'i förra|förra|i forra|forra', 'value': -1 },
776
+ { 'name': 'shift', 'src': 'denna', 'value': 0 },
777
+ { 'name': 'shift', 'src': 'nästa|nasta', 'value': 1 }
778
+ ],
779
+ 'dateParse': [
780
+ '{num} {unit} {sign}',
781
+ '{sign} {num} {unit}',
782
+ '{1} {num} {unit} {sign}',
783
+ '{shift} {unit5-7}'
784
+ ],
785
+ 'timeParse': [
786
+ '{0} {weekday?} {date?} {month} {year}',
787
+ '{date} {month}',
788
+ '{shift} {weekday}'
789
+ ]
790
+ });
791
+
792
+ /*
793
+ *
794
+ * Date.addLocale(<code>) adds this locale to Sugar.
795
+ * To set the locale globally, simply call:
796
+ *
797
+ * Date.setLocale('zh-CN');
798
+ *
799
+ * var locale = Date.getLocale(<code>) will return this object, which
800
+ * can be tweaked to change the behavior of parsing/formatting in the locales.
801
+ *
802
+ * locale.addFormat adds a date format (see this file for examples).
803
+ * Special tokens in the date format will be parsed out into regex tokens:
804
+ *
805
+ * {0} is a reference to an entry in locale.optionals. Output: (?:the)?
806
+ * {unit} is a reference to all units. Output: (day|week|month|...)
807
+ * {unit3} is a reference to a specific unit. Output: (hour)
808
+ * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
809
+ * {unit?} "?" makes that token optional. Output: (day|week|month)?
810
+ *
811
+ * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
812
+ *
813
+ * All spaces are optional and will be converted to "\s*"
814
+ *
815
+ * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
816
+ * all entries in the modifiers array follow a special format indicated by a colon:
817
+ *
818
+ * minute:|s = minute|minutes
819
+ * thicke:n|r = thicken|thicker
820
+ *
821
+ * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
822
+ * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
823
+ *
824
+ * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
825
+ *
826
+ * When matched, the index will be found using:
827
+ *
828
+ * units.indexOf(match) % 7;
829
+ *
830
+ * Resulting in the correct index with any number of alternates for that entry.
831
+ *
832
+ */
833
+
834
+ Date.addLocale('zh-CN', {
835
+ 'variant': true,
836
+ 'monthSuffix': '月',
837
+ 'weekdays': '星期日|周日,星期一|周一,星期二|周二,星期三|周三,星期四|周四,星期五|周五,星期六|周六',
838
+ 'units': '毫秒,秒钟,分钟,小时,天,个星期|周,个月,年',
839
+ 'optionals': '日|号',
840
+ 'short':'{yyyy}年{M}月{d}日',
841
+ 'long': '{yyyy}年{M}月{d}日 {tt}{h}:{mm}',
842
+ 'full': '{yyyy}年{M}月{d}日 {weekday} {tt}{h}:{mm}:{ss}',
843
+ 'past': '{num}{unit}{sign}',
844
+ 'future': '{num}{unit}{sign}',
845
+ 'duration': '{num}{unit}',
846
+ 'timeSuffixes': '点|时,分钟?,秒',
847
+ 'ampm': '上午,下午',
848
+ 'modifiers': [
849
+ { 'name': 'day', 'src': '前天', 'value': -2 },
850
+ { 'name': 'day', 'src': '昨天', 'value': -1 },
851
+ { 'name': 'day', 'src': '今天', 'value': 0 },
852
+ { 'name': 'day', 'src': '明天', 'value': 1 },
853
+ { 'name': 'day', 'src': '后天', 'value': 2 },
854
+ { 'name': 'sign', 'src': '前', 'value': -1 },
855
+ { 'name': 'sign', 'src': '后', 'value': 1 },
856
+ { 'name': 'shift', 'src': '上|去', 'value': -1 },
857
+ { 'name': 'shift', 'src': '这', 'value': 0 },
858
+ { 'name': 'shift', 'src': '下|明', 'value': 1 }
859
+ ],
860
+ 'dateParse': [
861
+ '{num}{unit}{sign}',
862
+ '{shift}{unit=5-7}'
863
+ ],
864
+ 'timeParse': [
865
+ '{shift}{weekday}',
866
+ '{year}年{month?}月?{date?}{0}',
867
+ '{month}月{date?}{0}',
868
+ '{date}{0}'
869
+ ]
870
+ });
871
+
872
+ /*
873
+ *
874
+ * Date.addLocale(<code>) adds this locale to Sugar.
875
+ * To set the locale globally, simply call:
876
+ *
877
+ * Date.setLocale('zh-TW');
878
+ *
879
+ * var locale = Date.getLocale(<code>) will return this object, which
880
+ * can be tweaked to change the behavior of parsing/formatting in the locales.
881
+ *
882
+ * locale.addFormat adds a date format (see this file for examples).
883
+ * Special tokens in the date format will be parsed out into regex tokens:
884
+ *
885
+ * {0} is a reference to an entry in locale.optionals. Output: (?:the)?
886
+ * {unit} is a reference to all units. Output: (day|week|month|...)
887
+ * {unit3} is a reference to a specific unit. Output: (hour)
888
+ * {unit3-5} is a reference to a subset of the units array. Output: (hour|day|week)
889
+ * {unit?} "?" makes that token optional. Output: (day|week|month)?
890
+ *
891
+ * {day} Any reference to tokens in the modifiers array will include all with the same name. Output: (yesterday|today|tomorrow)
892
+ *
893
+ * All spaces are optional and will be converted to "\s*"
894
+ *
895
+ * Locale arrays months, weekdays, units, numbers, as well as the "src" field for
896
+ * all entries in the modifiers array follow a special format indicated by a colon:
897
+ *
898
+ * minute:|s = minute|minutes
899
+ * thicke:n|r = thicken|thicker
900
+ *
901
+ * Additionally in the months, weekdays, units, and numbers array these will be added at indexes that are multiples
902
+ * of the relevant number for retrieval. For example having "sunday:|s" in the units array will result in:
903
+ *
904
+ * units: ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sundays']
905
+ *
906
+ * When matched, the index will be found using:
907
+ *
908
+ * units.indexOf(match) % 7;
909
+ *
910
+ * Resulting in the correct index with any number of alternates for that entry.
911
+ *
912
+ */
913
+
914
+ //'zh-TW': '1;月;年;;星期日|週日,星期一|週一,星期二|週二,星期三|週三,星期四|週四,星期五|週五,星期六|週六;毫秒,秒鐘,分鐘,小時,天,個星期|週,個月,年;;;日|號;;上午,下午;點|時,分鐘?,秒;{num}{unit}{sign},{shift}{unit=5-7};{shift}{weekday},{year}年{month?}月?{date?}{0},{month}月{date?}{0},{date}{0};{yyyy}年{M}月{d}日 {Weekday};{tt}{h}:{mm}:{ss};前天,昨天,今天,明天,後天;,前,,後;,上|去,這,下|明',
915
+
916
+ Date.addLocale('zh-TW', {
917
+ 'monthSuffix': '月',
918
+ 'weekdays': '星期日|週日,星期一|週一,星期二|週二,星期三|週三,星期四|週四,星期五|週五,星期六|週六',
919
+ 'units': '毫秒,秒鐘,分鐘,小時,天,個星期|週,個月,年',
920
+ 'optionals': '日|號',
921
+ 'short':'{yyyy}年{M}月{d}日',
922
+ 'long': '{yyyy}年{M}月{d}日 {tt}{h}:{mm}',
923
+ 'full': '{yyyy}年{M}月{d}日 {Weekday} {tt}{h}:{mm}:{ss}',
924
+ 'past': '{num}{unit}{sign}',
925
+ 'future': '{num}{unit}{sign}',
926
+ 'duration': '{num}{unit}',
927
+ 'timeSuffixes': '點|時,分鐘?,秒',
928
+ 'ampm': '上午,下午',
929
+ 'modifiers': [
930
+ { 'name': 'day', 'src': '前天', 'value': -2 },
931
+ { 'name': 'day', 'src': '昨天', 'value': -1 },
932
+ { 'name': 'day', 'src': '今天', 'value': 0 },
933
+ { 'name': 'day', 'src': '明天', 'value': 1 },
934
+ { 'name': 'day', 'src': '後天', 'value': 2 },
935
+ { 'name': 'sign', 'src': '前', 'value': -1 },
936
+ { 'name': 'sign', 'src': '後', 'value': 1 },
937
+ { 'name': 'shift', 'src': '上|去', 'value': -1 },
938
+ { 'name': 'shift', 'src': '這', 'value': 0 },
939
+ { 'name': 'shift', 'src': '下|明', 'value': 1 }
940
+ ],
941
+ 'dateParse': [
942
+ '{num}{unit}{sign}',
943
+ '{shift}{unit=5-7}'
944
+ ],
945
+ 'timeParse': [
946
+ '{shift}{weekday}',
947
+ '{year}年{month?}月?{date?}{0}',
948
+ '{month}月{date?}{0}',
949
+ '{date}{0}'
950
+ ]
951
+ });
952
+