function buildDistanceInWordsLocale () {
|
var distanceInWordsLocale = {
|
lessThanXSeconds: {
|
one: {
|
standalone: 'manje od 1 sekunde',
|
withPrepositionAgo: 'manje od 1 sekunde',
|
withPrepositionIn: 'manje od 1 sekundu'
|
},
|
dual: 'manje od {{count}} sekunde',
|
other: 'manje od {{count}} sekundi'
|
},
|
|
xSeconds: {
|
one: {
|
standalone: '1 sekunda',
|
withPrepositionAgo: '1 sekunde',
|
withPrepositionIn: '1 sekundu'
|
},
|
dual: '{{count}} sekunde',
|
other: '{{count}} sekundi'
|
},
|
|
halfAMinute: 'pola minute',
|
|
lessThanXMinutes: {
|
one: {
|
standalone: 'manje od 1 minute',
|
withPrepositionAgo: 'manje od 1 minute',
|
withPrepositionIn: 'manje od 1 minutu'
|
},
|
dual: 'manje od {{count}} minute',
|
other: 'manje od {{count}} minuta'
|
},
|
|
xMinutes: {
|
one: {
|
standalone: '1 minuta',
|
withPrepositionAgo: '1 minute',
|
withPrepositionIn: '1 minutu'
|
},
|
dual: '{{count}} minute',
|
other: '{{count}} minuta'
|
},
|
|
aboutXHours: {
|
one: {
|
standalone: 'oko 1 sat',
|
withPrepositionAgo: 'oko 1 sat',
|
withPrepositionIn: 'oko 1 sat'
|
},
|
dual: 'oko {{count}} sata',
|
other: 'oko {{count}} sati'
|
},
|
|
xHours: {
|
one: {
|
standalone: '1 sat',
|
withPrepositionAgo: '1 sat',
|
withPrepositionIn: '1 sat'
|
},
|
dual: '{{count}} sata',
|
other: '{{count}} sati'
|
},
|
|
xDays: {
|
one: {
|
standalone: '1 dan',
|
withPrepositionAgo: '1 dan',
|
withPrepositionIn: '1 dan'
|
},
|
dual: '{{count}} dana',
|
other: '{{count}} dana'
|
},
|
|
aboutXMonths: {
|
one: {
|
standalone: 'oko 1 mjesec',
|
withPrepositionAgo: 'oko 1 mjesec',
|
withPrepositionIn: 'oko 1 mjesec'
|
},
|
dual: 'oko {{count}} mjeseca',
|
other: 'oko {{count}} mjeseci'
|
},
|
|
xMonths: {
|
one: {
|
standalone: '1 mjesec',
|
withPrepositionAgo: '1 mjesec',
|
withPrepositionIn: '1 mjesec'
|
},
|
dual: '{{count}} mjeseca',
|
other: '{{count}} mjeseci'
|
},
|
|
aboutXYears: {
|
one: {
|
standalone: 'oko 1 godinu',
|
withPrepositionAgo: 'oko 1 godinu',
|
withPrepositionIn: 'oko 1 godinu'
|
},
|
dual: 'oko {{count}} godine',
|
other: 'oko {{count}} godina'
|
},
|
|
xYears: {
|
one: {
|
standalone: '1 godina',
|
withPrepositionAgo: '1 godine',
|
withPrepositionIn: '1 godinu'
|
},
|
dual: '{{count}} godine',
|
other: '{{count}} godina'
|
},
|
|
overXYears: {
|
one: {
|
standalone: 'preko 1 godinu',
|
withPrepositionAgo: 'preko 1 godinu',
|
withPrepositionIn: 'preko 1 godinu'
|
},
|
dual: 'preko {{count}} godine',
|
other: 'preko {{count}} godina'
|
},
|
|
almostXYears: {
|
one: {
|
standalone: 'gotovo 1 godinu',
|
withPrepositionAgo: 'gotovo 1 godinu',
|
withPrepositionIn: 'gotovo 1 godinu'
|
},
|
dual: 'gotovo {{count}} godine',
|
other: 'gotovo {{count}} godina'
|
}
|
}
|
|
function localize (token, count, options) {
|
options = options || {}
|
|
var result
|
|
if (typeof distanceInWordsLocale[token] === 'string') {
|
result = distanceInWordsLocale[token]
|
} else if (count === 1) {
|
if (options.addSuffix) {
|
if (options.comparison > 0) {
|
result = distanceInWordsLocale[token].one.withPrepositionIn
|
} else {
|
result = distanceInWordsLocale[token].one.withPrepositionAgo
|
}
|
} else {
|
result = distanceInWordsLocale[token].one.standalone
|
}
|
} else if (
|
count % 10 > 1 && count % 10 < 5 && // if last digit is between 2 and 4
|
String(count).substr(-2, 1) !== '1' // unless the 2nd to last digit is "1"
|
) {
|
result = distanceInWordsLocale[token].dual.replace('{{count}}', count)
|
} else {
|
result = distanceInWordsLocale[token].other.replace('{{count}}', count)
|
}
|
|
if (options.addSuffix) {
|
if (options.comparison > 0) {
|
return 'za ' + result
|
} else {
|
return 'prije ' + result
|
}
|
}
|
|
return result
|
}
|
|
return {
|
localize: localize
|
}
|
}
|
|
module.exports = buildDistanceInWordsLocale
|