forked from date-fns/date-fns
/
index.js
92 lines (83 loc) · 1.73 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
var translations = {
about: 'körülbelül',
over: 'több mint',
almost: 'majdnem',
lessthan: 'kevesebb mint'
}
const withoutSuffixes = {
xseconds: ' másodperc',
halfaminute: 'fél perc',
xminutes: ' perc',
xhours: ' óra',
xdays: ' nap',
xweeks: ' hét',
xmonths: ' hónap',
xyears: ' év'
}
const withSuffixes = {
xseconds: {
'-1': ' másodperccel ezelőtt',
'1': ' másodperc múlva',
'0': ' másodperce'
},
halfaminute: {
'-1': 'fél perccel ezelőtt',
'1': 'fél perc múlva',
'0': 'fél perce'
},
xminutes: {
'-1': ' perccel ezelőtt',
'1': ' perc múlva',
'0': ' perce'
},
xhours: {
'-1': ' órával ezelőtt',
'1': ' óra múlva',
'0': ' órája'
},
xdays: {
'-1': ' nappal ezelőtt',
'1': ' nap múlva',
'0': ' napja'
},
xweeks: {
'-1': ' héttel ezelőtt',
'1': ' hét múlva',
'0': ' hete'
},
xmonths: {
'-1': ' hónappal ezelőtt',
'1': ' hónap múlva',
'0': ' hónapja'
},
xyears: {
'-1': ' évvel ezelőtt',
'1': ' év múlva',
'0': ' éve'
}
}
function translate(number, addSuffix, key, comparison) {
const translated = addSuffix
? withSuffixes[key][comparison]
: withoutSuffixes[key]
if (key === 'halfaminute') {
return translated
}
return number + translated
}
export default function formatDistance(token, count, options) {
options = options || {}
var adverb = token.match(/about|over|almost|lessthan/i)
var unit = token.replace(adverb, '')
var result
result = translate(
count,
options.addSuffix,
unit.toLowerCase(),
options.comparison
)
if (adverb) {
result = translations[adverb[0].toLowerCase()] + ' ' + result
}
return result
}