136 lines
2.8 KiB
JavaScript
136 lines
2.8 KiB
JavaScript
function buildDistanceInWordsLocale () {
|
|
function futureSeconds (text) {
|
|
return text.replace(/sekuntia?/, 'sekunnin')
|
|
}
|
|
|
|
function futureMinutes (text) {
|
|
return text.replace(/minuuttia?/, 'minuutin')
|
|
}
|
|
|
|
function futureHours (text) {
|
|
return text.replace(/tuntia?/, 'tunnin')
|
|
}
|
|
|
|
function futureDays (text) {
|
|
return text.replace(/päivää?/, 'päivän')
|
|
}
|
|
|
|
function futureMonths (text) {
|
|
return text.replace(/(kuukausi|kuukautta)/, 'kuukauden')
|
|
}
|
|
|
|
function futureYears (text) {
|
|
return text.replace(/(vuosi|vuotta)/, 'vuoden')
|
|
}
|
|
|
|
var distanceInWordsLocale = {
|
|
lessThanXSeconds: {
|
|
one: 'alle sekunti',
|
|
other: 'alle {{count}} sekuntia',
|
|
futureTense: futureSeconds
|
|
},
|
|
|
|
xSeconds: {
|
|
one: 'sekunti',
|
|
other: '{{count}} sekuntia',
|
|
futureTense: futureSeconds
|
|
},
|
|
|
|
halfAMinute: {
|
|
one: 'puoli minuuttia',
|
|
other: 'puoli minuuttia',
|
|
futureTense: function (text) {
|
|
return 'puolen minuutin'
|
|
}
|
|
},
|
|
|
|
lessThanXMinutes: {
|
|
one: 'alle minuutti',
|
|
other: 'alle {{count}} minuuttia',
|
|
futureTense: futureMinutes
|
|
},
|
|
|
|
xMinutes: {
|
|
one: 'minuutti',
|
|
other: '{{count}} minuuttia',
|
|
futureTense: futureMinutes
|
|
},
|
|
|
|
aboutXHours: {
|
|
one: 'noin tunti',
|
|
other: 'noin {{count}} tuntia',
|
|
futureTense: futureHours
|
|
},
|
|
|
|
xHours: {
|
|
one: 'tunti',
|
|
other: '{{count}} tuntia',
|
|
futureTense: futureHours
|
|
},
|
|
|
|
xDays: {
|
|
one: 'päivä',
|
|
other: '{{count}} päivää',
|
|
futureTense: futureDays
|
|
},
|
|
|
|
aboutXMonths: {
|
|
one: 'noin kuukausi',
|
|
other: 'noin {{count}} kuukautta',
|
|
futureTense: futureMonths
|
|
},
|
|
|
|
xMonths: {
|
|
one: 'kuukausi',
|
|
other: '{{count}} kuukautta',
|
|
futureTense: futureMonths
|
|
},
|
|
|
|
aboutXYears: {
|
|
one: 'noin vuosi',
|
|
other: 'noin {{count}} vuotta',
|
|
futureTense: futureYears
|
|
},
|
|
|
|
xYears: {
|
|
one: 'vuosi',
|
|
other: '{{count}} vuotta',
|
|
futureTense: futureYears
|
|
},
|
|
|
|
overXYears: {
|
|
one: 'yli vuosi',
|
|
other: 'yli {{count}} vuotta',
|
|
futureTense: futureYears
|
|
},
|
|
|
|
almostXYears: {
|
|
one: 'lähes vuosi',
|
|
other: 'lähes {{count}} vuotta',
|
|
futureTense: futureYears
|
|
}
|
|
}
|
|
|
|
function localize (token, count, options) {
|
|
options = options || {}
|
|
|
|
var distance = distanceInWordsLocale[token]
|
|
var result = count === 1 ? distance.one : distance.other.replace('{{count}}', count)
|
|
|
|
if (options.addSuffix) {
|
|
if (options.comparison > 0) {
|
|
return distance.futureTense(result) + ' kuluttua'
|
|
} else {
|
|
return result + ' sitten'
|
|
}
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
return {
|
|
localize: localize
|
|
}
|
|
}
|
|
|
|
module.exports = buildDistanceInWordsLocale
|