@schukai/monster 3.95.2 → 3.96.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/package.json +1 -1
  3. package/source/components/content/copy.mjs +1 -1
  4. package/source/components/datatable/dataset.mjs +29 -25
  5. package/source/components/datatable/datasource/dom.mjs +4 -6
  6. package/source/components/datatable/datasource/rest.mjs +472 -474
  7. package/source/components/datatable/datasource.mjs +0 -8
  8. package/source/components/datatable/pagination.mjs +434 -440
  9. package/source/components/datatable/status.mjs +1 -3
  10. package/source/components/datatable/stylesheet/pagination.mjs +13 -6
  11. package/source/components/datatable/util.mjs +1 -1
  12. package/source/components/form/api-bar.mjs +1 -1
  13. package/source/components/form/api-button.mjs +1 -1
  14. package/source/components/form/button-bar.mjs +1 -1
  15. package/source/components/form/button.mjs +2 -2
  16. package/source/components/form/confirm-button.mjs +1 -1
  17. package/source/components/form/form.mjs +7 -5
  18. package/source/components/form/select.mjs +2014 -2006
  19. package/source/components/form/style/field-set.pcss +9 -0
  20. package/source/components/form/style/toggle-switch.pcss +3 -0
  21. package/source/components/form/stylesheet/field-set.mjs +7 -14
  22. package/source/components/form/stylesheet/toggle-switch.mjs +7 -14
  23. package/source/components/form/toggle-switch.mjs +386 -334
  24. package/source/components/layout/tabs.mjs +900 -898
  25. package/source/components/layout/width-toggle.mjs +1 -1
  26. package/source/components/navigation/table-of-content.mjs +1 -1
  27. package/source/components/notify/message.mjs +11 -15
  28. package/source/components/notify/notify.mjs +11 -15
  29. package/source/components/notify/stylesheet/notify.mjs +13 -6
  30. package/source/components/state/log.mjs +185 -185
  31. package/source/components/state/state.mjs +1 -1
  32. package/source/components/state/stylesheet/log.mjs +13 -6
  33. package/source/components/style/theme.css +4 -4
  34. package/source/data/datasource/server/restapi.mjs +2 -3
  35. package/source/data/transformer.mjs +803 -806
  36. package/source/dom/constants.mjs +8 -5
  37. package/source/dom/customelement.mjs +0 -34
  38. package/source/dom/updater.mjs +764 -767
  39. package/source/i18n/time-ago.mjs +1352 -636
  40. package/source/monster.mjs +2 -0
  41. package/source/types/has.mjs +3 -6
  42. package/source/types/version.mjs +1 -1
  43. package/test/cases/components/form/form.mjs +166 -125
  44. package/test/cases/components/form/toggle-switch.mjs +80 -65
  45. package/test/cases/monster.mjs +1 -1
  46. package/test/web/import.js +1 -0
  47. package/test/web/test.html +2 -2
  48. package/test/web/tests.js +2080 -1433
@@ -12,7 +12,7 @@
12
12
  * SPDX-License-Identifier: AGPL-3.0
13
13
  */
14
14
 
15
- export {formatTimeAgo};
15
+ export { formatTimeAgo };
16
16
 
17
17
  /**
18
18
  * Format a date as a relative time string with multiple units.
@@ -22,650 +22,1366 @@ export {formatTimeAgo};
22
22
  * @returns {string}
23
23
  */
24
24
  function formatTimeAgo(date, locale) {
25
- const now = new Date(Math.floor(new Date().getTime() / 1000) * 1000);
26
- const roundedDate = new Date(Math.floor(date.getTime() / 1000) * 1000);
27
- const diffInSeconds = Math.floor((roundedDate - now) / 1000);
28
- const absDiff = Math.abs(diffInSeconds);
29
-
30
- const translation = translations[normalizeLocale(locale)];
31
-
32
- if (absDiff === 0) {
33
- return translation.template.justNow();
34
- }
35
-
36
- if (absDiff > 31536000) {
37
- return translation.template.on(new Intl.DateTimeFormat(locale, {
38
- dateStyle: 'full',
39
- timeStyle: 'short'
40
- }).format(date));
41
- }
42
-
43
- const units = [
44
- {name: 'year', length: 31536000}, // Hinzugefügt für Konsistenz, auch wenn nicht genutzt in dieser spezifischen Logik
45
- {name: 'day', length: 86400},
46
- {name: 'hour', length: 3600},
47
- {name: 'minute', length: 60},
48
- {name: 'second', length: 1},
49
- ];
50
-
51
- let remainder = absDiff;
52
- const parts = [];
53
-
54
- for (const unit of units) {
55
- if (remainder >= unit.length) {
56
- const count = Math.floor(remainder / unit.length);
57
- remainder %= unit.length;
58
- const formatted = formatUnitCount(count, unit.name, locale);
59
- parts.push(formatted);
60
- }
61
- }
62
-
63
- if (parts.length === 0) {
64
- return translation.template.justNow();
65
- }
66
-
67
- const joined = new Intl.ListFormat(locale, {style: 'long', type: 'conjunction'}).format(parts);
68
- if (diffInSeconds > 0) {
69
- return translation.template.future(joined);
70
- } else {
71
- return translation.template.past(joined);
72
- }
25
+ const now = new Date(Math.floor(new Date().getTime() / 1000) * 1000);
26
+ const roundedDate = new Date(Math.floor(date.getTime() / 1000) * 1000);
27
+ const diffInSeconds = Math.floor((roundedDate - now) / 1000);
28
+ const absDiff = Math.abs(diffInSeconds);
29
+
30
+ const translation = translations[normalizeLocale(locale)];
31
+
32
+ if (absDiff === 0) {
33
+ return translation.template.justNow();
34
+ }
35
+
36
+ if (absDiff > 31536000) {
37
+ return translation.template.on(
38
+ new Intl.DateTimeFormat(locale, {
39
+ dateStyle: "full",
40
+ timeStyle: "short",
41
+ }).format(date),
42
+ );
43
+ }
44
+
45
+ const units = [
46
+ { name: "year", length: 31536000 }, // Hinzugefügt für Konsistenz, auch wenn nicht genutzt in dieser spezifischen Logik
47
+ { name: "day", length: 86400 },
48
+ { name: "hour", length: 3600 },
49
+ { name: "minute", length: 60 },
50
+ { name: "second", length: 1 },
51
+ ];
52
+
53
+ let remainder = absDiff;
54
+ const parts = [];
55
+
56
+ for (const unit of units) {
57
+ if (remainder >= unit.length) {
58
+ const count = Math.floor(remainder / unit.length);
59
+ remainder %= unit.length;
60
+ const formatted = formatUnitCount(count, unit.name, locale);
61
+ parts.push(formatted);
62
+ }
63
+ }
64
+
65
+ if (parts.length === 0) {
66
+ return translation.template.justNow();
67
+ }
68
+
69
+ const joined = new Intl.ListFormat(locale, {
70
+ style: "long",
71
+ type: "conjunction",
72
+ }).format(parts);
73
+ if (diffInSeconds > 0) {
74
+ return translation.template.future(joined);
75
+ } else {
76
+ return translation.template.past(joined);
77
+ }
73
78
  }
74
79
 
75
80
  function formatUnitCount(count, unit, locale) {
76
- const lang = normalizeLocale(locale);
77
- const fallback = translations[lang] || translations['en'];
78
- const dictForUnit = fallback.units[unit];
79
- const pr = new Intl.PluralRules(lang);
80
- const category = pr.select(count);
81
- const phrase = dictForUnit[category] || dictForUnit.other;
82
- return `${count} ${phrase}`;
81
+ const lang = normalizeLocale(locale);
82
+ const fallback = translations[lang] || translations["en"];
83
+ const dictForUnit = fallback.units[unit];
84
+ const pr = new Intl.PluralRules(lang);
85
+ const category = pr.select(count);
86
+ const phrase = dictForUnit[category] || dictForUnit.other;
87
+ return `${count} ${phrase}`;
83
88
  }
84
89
 
85
90
  function normalizeLocale(locale) {
86
- return locale.split('-')[0].toLowerCase();
91
+ return locale.split("-")[0].toLowerCase();
87
92
  }
88
93
 
89
-
90
-
91
94
  /**
92
95
  * @private
93
96
  */
94
97
  const translations = {
95
- en: {
96
- template: {
97
- on: (value) => `on ${value}`,
98
- past: (value) => `${value} ago`,
99
- future: (value) => `in ${value}`,
100
- justNow: () => `just now`,
101
- },
102
- units: {
103
- day: {zero: 'days', one: 'day', two: 'days', few: 'days', many: 'days', other: 'days'},
104
- hour: {zero: 'hours', one: 'hour', two: 'hours', few: 'hours', many: 'hours', other: 'hours'},
105
- minute: {zero: 'minutes', one: 'minute', two: 'minutes', few: 'minutes', many: 'minutes', other: 'minutes'},
106
- second: {zero: 'seconds', one: 'second', two: 'seconds', few: 'seconds', many: 'seconds', other: 'seconds'},
107
- }
108
- },
109
-
110
- zh: {
111
- template: {
112
- on: (value) => `在${value}`,
113
- past: (value) => `${value}前`,
114
- future: (value) => `${value}后`,
115
- justNow: () => `刚刚`,
116
- },
117
- units: {
118
- day: {zero: '天', one: '天', two: '天', few: '天', many: '天', other: '天'},
119
- hour: {zero: '小时', one: '小时', two: '小时', few: '小时', many: '小时', other: '小时'},
120
- minute: {zero: '分钟', one: '分钟', two: '分钟', few: '分钟', many: '分钟', other: '分钟'},
121
- second: {zero: '秒', one: '秒', two: '秒', few: '秒', many: '秒', other: '秒'},
122
- }
123
- },
124
-
125
- es: {
126
- template: {
127
- on: (value) => `el ${value}`,
128
- past: (value) => `hace ${value}`,
129
- future: (value) => `en ${value}`,
130
- justNow: () => `justo ahora`,
131
- },
132
- units: {
133
- day: {zero: 'días', one: 'día', two: 'días', few: 'días', many: 'días', other: 'días'},
134
- hour: {zero: 'horas', one: 'hora', two: 'horas', few: 'horas', many: 'horas', other: 'horas'},
135
- minute: {zero: 'minutos', one: 'minuto', two: 'minutos', few: 'minutos', many: 'minutos', other: 'minutos'},
136
- second: {
137
- zero: 'segundos',
138
- one: 'segundo',
139
- two: 'segundos',
140
- few: 'segundos',
141
- many: 'segundos',
142
- other: 'segundos'
143
- },
144
- }
145
- },
146
-
147
- de: {
148
- template: {
149
- on: (value) => `am ${value}`,
150
- past: (value) => `vor ${value}`,
151
- future: (value) => `in ${value}`,
152
- justNow: () => `gerade eben`,
153
- },
154
- units: {
155
- day: {zero: 'Tagen', one: 'Tag', two: 'Tagen', few: 'Tagen', many: 'Tagen', other: 'Tagen'},
156
- hour: {zero: 'Stunden', one: 'Stunde', two: 'Stunden', few: 'Stunden', many: 'Stunden', other: 'Stunden'},
157
- minute: {zero: 'Minuten', one: 'Minute', two: 'Minuten', few: 'Minuten', many: 'Minuten', other: 'Minuten'},
158
- second: {
159
- zero: 'Sekunden',
160
- one: 'Sekunde',
161
- two: 'Sekunden',
162
- few: 'Sekunden',
163
- many: 'Sekunden',
164
- other: 'Sekunden'
165
- },
166
- }
167
- },
168
-
169
- fr: {
170
- template: {
171
- on: (value) => `le ${value}`,
172
- past: (value) => `il y a ${value}`,
173
- future: (value) => `dans ${value}`,
174
- justNow: () => `à l'instant`,
175
- },
176
- units: {
177
- day: {zero: 'jours', one: 'jour', two: 'jours', few: 'jours', many: 'jours', other: 'jours'},
178
- hour: {zero: 'heures', one: 'heure', two: 'heures', few: 'heures', many: 'heures', other: 'heures'},
179
- minute: {zero: 'minutes', one: 'minute', two: 'minutes', few: 'minutes', many: 'minutes', other: 'minutes'},
180
- second: {
181
- zero: 'secondes',
182
- one: 'seconde',
183
- two: 'secondes',
184
- few: 'secondes',
185
- many: 'secondes',
186
- other: 'secondes'
187
- },
188
- }
189
- },
190
-
191
- ru: {
192
- template: {
193
- on: (value) => `на ${value}`,
194
- past: (value) => `${value} назад`,
195
- future: (value) => `через ${value}`,
196
- justNow: () => `только что`,
197
- },
198
- units: {
199
- day: {zero: 'дней', one: 'день', two: 'дня', few: 'дня', many: 'дней', other: 'дней'},
200
- hour: {zero: 'часов', one: 'час', two: 'часа', few: 'часа', many: 'часов', other: 'часов'},
201
- minute: {zero: 'минут', one: 'минута', two: 'минуты', few: 'минуты', many: 'минут', other: 'минут'},
202
- second: {zero: 'секунд', one: 'секунда', two: 'секунды', few: 'секунды', many: 'секунд', other: 'секунд'},
203
- }
204
- },
205
-
206
- ar: {
207
- template: {
208
- on: (value) => `في ${value}`,
209
- past: (value) => `منذ ${value}`,
210
- future: (value) => `بعد ${value}`,
211
- justNow: () => `الآن`,
212
- },
213
- units: {
214
- day: {zero: 'أيام', one: 'يوم', two: 'يومين', few: 'أيام', many: 'أيام', other: 'أيام'},
215
- hour: {zero: 'ساعات', one: 'ساعة', two: 'ساعتين', few: 'ساعات', many: 'ساعات', other: 'ساعات'},
216
- minute: {zero: 'دقائق', one: 'دقيقة', two: 'دقيقتين', few: 'دقائق', many: 'دقائق', other: 'دقائق'},
217
- second: {zero: 'ثواني', one: 'ثانية', two: 'ثانيتين', few: 'ثواني', many: 'ثواني', other: 'ثواني'},
218
- }
219
- },
220
-
221
- hi: {
222
- template: {
223
- on: (value) => `${value} को`,
224
- past: (value) => `${value} पहले`,
225
- future: (value) => `${value} में`,
226
- justNow: () => `अभी`,
227
- },
228
- units: {
229
- day: {zero: 'दिन', one: 'दिन', two: 'दिन', few: 'दिन', many: 'दिन', other: 'दिन'},
230
- hour: {zero: 'घंटे', one: 'घंटा', two: 'घंटे', few: 'घंटे', many: 'घंटे', other: 'घंटे'},
231
- minute: {zero: 'मिनट', one: 'मिनट', two: 'मिनट', few: 'मिनट', many: 'मिनट', other: 'मिनट'},
232
- second: {zero: 'सेकंड', one: 'सेकंड', two: 'सेकंड', few: 'सेकंड', many: 'सेकंड', other: 'सेकंड'},
233
- }
234
- },
235
-
236
- pt: {
237
- template: {
238
- on: (value) => `em ${value}`,
239
- past: (value) => `há ${value}`,
240
- future: (value) => `em ${value}`,
241
- justNow: () => `agora mesmo`,
242
- },
243
- units: {
244
- day: {zero: 'dias', one: 'dia', two: 'dias', few: 'dias', many: 'dias', other: 'dias'},
245
- hour: {zero: 'horas', one: 'hora', two: 'horas', few: 'horas', many: 'horas', other: 'horas'},
246
- minute: {zero: 'minutos', one: 'minuto', two: 'minutos', few: 'minutos', many: 'minutos', other: 'minutos'},
247
- second: {
248
- zero: 'segundos',
249
- one: 'segundo',
250
- two: 'segundos',
251
- few: 'segundos',
252
- many: 'segundos',
253
- other: 'segundos'
254
- },
255
- }
256
- },
257
-
258
- ja: {
259
- template: {
260
- on: (value) => `${value}に`,
261
- past: (value) => `${value}前`,
262
- future: (value) => `${value}後`,
263
- justNow: () => `たった今`,
264
- },
265
- units: {
266
- day: {zero: '日', one: '日', two: '日', few: '日', many: '日', other: '日'},
267
- hour: {zero: '時間', one: '時間', two: '時間', few: '時間', many: '時間', other: '時間'},
268
- minute: {zero: '分', one: '分', two: '分', few: '分', many: '分', other: '分'},
269
- second: {zero: '秒', one: '秒', two: '秒', few: '秒', many: '秒', other: '秒'},
270
- }
271
- },
272
-
273
- it: {
274
- template: {
275
- on: (value) => `il ${value}`,
276
- past: (value) => `${value} fa`,
277
- future: (value) => `in ${value}`,
278
- justNow: () => `proprio ora`,
279
- },
280
- units: {
281
- day: {zero: 'giorni', one: 'giorno', two: 'giorni', few: 'giorni', many: 'giorni', other: 'giorni'},
282
- hour: {zero: 'ore', one: 'ora', two: 'ore', few: 'ore', many: 'ore', other: 'ore'},
283
- minute: {zero: 'minuti', one: 'minuto', two: 'minuti', few: 'minuti', many: 'minuti', other: 'minuti'},
284
- second: {
285
- zero: 'secondi',
286
- one: 'secondo',
287
- two: 'secondi',
288
- few: 'secondi',
289
- many: 'secondi',
290
- other: 'secondi'
291
- },
292
- }
293
- },
294
-
295
- ko: {
296
- template: {
297
- on: (value) => `${value}에`,
298
- past: (value) => `${value} 전`,
299
- future: (value) => `${value} 후`,
300
- justNow: () => `방금`,
301
- },
302
- units: {
303
- day: {zero: '일', one: '일', two: '일', few: '일', many: '일', other: '일'},
304
- hour: {zero: '시간', one: '시간', two: '시간', few: '시간', many: '시간', other: '시간'},
305
- minute: {zero: '분', one: '분', two: '분', few: '분', many: '분', other: '분'},
306
- second: {zero: '초', one: '초', two: '초', few: '초', many: '초', other: '초'},
307
- }
308
- },
309
-
310
- sw: {
311
- template: {
312
- on: (value) => `kwa ${value}`,
313
- past: (value) => `${value} iliyopita`,
314
- future: (value) => `katika ${value}`,
315
- justNow: () => `hivi punde`,
316
- },
317
- units: {
318
- day: {zero: 'siku', one: 'siku', two: 'siku', few: 'siku', many: 'siku', other: 'siku'},
319
- hour: {zero: 'masaa', one: 'saa', two: 'masaa', few: 'masaa', many: 'masaa', other: 'masaa'},
320
- minute: {zero: 'dakika', one: 'dakika', two: 'dakika', few: 'dakika', many: 'dakika', other: 'dakika'},
321
- second: {
322
- zero: 'sekunde',
323
- one: 'sekunde',
324
- two: 'sekunde',
325
- few: 'sekunde',
326
- many: 'sekunde',
327
- other: 'sekunde'
328
- },
329
- }
330
- },
331
-
332
- nl: {
333
- template: {
334
- on: (value) => `op ${value}`,
335
- past: (value) => `${value} geleden`,
336
- future: (value) => `over ${value}`,
337
- justNow: () => `net`,
338
- },
339
- units: {
340
- day: {zero: 'dagen', one: 'dag', two: 'dagen', few: 'dagen', many: 'dagen', other: 'dagen'},
341
- hour: {zero: 'uren', one: 'uur', two: 'uren', few: 'uren', many: 'uren', other: 'uren'},
342
- minute: {zero: 'minuten', one: 'minuut', two: 'minuten', few: 'minuten', many: 'minuten', other: 'minuten'},
343
- second: {
344
- zero: 'seconden',
345
- one: 'seconde',
346
- two: 'seconden',
347
- few: 'seconden',
348
- many: 'seconden',
349
- other: 'seconden'
350
- },
351
- }
352
- },
353
-
354
- ms: {
355
- template: {
356
- on: (value) => `pada ${value}`,
357
- past: (value) => `${value} yang lalu`,
358
- future: (value) => `${value} lagi`,
359
- justNow: () => `tadi`,
360
- },
361
- units: {
362
- day: {zero: 'hari', one: 'hari', two: 'hari', few: 'hari', many: 'hari', other: 'hari'},
363
- hour: {zero: 'jam', one: 'jam', two: 'jam', few: 'jam', many: 'jam', other: 'jam'},
364
- minute: {zero: 'minit', one: 'minit', two: 'minit', few: 'minit', many: 'minit', other: 'minit'},
365
- second: {zero: 'saat', one: 'saat', two: 'saat', few: 'saat', many: 'saat', other: 'saat'},
366
- }
367
- },
368
-
369
- id: {
370
- template: {
371
- on: (value) => `pada ${value}`,
372
- past: (value) => `${value} yang lalu`,
373
- future: (value) => `dalam ${value}`,
374
- justNow: () => `tadi`,
375
- },
376
- units: {
377
- day: {zero: 'hari', one: 'hari', two: 'hari', few: 'hari', many: 'hari', other: 'hari'},
378
- hour: {zero: 'jam', one: 'jam', two: 'jam', few: 'jam', many: 'jam', other: 'jam'},
379
- minute: {zero: 'menit', one: 'menit', two: 'menit', few: 'menit', many: 'menit', other: 'menit'},
380
- second: {zero: 'detik', one: 'detik', two: 'detik', few: 'detik', many: 'detik', other: 'detik'},
381
- }
382
- },
383
-
384
- tr: {
385
- template: {
386
- on: (value) => `${value} tarihinde`,
387
- past: (value) => `${value} önce`,
388
- future: (value) => `${value} sonra`,
389
- justNow: () => `az önce`,
390
- },
391
- units: {
392
- day: {zero: 'günler', one: 'gün', two: 'gün', few: 'gün', many: 'gün', other: 'gün'},
393
- hour: {zero: 'saatler', one: 'saat', two: 'saat', few: 'saat', many: 'saat', other: 'saat'},
394
- minute: {zero: 'dakikalar', one: 'dakika', two: 'dakika', few: 'dakika', many: 'dakika', other: 'dakika'},
395
- second: {zero: 'saniyeler', one: 'saniye', two: 'saniye', few: 'saniye', many: 'saniye', other: 'saniye'},
396
- }
397
- },
398
-
399
- pl: {
400
- template: {
401
- on: (value) => `w dniu ${value}`,
402
- past: (value) => `${value} temu`,
403
- future: (value) => `za ${value}`,
404
- justNow: () => `przed chwilą`,
405
- },
406
- units: {
407
- day: {zero: 'dni', one: 'dzień', two: 'dni', few: 'dni', many: 'dni', other: 'dni'},
408
- hour: {zero: 'godzin', one: 'godzina', two: 'godziny', few: 'godziny', many: 'godzin', other: 'godzin'},
409
- minute: {zero: 'minut', one: 'minuta', two: 'minuty', few: 'minuty', many: 'minut', other: 'minut'},
410
- second: {zero: 'sekund', one: 'sekunda', two: 'sekundy', few: 'sekundy', many: 'sekund', other: 'sekund'},
411
- }
412
- },
413
-
414
- sv: {
415
- template: {
416
- on: (value) => `den ${value}`,
417
- past: (value) => `för ${value} sedan`,
418
- future: (value) => `om ${value}`,
419
- justNow: () => `nyss`,
420
- },
421
- units: {
422
- day: {zero: 'dagar', one: 'dag', two: 'dagar', few: 'dagar', many: 'dagar', other: 'dagar'},
423
- hour: {zero: 'timmar', one: 'timme', two: 'timmar', few: 'timmar', many: 'timmar', other: 'timmar'},
424
- minute: {zero: 'minuter', one: 'minut', two: 'minuter', few: 'minuter', many: 'minuter', other: 'minuter'},
425
- second: {
426
- zero: 'sekunder',
427
- one: 'sekund',
428
- two: 'sekunder',
429
- few: 'sekunder',
430
- many: 'sekunder',
431
- other: 'sekunder'
432
- },
433
- }
434
- },
435
-
436
-
437
- ro: {
438
- template: {
439
- on: (value) => `pe ${value}`,
440
- past: (value) => `acum ${value}`,
441
- future: (value) => `peste ${value}`,
442
- justNow: () => `chiar acum`,
443
- },
444
- units: {
445
- day: {zero: 'zile', one: 'zi', two: 'zile', few: 'zile', many: 'zile', other: 'zile'},
446
- hour: {zero: 'ore', one: 'oră', two: 'ore', few: 'ore', many: 'ore', other: 'ore'},
447
- minute: {zero: 'minute', one: 'minut', two: 'minute', few: 'minute', many: 'minute', other: 'minute'},
448
- second: {
449
- zero: 'secunde',
450
- one: 'secundă',
451
- two: 'secunde',
452
- few: 'secunde',
453
- many: 'secunde',
454
- other: 'secunde'
455
- },
456
- }
457
- },
458
-
459
- bg: {
460
- template: {
461
- on: (value) => `на ${value}`,
462
- past: (value) => `преди ${value}`,
463
- future: (value) => `след ${value}`,
464
- justNow: () => `току-що`,
465
- },
466
- units: {
467
- day: {zero: 'дни', one: 'ден', two: 'дни', few: 'дни', many: 'дни', other: 'дни'},
468
- hour: {zero: 'часа', one: 'час', two: 'часа', few: 'часа', many: 'часа', other: 'часа'},
469
- minute: {zero: 'минути', one: 'минута', two: 'минути', few: 'минути', many: 'минути', other: 'минути'},
470
- second: {
471
- zero: 'секунди',
472
- one: 'секунда',
473
- two: 'секунди',
474
- few: 'секунди',
475
- many: 'секунди',
476
- other: 'секунди'
477
- },
478
- }
479
- },
480
-
481
- da: {
482
- template: {
483
- on: (value) => `den ${value}`,
484
- past: (value) => `for ${value} siden`,
485
- future: (value) => `om ${value}`,
486
- justNow: () => `lige nu`,
487
- },
488
- units: {
489
- day: {zero: 'dage', one: 'dag', two: 'dage', few: 'dage', many: 'dage', other: 'dage'},
490
- hour: {zero: 'timer', one: 'time', two: 'timer', few: 'timer', many: 'timer', other: 'timer'},
491
- minute: {
492
- zero: 'minutter',
493
- one: 'minut',
494
- two: 'minutter',
495
- few: 'minutter',
496
- many: 'minutter',
497
- other: 'minutter'
498
- },
499
- second: {
500
- zero: 'sekunder',
501
- one: 'sekund',
502
- two: 'sekunder',
503
- few: 'sekunder',
504
- many: 'sekunder',
505
- other: 'sekunder'
506
- },
507
- }
508
- },
509
-
510
- fi: {
511
- template: {
512
- on: (value) => `päivänä ${value}`,
513
- past: (value) => `${value} sitten`,
514
- future: (value) => `${value} kuluttua`,
515
- justNow: () => `juuri nyt`,
516
- },
517
- units: {
518
- day: {zero: 'päivää', one: 'päivä', two: 'päivää', few: 'päivää', many: 'päivää', other: 'päivää'},
519
- hour: {zero: 'tuntia', one: 'tunti', two: 'tuntia', few: 'tuntia', many: 'tuntia', other: 'tuntia'},
520
- minute: {
521
- zero: 'minuuttia',
522
- one: 'minuutti',
523
- two: 'minuuttia',
524
- few: 'minuuttia',
525
- many: 'minuuttia',
526
- other: 'minuuttia'
527
- },
528
- second: {
529
- zero: 'sekuntia',
530
- one: 'sekunti',
531
- two: 'sekuntia',
532
- few: 'sekuntia',
533
- many: 'sekuntia',
534
- other: 'sekuntia'
535
- },
536
- }
537
- },
538
-
539
- cs: {
540
- template: {
541
- on: (value) => `dne ${value}`,
542
- past: (value) => `před ${value}`,
543
- future: (value) => `za ${value}`,
544
- justNow: () => `právě teď`,
545
- },
546
- units: {
547
- day: {zero: 'dny', one: 'den', two: 'dny', few: 'dny', many: 'dnů', other: 'dny'},
548
- hour: {zero: 'hodin', one: 'hodina', two: 'hodiny', few: 'hodiny', many: 'hodin', other: 'hodin'},
549
- minute: {zero: 'minut', one: 'minuta', two: 'minuty', few: 'minuty', many: 'minut', other: 'minut'},
550
- second: {zero: 'sekund', one: 'sekunda', two: 'sekundy', few: 'sekundy', many: 'sekund', other: 'sekund'},
551
- }
552
- },
553
-
554
- el: {
555
- template: {
556
- on: (value) => `στις ${value}`,
557
- past: (value) => `πριν ${value}`,
558
- future: (value) => `σε ${value}`,
559
- justNow: () => `μόλις τώρα`,
560
- },
561
- units: {
562
- day: {zero: 'ημέρες', one: 'ημέρα', two: 'ημέρες', few: 'ημέρες', many: 'ημέρες', other: 'ημέρες'},
563
- hour: {zero: 'ώρες', one: 'ώρα', two: 'ώρες', few: 'ώρες', many: 'ώρες', other: 'ώρες'},
564
- minute: {zero: 'λεπτά', one: 'λεπτό', two: 'λεπτά', few: 'λεπτά', many: 'λεπτά', other: 'λεπτά'},
565
- second: {
566
- zero: 'δευτερόλεπτα',
567
- one: 'δευτερόλεπτο',
568
- two: 'δευτερόλεπτα',
569
- few: 'δευτερόλεπτα',
570
- many: 'δευτερόλεπτα',
571
- other: 'δευτερόλεπτα'
572
- },
573
- }
574
- },
575
-
576
- hr: {
577
- template: {
578
- on: (value) => `na ${value}`,
579
- past: (value) => `prije ${value}`,
580
- future: (value) => `za ${value}`,
581
- justNow: () => `prije trenutka`,
582
- },
583
- units: {
584
- day: {zero: 'dana', one: 'dan', two: 'dana', few: 'dana', many: 'dana', other: 'dana'},
585
- hour: {zero: 'sati', one: 'sat', two: 'sata', few: 'sata', many: 'sati', other: 'sati'},
586
- minute: {zero: 'minuta', one: 'minuta', two: 'minute', few: 'minute', many: 'minuta', other: 'minuta'},
587
- second: {
588
- zero: 'sekundi',
589
- one: 'sekunda',
590
- two: 'sekunde',
591
- few: 'sekunde',
592
- many: 'sekundi',
593
- other: 'sekundi'
594
- },
595
- }
596
- },
597
-
598
- sk: {
599
- template: {
600
- on: (value) => `v deň ${value}`,
601
- past: (value) => `pred ${value}`,
602
- future: (value) => `za ${value}`,
603
- justNow: () => `práve teraz`,
604
- },
605
- units: {
606
- day: {zero: 'dni', one: 'deň', two: 'dni', few: 'dni', many: 'dní', other: 'dni'},
607
- hour: {zero: 'hodiny', one: 'hodina', two: 'hodiny', few: 'hodiny', many: 'hodín', other: 'hodiny'},
608
- minute: {zero: 'minúty', one: 'minúta', two: 'minúty', few: 'minúty', many: 'minút', other: 'minúty'},
609
- second: {zero: 'sekundy', one: 'sekunda', two: 'sekundy', few: 'sekundy', many: 'sekúnd', other: 'sekundy'},
610
- }
611
- },
612
-
613
- no: {
614
- template: {
615
- on: (value) => ` ${value}`,
616
- past: (value) => `${value} siden`,
617
- future: (value) => `om ${value}`,
618
- justNow: () => `nettopp`,
619
- },
620
- units: {
621
- day: {zero: 'dager', one: 'dag', two: 'dager', few: 'dager', many: 'dager', other: 'dager'},
622
- hour: {zero: 'timer', one: 'time', two: 'timer', few: 'timer', many: 'timer', other: 'timer'},
623
- minute: {
624
- zero: 'minutter',
625
- one: 'minutt',
626
- two: 'minutter',
627
- few: 'minutter',
628
- many: 'minutter',
629
- other: 'minutter'
630
- },
631
- second: {
632
- zero: 'sekunder',
633
- one: 'sekund',
634
- two: 'sekunder',
635
- few: 'sekunder',
636
- many: 'sekunder',
637
- other: 'sekunder'
638
- },
639
- }
640
- },
641
-
642
- sl: {
643
- template: {
644
- on: (value) => `na ${value}`,
645
- past: (value) => `pred ${value}`,
646
- future: (value) => `čez ${value}`,
647
- justNow: () => `ravno zdaj`,
648
- },
649
- units: {
650
- day: {zero: 'dni', one: 'dan', two: 'dni', few: 'dni', many: 'dni', other: 'dni'},
651
- hour: {zero: 'ure', one: 'ura', two: 'ure', few: 'ure', many: 'ure', other: 'ure'},
652
- minute: {zero: 'minute', one: 'minuta', two: 'minute', few: 'minute', many: 'minute', other: 'minute'},
653
- second: {zero: 'sekunde', one: 'sekunda', two: 'sekunde', few: 'sekunde', many: 'sekund', other: 'sekund'},
654
- }
655
- },
656
-
657
- vi: {
658
- template: {
659
- on: (value) => `vào ${value}`,
660
- past: (value) => `${value} trước`,
661
- future: (value) => `${value} sau`,
662
- justNow: () => `vừa mới`,
663
- },
664
- units: {
665
- day: {zero: 'ngày', one: 'ngày', two: 'ngày', few: 'ngày', many: 'ngày', other: 'ngày'},
666
- hour: {zero: 'giờ', one: 'giờ', two: 'giờ', few: 'giờ', many: 'giờ', other: 'giờ'},
667
- minute: {zero: 'phút', one: 'phút', two: 'phút', few: 'phút', many: 'phút', other: 'phút'},
668
- second: {zero: 'giây', one: 'giây', two: 'giây', few: 'giây', many: 'giây', other: 'giây'},
669
- }
670
- },
671
- };
98
+ en: {
99
+ template: {
100
+ on: (value) => `on ${value}`,
101
+ past: (value) => `${value} ago`,
102
+ future: (value) => `in ${value}`,
103
+ justNow: () => `just now`,
104
+ },
105
+ units: {
106
+ day: {
107
+ zero: "days",
108
+ one: "day",
109
+ two: "days",
110
+ few: "days",
111
+ many: "days",
112
+ other: "days",
113
+ },
114
+ hour: {
115
+ zero: "hours",
116
+ one: "hour",
117
+ two: "hours",
118
+ few: "hours",
119
+ many: "hours",
120
+ other: "hours",
121
+ },
122
+ minute: {
123
+ zero: "minutes",
124
+ one: "minute",
125
+ two: "minutes",
126
+ few: "minutes",
127
+ many: "minutes",
128
+ other: "minutes",
129
+ },
130
+ second: {
131
+ zero: "seconds",
132
+ one: "second",
133
+ two: "seconds",
134
+ few: "seconds",
135
+ many: "seconds",
136
+ other: "seconds",
137
+ },
138
+ },
139
+ },
140
+
141
+ zh: {
142
+ template: {
143
+ on: (value) => `在${value}`,
144
+ past: (value) => `${value}前`,
145
+ future: (value) => `${value}后`,
146
+ justNow: () => `刚刚`,
147
+ },
148
+ units: {
149
+ day: {
150
+ zero: "天",
151
+ one: "天",
152
+ two: "天",
153
+ few: "天",
154
+ many: "天",
155
+ other: "天",
156
+ },
157
+ hour: {
158
+ zero: "小时",
159
+ one: "小时",
160
+ two: "小时",
161
+ few: "小时",
162
+ many: "小时",
163
+ other: "小时",
164
+ },
165
+ minute: {
166
+ zero: "分钟",
167
+ one: "分钟",
168
+ two: "分钟",
169
+ few: "分钟",
170
+ many: "分钟",
171
+ other: "分钟",
172
+ },
173
+ second: {
174
+ zero: "秒",
175
+ one: "秒",
176
+ two: "秒",
177
+ few: "秒",
178
+ many: "秒",
179
+ other: "秒",
180
+ },
181
+ },
182
+ },
183
+
184
+ es: {
185
+ template: {
186
+ on: (value) => `el ${value}`,
187
+ past: (value) => `hace ${value}`,
188
+ future: (value) => `en ${value}`,
189
+ justNow: () => `justo ahora`,
190
+ },
191
+ units: {
192
+ day: {
193
+ zero: "días",
194
+ one: "día",
195
+ two: "días",
196
+ few: "días",
197
+ many: "días",
198
+ other: "días",
199
+ },
200
+ hour: {
201
+ zero: "horas",
202
+ one: "hora",
203
+ two: "horas",
204
+ few: "horas",
205
+ many: "horas",
206
+ other: "horas",
207
+ },
208
+ minute: {
209
+ zero: "minutos",
210
+ one: "minuto",
211
+ two: "minutos",
212
+ few: "minutos",
213
+ many: "minutos",
214
+ other: "minutos",
215
+ },
216
+ second: {
217
+ zero: "segundos",
218
+ one: "segundo",
219
+ two: "segundos",
220
+ few: "segundos",
221
+ many: "segundos",
222
+ other: "segundos",
223
+ },
224
+ },
225
+ },
226
+
227
+ de: {
228
+ template: {
229
+ on: (value) => `am ${value}`,
230
+ past: (value) => `vor ${value}`,
231
+ future: (value) => `in ${value}`,
232
+ justNow: () => `gerade eben`,
233
+ },
234
+ units: {
235
+ day: {
236
+ zero: "Tagen",
237
+ one: "Tag",
238
+ two: "Tagen",
239
+ few: "Tagen",
240
+ many: "Tagen",
241
+ other: "Tagen",
242
+ },
243
+ hour: {
244
+ zero: "Stunden",
245
+ one: "Stunde",
246
+ two: "Stunden",
247
+ few: "Stunden",
248
+ many: "Stunden",
249
+ other: "Stunden",
250
+ },
251
+ minute: {
252
+ zero: "Minuten",
253
+ one: "Minute",
254
+ two: "Minuten",
255
+ few: "Minuten",
256
+ many: "Minuten",
257
+ other: "Minuten",
258
+ },
259
+ second: {
260
+ zero: "Sekunden",
261
+ one: "Sekunde",
262
+ two: "Sekunden",
263
+ few: "Sekunden",
264
+ many: "Sekunden",
265
+ other: "Sekunden",
266
+ },
267
+ },
268
+ },
269
+
270
+ fr: {
271
+ template: {
272
+ on: (value) => `le ${value}`,
273
+ past: (value) => `il y a ${value}`,
274
+ future: (value) => `dans ${value}`,
275
+ justNow: () => `à l'instant`,
276
+ },
277
+ units: {
278
+ day: {
279
+ zero: "jours",
280
+ one: "jour",
281
+ two: "jours",
282
+ few: "jours",
283
+ many: "jours",
284
+ other: "jours",
285
+ },
286
+ hour: {
287
+ zero: "heures",
288
+ one: "heure",
289
+ two: "heures",
290
+ few: "heures",
291
+ many: "heures",
292
+ other: "heures",
293
+ },
294
+ minute: {
295
+ zero: "minutes",
296
+ one: "minute",
297
+ two: "minutes",
298
+ few: "minutes",
299
+ many: "minutes",
300
+ other: "minutes",
301
+ },
302
+ second: {
303
+ zero: "secondes",
304
+ one: "seconde",
305
+ two: "secondes",
306
+ few: "secondes",
307
+ many: "secondes",
308
+ other: "secondes",
309
+ },
310
+ },
311
+ },
312
+
313
+ ru: {
314
+ template: {
315
+ on: (value) => `на ${value}`,
316
+ past: (value) => `${value} назад`,
317
+ future: (value) => `через ${value}`,
318
+ justNow: () => `только что`,
319
+ },
320
+ units: {
321
+ day: {
322
+ zero: "дней",
323
+ one: "день",
324
+ two: "дня",
325
+ few: "дня",
326
+ many: "дней",
327
+ other: "дней",
328
+ },
329
+ hour: {
330
+ zero: "часов",
331
+ one: "час",
332
+ two: "часа",
333
+ few: "часа",
334
+ many: "часов",
335
+ other: "часов",
336
+ },
337
+ minute: {
338
+ zero: "минут",
339
+ one: "минута",
340
+ two: "минуты",
341
+ few: "минуты",
342
+ many: "минут",
343
+ other: "минут",
344
+ },
345
+ second: {
346
+ zero: "секунд",
347
+ one: "секунда",
348
+ two: "секунды",
349
+ few: "секунды",
350
+ many: "секунд",
351
+ other: "секунд",
352
+ },
353
+ },
354
+ },
355
+
356
+ ar: {
357
+ template: {
358
+ on: (value) => `في ${value}`,
359
+ past: (value) => `منذ ${value}`,
360
+ future: (value) => `بعد ${value}`,
361
+ justNow: () => `الآن`,
362
+ },
363
+ units: {
364
+ day: {
365
+ zero: "أيام",
366
+ one: "يوم",
367
+ two: "يومين",
368
+ few: "أيام",
369
+ many: "أيام",
370
+ other: "أيام",
371
+ },
372
+ hour: {
373
+ zero: "ساعات",
374
+ one: "ساعة",
375
+ two: "ساعتين",
376
+ few: "ساعات",
377
+ many: "ساعات",
378
+ other: "ساعات",
379
+ },
380
+ minute: {
381
+ zero: "دقائق",
382
+ one: "دقيقة",
383
+ two: "دقيقتين",
384
+ few: "دقائق",
385
+ many: "دقائق",
386
+ other: "دقائق",
387
+ },
388
+ second: {
389
+ zero: "ثواني",
390
+ one: "ثانية",
391
+ two: "ثانيتين",
392
+ few: "ثواني",
393
+ many: "ثواني",
394
+ other: "ثواني",
395
+ },
396
+ },
397
+ },
398
+
399
+ hi: {
400
+ template: {
401
+ on: (value) => `${value} को`,
402
+ past: (value) => `${value} पहले`,
403
+ future: (value) => `${value} में`,
404
+ justNow: () => `अभी`,
405
+ },
406
+ units: {
407
+ day: {
408
+ zero: "दिन",
409
+ one: "दिन",
410
+ two: "दिन",
411
+ few: "दिन",
412
+ many: "दिन",
413
+ other: "दिन",
414
+ },
415
+ hour: {
416
+ zero: "घंटे",
417
+ one: "घंटा",
418
+ two: "घंटे",
419
+ few: "घंटे",
420
+ many: "घंटे",
421
+ other: "घंटे",
422
+ },
423
+ minute: {
424
+ zero: "मिनट",
425
+ one: "मिनट",
426
+ two: "मिनट",
427
+ few: "मिनट",
428
+ many: "मिनट",
429
+ other: "मिनट",
430
+ },
431
+ second: {
432
+ zero: "सेकंड",
433
+ one: "सेकंड",
434
+ two: "सेकंड",
435
+ few: "सेकंड",
436
+ many: "सेकंड",
437
+ other: "सेकंड",
438
+ },
439
+ },
440
+ },
441
+
442
+ pt: {
443
+ template: {
444
+ on: (value) => `em ${value}`,
445
+ past: (value) => ` ${value}`,
446
+ future: (value) => `em ${value}`,
447
+ justNow: () => `agora mesmo`,
448
+ },
449
+ units: {
450
+ day: {
451
+ zero: "dias",
452
+ one: "dia",
453
+ two: "dias",
454
+ few: "dias",
455
+ many: "dias",
456
+ other: "dias",
457
+ },
458
+ hour: {
459
+ zero: "horas",
460
+ one: "hora",
461
+ two: "horas",
462
+ few: "horas",
463
+ many: "horas",
464
+ other: "horas",
465
+ },
466
+ minute: {
467
+ zero: "minutos",
468
+ one: "minuto",
469
+ two: "minutos",
470
+ few: "minutos",
471
+ many: "minutos",
472
+ other: "minutos",
473
+ },
474
+ second: {
475
+ zero: "segundos",
476
+ one: "segundo",
477
+ two: "segundos",
478
+ few: "segundos",
479
+ many: "segundos",
480
+ other: "segundos",
481
+ },
482
+ },
483
+ },
484
+
485
+ ja: {
486
+ template: {
487
+ on: (value) => `${value}に`,
488
+ past: (value) => `${value}前`,
489
+ future: (value) => `${value}後`,
490
+ justNow: () => `たった今`,
491
+ },
492
+ units: {
493
+ day: {
494
+ zero: "日",
495
+ one: "日",
496
+ two: "日",
497
+ few: "日",
498
+ many: "日",
499
+ other: "日",
500
+ },
501
+ hour: {
502
+ zero: "時間",
503
+ one: "時間",
504
+ two: "時間",
505
+ few: "時間",
506
+ many: "時間",
507
+ other: "時間",
508
+ },
509
+ minute: {
510
+ zero: "分",
511
+ one: "分",
512
+ two: "分",
513
+ few: "分",
514
+ many: "分",
515
+ other: "分",
516
+ },
517
+ second: {
518
+ zero: "秒",
519
+ one: "秒",
520
+ two: "秒",
521
+ few: "秒",
522
+ many: "秒",
523
+ other: "秒",
524
+ },
525
+ },
526
+ },
527
+
528
+ it: {
529
+ template: {
530
+ on: (value) => `il ${value}`,
531
+ past: (value) => `${value} fa`,
532
+ future: (value) => `in ${value}`,
533
+ justNow: () => `proprio ora`,
534
+ },
535
+ units: {
536
+ day: {
537
+ zero: "giorni",
538
+ one: "giorno",
539
+ two: "giorni",
540
+ few: "giorni",
541
+ many: "giorni",
542
+ other: "giorni",
543
+ },
544
+ hour: {
545
+ zero: "ore",
546
+ one: "ora",
547
+ two: "ore",
548
+ few: "ore",
549
+ many: "ore",
550
+ other: "ore",
551
+ },
552
+ minute: {
553
+ zero: "minuti",
554
+ one: "minuto",
555
+ two: "minuti",
556
+ few: "minuti",
557
+ many: "minuti",
558
+ other: "minuti",
559
+ },
560
+ second: {
561
+ zero: "secondi",
562
+ one: "secondo",
563
+ two: "secondi",
564
+ few: "secondi",
565
+ many: "secondi",
566
+ other: "secondi",
567
+ },
568
+ },
569
+ },
570
+
571
+ ko: {
572
+ template: {
573
+ on: (value) => `${value}에`,
574
+ past: (value) => `${value} 전`,
575
+ future: (value) => `${value} 후`,
576
+ justNow: () => `방금`,
577
+ },
578
+ units: {
579
+ day: {
580
+ zero: "일",
581
+ one: "일",
582
+ two: "일",
583
+ few: "일",
584
+ many: "일",
585
+ other: "일",
586
+ },
587
+ hour: {
588
+ zero: "시간",
589
+ one: "시간",
590
+ two: "시간",
591
+ few: "시간",
592
+ many: "시간",
593
+ other: "시간",
594
+ },
595
+ minute: {
596
+ zero: "분",
597
+ one: "분",
598
+ two: "분",
599
+ few: "분",
600
+ many: "분",
601
+ other: "분",
602
+ },
603
+ second: {
604
+ zero: "초",
605
+ one: "초",
606
+ two: "초",
607
+ few: "초",
608
+ many: "초",
609
+ other: "초",
610
+ },
611
+ },
612
+ },
613
+
614
+ sw: {
615
+ template: {
616
+ on: (value) => `kwa ${value}`,
617
+ past: (value) => `${value} iliyopita`,
618
+ future: (value) => `katika ${value}`,
619
+ justNow: () => `hivi punde`,
620
+ },
621
+ units: {
622
+ day: {
623
+ zero: "siku",
624
+ one: "siku",
625
+ two: "siku",
626
+ few: "siku",
627
+ many: "siku",
628
+ other: "siku",
629
+ },
630
+ hour: {
631
+ zero: "masaa",
632
+ one: "saa",
633
+ two: "masaa",
634
+ few: "masaa",
635
+ many: "masaa",
636
+ other: "masaa",
637
+ },
638
+ minute: {
639
+ zero: "dakika",
640
+ one: "dakika",
641
+ two: "dakika",
642
+ few: "dakika",
643
+ many: "dakika",
644
+ other: "dakika",
645
+ },
646
+ second: {
647
+ zero: "sekunde",
648
+ one: "sekunde",
649
+ two: "sekunde",
650
+ few: "sekunde",
651
+ many: "sekunde",
652
+ other: "sekunde",
653
+ },
654
+ },
655
+ },
656
+
657
+ nl: {
658
+ template: {
659
+ on: (value) => `op ${value}`,
660
+ past: (value) => `${value} geleden`,
661
+ future: (value) => `over ${value}`,
662
+ justNow: () => `net`,
663
+ },
664
+ units: {
665
+ day: {
666
+ zero: "dagen",
667
+ one: "dag",
668
+ two: "dagen",
669
+ few: "dagen",
670
+ many: "dagen",
671
+ other: "dagen",
672
+ },
673
+ hour: {
674
+ zero: "uren",
675
+ one: "uur",
676
+ two: "uren",
677
+ few: "uren",
678
+ many: "uren",
679
+ other: "uren",
680
+ },
681
+ minute: {
682
+ zero: "minuten",
683
+ one: "minuut",
684
+ two: "minuten",
685
+ few: "minuten",
686
+ many: "minuten",
687
+ other: "minuten",
688
+ },
689
+ second: {
690
+ zero: "seconden",
691
+ one: "seconde",
692
+ two: "seconden",
693
+ few: "seconden",
694
+ many: "seconden",
695
+ other: "seconden",
696
+ },
697
+ },
698
+ },
699
+
700
+ ms: {
701
+ template: {
702
+ on: (value) => `pada ${value}`,
703
+ past: (value) => `${value} yang lalu`,
704
+ future: (value) => `${value} lagi`,
705
+ justNow: () => `tadi`,
706
+ },
707
+ units: {
708
+ day: {
709
+ zero: "hari",
710
+ one: "hari",
711
+ two: "hari",
712
+ few: "hari",
713
+ many: "hari",
714
+ other: "hari",
715
+ },
716
+ hour: {
717
+ zero: "jam",
718
+ one: "jam",
719
+ two: "jam",
720
+ few: "jam",
721
+ many: "jam",
722
+ other: "jam",
723
+ },
724
+ minute: {
725
+ zero: "minit",
726
+ one: "minit",
727
+ two: "minit",
728
+ few: "minit",
729
+ many: "minit",
730
+ other: "minit",
731
+ },
732
+ second: {
733
+ zero: "saat",
734
+ one: "saat",
735
+ two: "saat",
736
+ few: "saat",
737
+ many: "saat",
738
+ other: "saat",
739
+ },
740
+ },
741
+ },
742
+
743
+ id: {
744
+ template: {
745
+ on: (value) => `pada ${value}`,
746
+ past: (value) => `${value} yang lalu`,
747
+ future: (value) => `dalam ${value}`,
748
+ justNow: () => `tadi`,
749
+ },
750
+ units: {
751
+ day: {
752
+ zero: "hari",
753
+ one: "hari",
754
+ two: "hari",
755
+ few: "hari",
756
+ many: "hari",
757
+ other: "hari",
758
+ },
759
+ hour: {
760
+ zero: "jam",
761
+ one: "jam",
762
+ two: "jam",
763
+ few: "jam",
764
+ many: "jam",
765
+ other: "jam",
766
+ },
767
+ minute: {
768
+ zero: "menit",
769
+ one: "menit",
770
+ two: "menit",
771
+ few: "menit",
772
+ many: "menit",
773
+ other: "menit",
774
+ },
775
+ second: {
776
+ zero: "detik",
777
+ one: "detik",
778
+ two: "detik",
779
+ few: "detik",
780
+ many: "detik",
781
+ other: "detik",
782
+ },
783
+ },
784
+ },
785
+
786
+ tr: {
787
+ template: {
788
+ on: (value) => `${value} tarihinde`,
789
+ past: (value) => `${value} önce`,
790
+ future: (value) => `${value} sonra`,
791
+ justNow: () => `az önce`,
792
+ },
793
+ units: {
794
+ day: {
795
+ zero: "günler",
796
+ one: "gün",
797
+ two: "gün",
798
+ few: "gün",
799
+ many: "gün",
800
+ other: "gün",
801
+ },
802
+ hour: {
803
+ zero: "saatler",
804
+ one: "saat",
805
+ two: "saat",
806
+ few: "saat",
807
+ many: "saat",
808
+ other: "saat",
809
+ },
810
+ minute: {
811
+ zero: "dakikalar",
812
+ one: "dakika",
813
+ two: "dakika",
814
+ few: "dakika",
815
+ many: "dakika",
816
+ other: "dakika",
817
+ },
818
+ second: {
819
+ zero: "saniyeler",
820
+ one: "saniye",
821
+ two: "saniye",
822
+ few: "saniye",
823
+ many: "saniye",
824
+ other: "saniye",
825
+ },
826
+ },
827
+ },
828
+
829
+ pl: {
830
+ template: {
831
+ on: (value) => `w dniu ${value}`,
832
+ past: (value) => `${value} temu`,
833
+ future: (value) => `za ${value}`,
834
+ justNow: () => `przed chwilą`,
835
+ },
836
+ units: {
837
+ day: {
838
+ zero: "dni",
839
+ one: "dzień",
840
+ two: "dni",
841
+ few: "dni",
842
+ many: "dni",
843
+ other: "dni",
844
+ },
845
+ hour: {
846
+ zero: "godzin",
847
+ one: "godzina",
848
+ two: "godziny",
849
+ few: "godziny",
850
+ many: "godzin",
851
+ other: "godzin",
852
+ },
853
+ minute: {
854
+ zero: "minut",
855
+ one: "minuta",
856
+ two: "minuty",
857
+ few: "minuty",
858
+ many: "minut",
859
+ other: "minut",
860
+ },
861
+ second: {
862
+ zero: "sekund",
863
+ one: "sekunda",
864
+ two: "sekundy",
865
+ few: "sekundy",
866
+ many: "sekund",
867
+ other: "sekund",
868
+ },
869
+ },
870
+ },
871
+
872
+ sv: {
873
+ template: {
874
+ on: (value) => `den ${value}`,
875
+ past: (value) => `för ${value} sedan`,
876
+ future: (value) => `om ${value}`,
877
+ justNow: () => `nyss`,
878
+ },
879
+ units: {
880
+ day: {
881
+ zero: "dagar",
882
+ one: "dag",
883
+ two: "dagar",
884
+ few: "dagar",
885
+ many: "dagar",
886
+ other: "dagar",
887
+ },
888
+ hour: {
889
+ zero: "timmar",
890
+ one: "timme",
891
+ two: "timmar",
892
+ few: "timmar",
893
+ many: "timmar",
894
+ other: "timmar",
895
+ },
896
+ minute: {
897
+ zero: "minuter",
898
+ one: "minut",
899
+ two: "minuter",
900
+ few: "minuter",
901
+ many: "minuter",
902
+ other: "minuter",
903
+ },
904
+ second: {
905
+ zero: "sekunder",
906
+ one: "sekund",
907
+ two: "sekunder",
908
+ few: "sekunder",
909
+ many: "sekunder",
910
+ other: "sekunder",
911
+ },
912
+ },
913
+ },
914
+
915
+ ro: {
916
+ template: {
917
+ on: (value) => `pe ${value}`,
918
+ past: (value) => `acum ${value}`,
919
+ future: (value) => `peste ${value}`,
920
+ justNow: () => `chiar acum`,
921
+ },
922
+ units: {
923
+ day: {
924
+ zero: "zile",
925
+ one: "zi",
926
+ two: "zile",
927
+ few: "zile",
928
+ many: "zile",
929
+ other: "zile",
930
+ },
931
+ hour: {
932
+ zero: "ore",
933
+ one: "oră",
934
+ two: "ore",
935
+ few: "ore",
936
+ many: "ore",
937
+ other: "ore",
938
+ },
939
+ minute: {
940
+ zero: "minute",
941
+ one: "minut",
942
+ two: "minute",
943
+ few: "minute",
944
+ many: "minute",
945
+ other: "minute",
946
+ },
947
+ second: {
948
+ zero: "secunde",
949
+ one: "secundă",
950
+ two: "secunde",
951
+ few: "secunde",
952
+ many: "secunde",
953
+ other: "secunde",
954
+ },
955
+ },
956
+ },
957
+
958
+ bg: {
959
+ template: {
960
+ on: (value) => `на ${value}`,
961
+ past: (value) => `преди ${value}`,
962
+ future: (value) => `след ${value}`,
963
+ justNow: () => `току-що`,
964
+ },
965
+ units: {
966
+ day: {
967
+ zero: "дни",
968
+ one: "ден",
969
+ two: "дни",
970
+ few: "дни",
971
+ many: "дни",
972
+ other: "дни",
973
+ },
974
+ hour: {
975
+ zero: "часа",
976
+ one: "час",
977
+ two: "часа",
978
+ few: "часа",
979
+ many: "часа",
980
+ other: "часа",
981
+ },
982
+ minute: {
983
+ zero: "минути",
984
+ one: "минута",
985
+ two: "минути",
986
+ few: "минути",
987
+ many: "минути",
988
+ other: "минути",
989
+ },
990
+ second: {
991
+ zero: "секунди",
992
+ one: "секунда",
993
+ two: "секунди",
994
+ few: "секунди",
995
+ many: "секунди",
996
+ other: "секунди",
997
+ },
998
+ },
999
+ },
1000
+
1001
+ da: {
1002
+ template: {
1003
+ on: (value) => `den ${value}`,
1004
+ past: (value) => `for ${value} siden`,
1005
+ future: (value) => `om ${value}`,
1006
+ justNow: () => `lige nu`,
1007
+ },
1008
+ units: {
1009
+ day: {
1010
+ zero: "dage",
1011
+ one: "dag",
1012
+ two: "dage",
1013
+ few: "dage",
1014
+ many: "dage",
1015
+ other: "dage",
1016
+ },
1017
+ hour: {
1018
+ zero: "timer",
1019
+ one: "time",
1020
+ two: "timer",
1021
+ few: "timer",
1022
+ many: "timer",
1023
+ other: "timer",
1024
+ },
1025
+ minute: {
1026
+ zero: "minutter",
1027
+ one: "minut",
1028
+ two: "minutter",
1029
+ few: "minutter",
1030
+ many: "minutter",
1031
+ other: "minutter",
1032
+ },
1033
+ second: {
1034
+ zero: "sekunder",
1035
+ one: "sekund",
1036
+ two: "sekunder",
1037
+ few: "sekunder",
1038
+ many: "sekunder",
1039
+ other: "sekunder",
1040
+ },
1041
+ },
1042
+ },
1043
+
1044
+ fi: {
1045
+ template: {
1046
+ on: (value) => `päivänä ${value}`,
1047
+ past: (value) => `${value} sitten`,
1048
+ future: (value) => `${value} kuluttua`,
1049
+ justNow: () => `juuri nyt`,
1050
+ },
1051
+ units: {
1052
+ day: {
1053
+ zero: "päivää",
1054
+ one: "päivä",
1055
+ two: "päivää",
1056
+ few: "päivää",
1057
+ many: "päivää",
1058
+ other: "päivää",
1059
+ },
1060
+ hour: {
1061
+ zero: "tuntia",
1062
+ one: "tunti",
1063
+ two: "tuntia",
1064
+ few: "tuntia",
1065
+ many: "tuntia",
1066
+ other: "tuntia",
1067
+ },
1068
+ minute: {
1069
+ zero: "minuuttia",
1070
+ one: "minuutti",
1071
+ two: "minuuttia",
1072
+ few: "minuuttia",
1073
+ many: "minuuttia",
1074
+ other: "minuuttia",
1075
+ },
1076
+ second: {
1077
+ zero: "sekuntia",
1078
+ one: "sekunti",
1079
+ two: "sekuntia",
1080
+ few: "sekuntia",
1081
+ many: "sekuntia",
1082
+ other: "sekuntia",
1083
+ },
1084
+ },
1085
+ },
1086
+
1087
+ cs: {
1088
+ template: {
1089
+ on: (value) => `dne ${value}`,
1090
+ past: (value) => `před ${value}`,
1091
+ future: (value) => `za ${value}`,
1092
+ justNow: () => `právě teď`,
1093
+ },
1094
+ units: {
1095
+ day: {
1096
+ zero: "dny",
1097
+ one: "den",
1098
+ two: "dny",
1099
+ few: "dny",
1100
+ many: "dnů",
1101
+ other: "dny",
1102
+ },
1103
+ hour: {
1104
+ zero: "hodin",
1105
+ one: "hodina",
1106
+ two: "hodiny",
1107
+ few: "hodiny",
1108
+ many: "hodin",
1109
+ other: "hodin",
1110
+ },
1111
+ minute: {
1112
+ zero: "minut",
1113
+ one: "minuta",
1114
+ two: "minuty",
1115
+ few: "minuty",
1116
+ many: "minut",
1117
+ other: "minut",
1118
+ },
1119
+ second: {
1120
+ zero: "sekund",
1121
+ one: "sekunda",
1122
+ two: "sekundy",
1123
+ few: "sekundy",
1124
+ many: "sekund",
1125
+ other: "sekund",
1126
+ },
1127
+ },
1128
+ },
1129
+
1130
+ el: {
1131
+ template: {
1132
+ on: (value) => `στις ${value}`,
1133
+ past: (value) => `πριν ${value}`,
1134
+ future: (value) => `σε ${value}`,
1135
+ justNow: () => `μόλις τώρα`,
1136
+ },
1137
+ units: {
1138
+ day: {
1139
+ zero: "ημέρες",
1140
+ one: "ημέρα",
1141
+ two: "ημέρες",
1142
+ few: "ημέρες",
1143
+ many: "ημέρες",
1144
+ other: "ημέρες",
1145
+ },
1146
+ hour: {
1147
+ zero: "ώρες",
1148
+ one: "ώρα",
1149
+ two: "ώρες",
1150
+ few: "ώρες",
1151
+ many: "ώρες",
1152
+ other: "ώρες",
1153
+ },
1154
+ minute: {
1155
+ zero: "λεπτά",
1156
+ one: "λεπτό",
1157
+ two: "λεπτά",
1158
+ few: "λεπτά",
1159
+ many: "λεπτά",
1160
+ other: "λεπτά",
1161
+ },
1162
+ second: {
1163
+ zero: "δευτερόλεπτα",
1164
+ one: "δευτερόλεπτο",
1165
+ two: "δευτερόλεπτα",
1166
+ few: "δευτερόλεπτα",
1167
+ many: "δευτερόλεπτα",
1168
+ other: "δευτερόλεπτα",
1169
+ },
1170
+ },
1171
+ },
1172
+
1173
+ hr: {
1174
+ template: {
1175
+ on: (value) => `na ${value}`,
1176
+ past: (value) => `prije ${value}`,
1177
+ future: (value) => `za ${value}`,
1178
+ justNow: () => `prije trenutka`,
1179
+ },
1180
+ units: {
1181
+ day: {
1182
+ zero: "dana",
1183
+ one: "dan",
1184
+ two: "dana",
1185
+ few: "dana",
1186
+ many: "dana",
1187
+ other: "dana",
1188
+ },
1189
+ hour: {
1190
+ zero: "sati",
1191
+ one: "sat",
1192
+ two: "sata",
1193
+ few: "sata",
1194
+ many: "sati",
1195
+ other: "sati",
1196
+ },
1197
+ minute: {
1198
+ zero: "minuta",
1199
+ one: "minuta",
1200
+ two: "minute",
1201
+ few: "minute",
1202
+ many: "minuta",
1203
+ other: "minuta",
1204
+ },
1205
+ second: {
1206
+ zero: "sekundi",
1207
+ one: "sekunda",
1208
+ two: "sekunde",
1209
+ few: "sekunde",
1210
+ many: "sekundi",
1211
+ other: "sekundi",
1212
+ },
1213
+ },
1214
+ },
1215
+
1216
+ sk: {
1217
+ template: {
1218
+ on: (value) => `v deň ${value}`,
1219
+ past: (value) => `pred ${value}`,
1220
+ future: (value) => `za ${value}`,
1221
+ justNow: () => `práve teraz`,
1222
+ },
1223
+ units: {
1224
+ day: {
1225
+ zero: "dni",
1226
+ one: "deň",
1227
+ two: "dni",
1228
+ few: "dni",
1229
+ many: "dní",
1230
+ other: "dni",
1231
+ },
1232
+ hour: {
1233
+ zero: "hodiny",
1234
+ one: "hodina",
1235
+ two: "hodiny",
1236
+ few: "hodiny",
1237
+ many: "hodín",
1238
+ other: "hodiny",
1239
+ },
1240
+ minute: {
1241
+ zero: "minúty",
1242
+ one: "minúta",
1243
+ two: "minúty",
1244
+ few: "minúty",
1245
+ many: "minút",
1246
+ other: "minúty",
1247
+ },
1248
+ second: {
1249
+ zero: "sekundy",
1250
+ one: "sekunda",
1251
+ two: "sekundy",
1252
+ few: "sekundy",
1253
+ many: "sekúnd",
1254
+ other: "sekundy",
1255
+ },
1256
+ },
1257
+ },
1258
+
1259
+ no: {
1260
+ template: {
1261
+ on: (value) => `på ${value}`,
1262
+ past: (value) => `${value} siden`,
1263
+ future: (value) => `om ${value}`,
1264
+ justNow: () => `nettopp`,
1265
+ },
1266
+ units: {
1267
+ day: {
1268
+ zero: "dager",
1269
+ one: "dag",
1270
+ two: "dager",
1271
+ few: "dager",
1272
+ many: "dager",
1273
+ other: "dager",
1274
+ },
1275
+ hour: {
1276
+ zero: "timer",
1277
+ one: "time",
1278
+ two: "timer",
1279
+ few: "timer",
1280
+ many: "timer",
1281
+ other: "timer",
1282
+ },
1283
+ minute: {
1284
+ zero: "minutter",
1285
+ one: "minutt",
1286
+ two: "minutter",
1287
+ few: "minutter",
1288
+ many: "minutter",
1289
+ other: "minutter",
1290
+ },
1291
+ second: {
1292
+ zero: "sekunder",
1293
+ one: "sekund",
1294
+ two: "sekunder",
1295
+ few: "sekunder",
1296
+ many: "sekunder",
1297
+ other: "sekunder",
1298
+ },
1299
+ },
1300
+ },
1301
+
1302
+ sl: {
1303
+ template: {
1304
+ on: (value) => `na ${value}`,
1305
+ past: (value) => `pred ${value}`,
1306
+ future: (value) => `čez ${value}`,
1307
+ justNow: () => `ravno zdaj`,
1308
+ },
1309
+ units: {
1310
+ day: {
1311
+ zero: "dni",
1312
+ one: "dan",
1313
+ two: "dni",
1314
+ few: "dni",
1315
+ many: "dni",
1316
+ other: "dni",
1317
+ },
1318
+ hour: {
1319
+ zero: "ure",
1320
+ one: "ura",
1321
+ two: "ure",
1322
+ few: "ure",
1323
+ many: "ure",
1324
+ other: "ure",
1325
+ },
1326
+ minute: {
1327
+ zero: "minute",
1328
+ one: "minuta",
1329
+ two: "minute",
1330
+ few: "minute",
1331
+ many: "minute",
1332
+ other: "minute",
1333
+ },
1334
+ second: {
1335
+ zero: "sekunde",
1336
+ one: "sekunda",
1337
+ two: "sekunde",
1338
+ few: "sekunde",
1339
+ many: "sekund",
1340
+ other: "sekund",
1341
+ },
1342
+ },
1343
+ },
1344
+
1345
+ vi: {
1346
+ template: {
1347
+ on: (value) => `vào ${value}`,
1348
+ past: (value) => `${value} trước`,
1349
+ future: (value) => `${value} sau`,
1350
+ justNow: () => `vừa mới`,
1351
+ },
1352
+ units: {
1353
+ day: {
1354
+ zero: "ngày",
1355
+ one: "ngày",
1356
+ two: "ngày",
1357
+ few: "ngày",
1358
+ many: "ngày",
1359
+ other: "ngày",
1360
+ },
1361
+ hour: {
1362
+ zero: "giờ",
1363
+ one: "giờ",
1364
+ two: "giờ",
1365
+ few: "giờ",
1366
+ many: "giờ",
1367
+ other: "giờ",
1368
+ },
1369
+ minute: {
1370
+ zero: "phút",
1371
+ one: "phút",
1372
+ two: "phút",
1373
+ few: "phút",
1374
+ many: "phút",
1375
+ other: "phút",
1376
+ },
1377
+ second: {
1378
+ zero: "giây",
1379
+ one: "giây",
1380
+ two: "giây",
1381
+ few: "giây",
1382
+ many: "giây",
1383
+ other: "giây",
1384
+ },
1385
+ },
1386
+ },
1387
+ };