1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | import moment from '../moment';
|
7 |
|
8 | function processRelativeTime(number, withoutSuffix, key, isFuture) {
|
9 | var format = {
|
10 | m: ['eng Minutt', 'enger Minutt'],
|
11 | h: ['eng Stonn', 'enger Stonn'],
|
12 | d: ['een Dag', 'engem Dag'],
|
13 | M: ['ee Mount', 'engem Mount'],
|
14 | y: ['ee Joer', 'engem Joer'],
|
15 | };
|
16 | return withoutSuffix ? format[key][0] : format[key][1];
|
17 | }
|
18 | function processFutureTime(string) {
|
19 | var number = string.substr(0, string.indexOf(' '));
|
20 | if (eifelerRegelAppliesToNumber(number)) {
|
21 | return 'a ' + string;
|
22 | }
|
23 | return 'an ' + string;
|
24 | }
|
25 | function processPastTime(string) {
|
26 | var number = string.substr(0, string.indexOf(' '));
|
27 | if (eifelerRegelAppliesToNumber(number)) {
|
28 | return 'viru ' + string;
|
29 | }
|
30 | return 'virun ' + string;
|
31 | }
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 |
|
39 | function eifelerRegelAppliesToNumber(number) {
|
40 | number = parseInt(number, 10);
|
41 | if (isNaN(number)) {
|
42 | return false;
|
43 | }
|
44 | if (number < 0) {
|
45 |
|
46 | return true;
|
47 | } else if (number < 10) {
|
48 |
|
49 | if (4 <= number && number <= 7) {
|
50 | return true;
|
51 | }
|
52 | return false;
|
53 | } else if (number < 100) {
|
54 |
|
55 | var lastDigit = number % 10,
|
56 | firstDigit = number / 10;
|
57 | if (lastDigit === 0) {
|
58 | return eifelerRegelAppliesToNumber(firstDigit);
|
59 | }
|
60 | return eifelerRegelAppliesToNumber(lastDigit);
|
61 | } else if (number < 10000) {
|
62 |
|
63 | while (number >= 10) {
|
64 | number = number / 10;
|
65 | }
|
66 | return eifelerRegelAppliesToNumber(number);
|
67 | } else {
|
68 |
|
69 | number = number / 1000;
|
70 | return eifelerRegelAppliesToNumber(number);
|
71 | }
|
72 | }
|
73 |
|
74 | export default moment.defineLocale('lb', {
|
75 | months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(
|
76 | '_'
|
77 | ),
|
78 | monthsShort:
|
79 | 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(
|
80 | '_'
|
81 | ),
|
82 | monthsParseExact: true,
|
83 | weekdays:
|
84 | 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split(
|
85 | '_'
|
86 | ),
|
87 | weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
|
88 | weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
|
89 | weekdaysParseExact: true,
|
90 | longDateFormat: {
|
91 | LT: 'H:mm [Auer]',
|
92 | LTS: 'H:mm:ss [Auer]',
|
93 | L: 'DD.MM.YYYY',
|
94 | LL: 'D. MMMM YYYY',
|
95 | LLL: 'D. MMMM YYYY H:mm [Auer]',
|
96 | LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',
|
97 | },
|
98 | calendar: {
|
99 | sameDay: '[Haut um] LT',
|
100 | sameElse: 'L',
|
101 | nextDay: '[Muer um] LT',
|
102 | nextWeek: 'dddd [um] LT',
|
103 | lastDay: '[Gëschter um] LT',
|
104 | lastWeek: function () {
|
105 |
|
106 | switch (this.day()) {
|
107 | case 2:
|
108 | case 4:
|
109 | return '[Leschten] dddd [um] LT';
|
110 | default:
|
111 | return '[Leschte] dddd [um] LT';
|
112 | }
|
113 | },
|
114 | },
|
115 | relativeTime: {
|
116 | future: processFutureTime,
|
117 | past: processPastTime,
|
118 | s: 'e puer Sekonnen',
|
119 | ss: '%d Sekonnen',
|
120 | m: processRelativeTime,
|
121 | mm: '%d Minutten',
|
122 | h: processRelativeTime,
|
123 | hh: '%d Stonnen',
|
124 | d: processRelativeTime,
|
125 | dd: '%d Deeg',
|
126 | M: processRelativeTime,
|
127 | MM: '%d Méint',
|
128 | y: processRelativeTime,
|
129 | yy: '%d Joer',
|
130 | },
|
131 | dayOfMonthOrdinalParse: /\d{1,2}\./,
|
132 | ordinal: '%d.',
|
133 | week: {
|
134 | dow: 1,
|
135 | doy: 4,
|
136 | },
|
137 | });
|