diff options
Diffstat (limited to 'date-fns/src/locale/lb/_lib/formatDistance/index.js')
-rw-r--r-- | date-fns/src/locale/lb/_lib/formatDistance/index.js | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/date-fns/src/locale/lb/_lib/formatDistance/index.js b/date-fns/src/locale/lb/_lib/formatDistance/index.js new file mode 100644 index 0000000..3cde42c --- /dev/null +++ b/date-fns/src/locale/lb/_lib/formatDistance/index.js @@ -0,0 +1,231 @@ +var formatDistanceLocale = { + lessThanXSeconds: { + standalone: { + one: 'manner wéi eng Sekonn', + other: 'manner wéi {{count}} Sekonnen' + }, + withPreposition: { + one: 'manner wéi enger Sekonn', + other: 'manner wéi {{count}} Sekonnen' + } + }, + + xSeconds: { + standalone: { + one: 'eng Sekonn', + other: '{{count}} Sekonnen' + }, + withPreposition: { + one: 'enger Sekonn', + other: '{{count}} Sekonnen' + } + }, + + halfAMinute: { + standalone: 'eng hallef Minutt', + withPreposition: 'enger hallwer Minutt' + }, + + lessThanXMinutes: { + standalone: { + one: 'manner wéi eng Minutt', + other: 'manner wéi {{count}} Minutten' + }, + withPreposition: { + one: 'manner wéi enger Minutt', + other: 'manner wéi {{count}} Minutten' + } + }, + + xMinutes: { + standalone: { + one: 'eng Minutt', + other: '{{count}} Minutten' + }, + withPreposition: { + one: 'enger Minutt', + other: '{{count}} Minutten' + } + }, + + aboutXHours: { + standalone: { + one: 'ongeféier eng Stonn', + other: 'ongeféier {{count}} Stonnen' + }, + withPreposition: { + one: 'ongeféier enger Stonn', + other: 'ongeféier {{count}} Stonnen' + } + }, + + xHours: { + standalone: { + one: 'eng Stonn', + other: '{{count}} Stonnen' + }, + withPreposition: { + one: 'enger Stonn', + other: '{{count}} Stonnen' + } + }, + + xDays: { + standalone: { + one: 'een Dag', + other: '{{count}} Deeg' + }, + withPreposition: { + one: 'engem Dag', + other: '{{count}} Deeg' + } + }, + + aboutXWeeks: { + standalone: { + one: 'ongeféier eng Woch', + other: 'ongeféier {{count}} Wochen' + }, + withPreposition: { + one: 'ongeféier enger Woche', + other: 'ongeféier {{count}} Wochen' + } + }, + + xWeeks: { + standalone: { + one: 'eng Woch', + other: '{{count}} Wochen' + }, + withPreposition: { + one: 'enger Woch', + other: '{{count}} Wochen' + } + }, + + aboutXMonths: { + standalone: { + one: 'ongeféier ee Mount', + other: 'ongeféier {{count}} Méint' + }, + withPreposition: { + one: 'ongeféier engem Mount', + other: 'ongeféier {{count}} Méint' + } + }, + + xMonths: { + standalone: { + one: 'ee Mount', + other: '{{count}} Méint' + }, + withPreposition: { + one: 'engem Mount', + other: '{{count}} Méint' + } + }, + + aboutXYears: { + standalone: { + one: 'ongeféier ee Joer', + other: 'ongeféier {{count}} Joer' + }, + withPreposition: { + one: 'ongeféier engem Joer', + other: 'ongeféier {{count}} Joer' + } + }, + + xYears: { + standalone: { + one: 'ee Joer', + other: '{{count}} Joer' + }, + withPreposition: { + one: 'engem Joer', + other: '{{count}} Joer' + } + }, + + overXYears: { + standalone: { + one: 'méi wéi ee Joer', + other: 'méi wéi {{count}} Joer' + }, + withPreposition: { + one: 'méi wéi engem Joer', + other: 'méi wéi {{count}} Joer' + } + }, + + almostXYears: { + standalone: { + one: 'bal ee Joer', + other: 'bal {{count}} Joer' + }, + withPreposition: { + one: 'bal engem Joer', + other: 'bal {{count}} Joer' + } + } +} + +var EXCEPTION_CONSONANTS = ['d', 'h', 'n', 't', 'z'] +var VOWELS = ['a,', 'e', 'i', 'o', 'u'] +var DIGITS_SPOKEN_N_NEEDED = [0, 1, 2, 3, 8, 9] +var FIRST_TWO_DIGITS_SPOKEN_NO_N_NEEDED = [40, 50, 60, 70] + +// Eifeler Regel +function isFinalNNeeded(nextWords) { + var firstLetter = nextWords.charAt(0).toLowerCase() + if ( + VOWELS.indexOf(firstLetter) != -1 || + EXCEPTION_CONSONANTS.indexOf(firstLetter) != -1 + ) { + return true + } + + // Numbers would need to converted into words for checking. + // Therefore, I have listed the digits that require a preceeding n with a few exceptions. + var firstWord = nextWords.split(' ')[0] + var number = parseInt(firstWord) + if ( + !isNaN(number) && + DIGITS_SPOKEN_N_NEEDED.indexOf(number % 10) != -1 && + FIRST_TWO_DIGITS_SPOKEN_NO_N_NEEDED.indexOf( + parseInt(firstWord.substring(0, 2)) + ) == -1 + ) { + return true + } + + // Omit other checks as they are not expected here. + return false +} + +export default function formatDistance(token, count, options) { + options = options || {} + + var usageGroup = options.addSuffix + ? formatDistanceLocale[token].withPreposition + : formatDistanceLocale[token].standalone + + var result + if (typeof usageGroup === 'string') { + result = usageGroup + } else if (count === 1) { + result = usageGroup.one + } else { + result = usageGroup.other.replace('{{count}}', count) + } + + if (options.addSuffix) { + if (options.comparison > 0) { + return 'a' + (isFinalNNeeded(result) ? 'n' : '') + ' ' + result + } else { + return 'viru' + (isFinalNNeeded(result) ? 'n' : '') + ' ' + result + } + } + + return result +} |