WIP plugins: update plugin
[oweals/peertube.git] / client / src / app / shared / i18n / i18n-primeng-calendar.ts
1 import { I18n } from '@ngx-translate/i18n-polyfill'
2 import { Injectable } from '@angular/core'
3
4 @Injectable()
5 export class I18nPrimengCalendarService {
6   private readonly calendarLocale: any = {}
7
8   constructor (private i18n: I18n) {
9     this.calendarLocale = {
10       firstDayOfWeek: 0,
11       dayNames: [
12         this.i18n('Sunday'),
13         this.i18n('Monday'),
14         this.i18n('Tuesday'),
15         this.i18n('Wednesday'),
16         this.i18n('Thursday'),
17         this.i18n('Friday'),
18         this.i18n('Saturday')
19       ],
20
21       dayNamesShort: [
22         this.i18n({ value: 'Sun', description: 'Day name short' }),
23         this.i18n({ value: 'Mon', description: 'Day name short' }),
24         this.i18n({ value: 'Tue', description: 'Day name short' }),
25         this.i18n({ value: 'Wed', description: 'Day name short' }),
26         this.i18n({ value: 'Thu', description: 'Day name short' }),
27         this.i18n({ value: 'Fri', description: 'Day name short' }),
28         this.i18n({ value: 'Sat', description: 'Day name short' })
29       ],
30
31       dayNamesMin: [
32         this.i18n({ value: 'Su', description: 'Day name min' }),
33         this.i18n({ value: 'Mo', description: 'Day name min' }),
34         this.i18n({ value: 'Tu', description: 'Day name min' }),
35         this.i18n({ value: 'We', description: 'Day name min' }),
36         this.i18n({ value: 'Th', description: 'Day name min' }),
37         this.i18n({ value: 'Fr', description: 'Day name min' }),
38         this.i18n({ value: 'Sa', description: 'Day name min' })
39       ],
40
41       monthNames: [
42         this.i18n('January'),
43         this.i18n('February'),
44         this.i18n('March'),
45         this.i18n('April'),
46         this.i18n('May'),
47         this.i18n('June'),
48         this.i18n('July'),
49         this.i18n('August'),
50         this.i18n('September'),
51         this.i18n('October'),
52         this.i18n('November'),
53         this.i18n('December')
54       ],
55
56       monthNamesShort: [
57         this.i18n({ value: 'Jan', description: 'Month name short' }),
58         this.i18n({ value: 'Feb', description: 'Month name short' }),
59         this.i18n({ value: 'Mar', description: 'Month name short' }),
60         this.i18n({ value: 'Apr', description: 'Month name short' }),
61         this.i18n({ value: 'May', description: 'Month name short' }),
62         this.i18n({ value: 'Jun', description: 'Month name short' }),
63         this.i18n({ value: 'Jul', description: 'Month name short' }),
64         this.i18n({ value: 'Aug', description: 'Month name short' }),
65         this.i18n({ value: 'Sep', description: 'Month name short' }),
66         this.i18n({ value: 'Oct', description: 'Month name short' }),
67         this.i18n({ value: 'Nov', description: 'Month name short' }),
68         this.i18n({ value: 'Dec', description: 'Month name short' })
69       ],
70
71       today: this.i18n('Today'),
72
73       clear: this.i18n('Clear')
74     }
75   }
76
77   getCalendarLocale () {
78     return this.calendarLocale
79   }
80
81   getTimezone () {
82     const gmt = new Date().toString().match(/([A-Z]+[\+-][0-9]+)/)[1]
83     const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone
84
85     return `${timezone} - ${gmt}`
86   }
87
88   getDateFormat () {
89     return this.i18n({
90       value: 'yy-mm-dd ',
91       description: 'Date format in this locale.'
92     })
93   }
94 }