diff options
Diffstat (limited to 'date-fns/src/locale/sr-Latn/_lib')
-rw-r--r-- | date-fns/src/locale/sr-Latn/_lib/formatDistance/index.js | 191 | ||||
-rw-r--r-- | date-fns/src/locale/sr-Latn/_lib/formatLong/index.js | 39 | ||||
-rw-r--r-- | date-fns/src/locale/sr-Latn/_lib/formatRelative/index.js | 44 | ||||
-rw-r--r-- | date-fns/src/locale/sr-Latn/_lib/localize/index.js | 222 | ||||
-rw-r--r-- | date-fns/src/locale/sr-Latn/_lib/match/index.js | 118 |
5 files changed, 614 insertions, 0 deletions
diff --git a/date-fns/src/locale/sr-Latn/_lib/formatDistance/index.js b/date-fns/src/locale/sr-Latn/_lib/formatDistance/index.js new file mode 100644 index 0000000..e27c19d --- /dev/null +++ b/date-fns/src/locale/sr-Latn/_lib/formatDistance/index.js @@ -0,0 +1,191 @@ +var formatDistanceLocale = { + 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' + }, + + aboutXWeeks: { + one: { + standalone: 'oko 1 nedelju', + withPrepositionAgo: 'oko 1 nedelju', + withPrepositionIn: 'oko 1 nedelju' + }, + dual: 'oko {{count}} nedelje', + other: 'oko {{count}} nedelje' + }, + + xWeeks: { + one: { + standalone: '1 nedelju', + withPrepositionAgo: '1 nedelju', + withPrepositionIn: '1 nedelju' + }, + dual: '{{count}} nedelje', + other: '{{count}} nedelje' + }, + + aboutXMonths: { + one: { + standalone: 'oko 1 mesec', + withPrepositionAgo: 'oko 1 mesec', + withPrepositionIn: 'oko 1 mesec' + }, + dual: 'oko {{count}} meseca', + other: 'oko {{count}} meseci' + }, + + xMonths: { + one: { + standalone: '1 mesec', + withPrepositionAgo: '1 mesec', + withPrepositionIn: '1 mesec' + }, + dual: '{{count}} meseca', + other: '{{count}} meseci' + }, + + 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' + } +} + +export default function formatDistance(token, count, options) { + options = options || {} + + var result + + if (typeof formatDistanceLocale[token] === 'string') { + result = formatDistanceLocale[token] + } else if (count === 1) { + if (options.addSuffix) { + if (options.comparison > 0) { + result = formatDistanceLocale[token].one.withPrepositionIn + } else { + result = formatDistanceLocale[token].one.withPrepositionAgo + } + } else { + result = formatDistanceLocale[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 = formatDistanceLocale[token].dual.replace('{{count}}', count) + } else { + result = formatDistanceLocale[token].other.replace('{{count}}', count) + } + + if (options.addSuffix) { + if (options.comparison > 0) { + return 'za ' + result + } else { + return 'pre ' + result + } + } + + return result +} diff --git a/date-fns/src/locale/sr-Latn/_lib/formatLong/index.js b/date-fns/src/locale/sr-Latn/_lib/formatLong/index.js new file mode 100644 index 0000000..52631f4 --- /dev/null +++ b/date-fns/src/locale/sr-Latn/_lib/formatLong/index.js @@ -0,0 +1,39 @@ +import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index' + +var dateFormats = { + full: 'EEEE, d. MMMM yyyy.', + long: 'd. MMMM yyyy.', + medium: 'd. MMM yy.', + short: 'dd. MM. yy.' +} + +var timeFormats = { + full: 'HH:mm:ss (zzzz)', + long: 'HH:mm:ss z', + medium: 'HH:mm:ss', + short: 'HH:mm' +} + +var dateTimeFormats = { + full: "{{date}} 'u' {{time}}", + long: "{{date}} 'u' {{time}}", + medium: '{{date}} {{time}}', + short: '{{date}} {{time}}' +} + +var formatLong = { + date: buildFormatLongFn({ + formats: dateFormats, + defaultWidth: 'full' + }), + time: buildFormatLongFn({ + formats: timeFormats, + defaultWidth: 'full' + }), + dateTime: buildFormatLongFn({ + formats: dateTimeFormats, + defaultWidth: 'full' + }) +} + +export default formatLong diff --git a/date-fns/src/locale/sr-Latn/_lib/formatRelative/index.js b/date-fns/src/locale/sr-Latn/_lib/formatRelative/index.js new file mode 100644 index 0000000..2d717cd --- /dev/null +++ b/date-fns/src/locale/sr-Latn/_lib/formatRelative/index.js @@ -0,0 +1,44 @@ +var formatRelativeLocale = { + lastWeek: function(date) { + var day = date.getUTCDay() + + switch (day) { + case 0: + return "'prošle nedelje u' p" + case 3: + return "'prošle srede u' p" + case 6: + return "'prošle subote u' p" + default: + return "'prošli' EEEE 'u' p" + } + }, + yesterday: "'juče u' p", + today: "'danas u' p", + tomorrow: "'sutra u' p", + nextWeek: function(date) { + var day = date.getUTCDay() + + switch (day) { + case 0: + return "'sledeće nedelje u' p" + case 3: + return "'sledeću sredu u' p" + case 6: + return "'sledeću subotu u' p" + default: + return "'sledeći' EEEE 'u' p" + } + }, + other: 'P' +} + +export default function formatRelative(token, date, _baseDate, _options) { + var format = formatRelativeLocale[token] + + if (typeof format === 'function') { + return format(date) + } + + return format +} diff --git a/date-fns/src/locale/sr-Latn/_lib/localize/index.js b/date-fns/src/locale/sr-Latn/_lib/localize/index.js new file mode 100644 index 0000000..ea01814 --- /dev/null +++ b/date-fns/src/locale/sr-Latn/_lib/localize/index.js @@ -0,0 +1,222 @@ +import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index' + +function ordinalNumber(dirtyNumber) { + var number = Number(dirtyNumber) + return String(number).concat('.') +} + +var eraValues = { + narrow: ['pr.n.e.', 'AD'], + abbreviated: ['pr. Hr.', 'po. Hr.'], + wide: ['Pre Hrista', 'Posle Hrista'] +} + +var monthValues = { + narrow: [ + '1.', + '2.', + '3.', + '4.', + '5.', + '6.', + '7.', + '8.', + '9.', + '10.', + '11.', + '12.' + ], + abbreviated: [ + 'jan', + 'feb', + 'mar', + 'apr', + 'maj', + 'jun', + 'jul', + 'avg', + 'sep', + 'okt', + 'nov', + 'dec' + ], + wide: [ + 'januar', + 'februar', + 'mart', + 'april', + 'maj', + 'jun', + 'jul', + 'avgust', + 'septembar', + 'oktobar', + 'novembar', + 'decembar' + ] +} + +var formattingMonthValues = { + narrow: [ + '1.', + '2.', + '3.', + '4.', + '5.', + '6.', + '7.', + '8.', + '9.', + '10.', + '11.', + '12.' + ], + abbreviated: [ + 'jan', + 'feb', + 'mar', + 'apr', + 'maj', + 'jun', + 'jul', + 'avg', + 'sep', + 'okt', + 'nov', + 'dec' + ], + wide: [ + 'januar', + 'februar', + 'mart', + 'april', + 'maj', + 'jun', + 'jul', + 'avgust', + 'septembar', + 'oktobar', + 'novembar', + 'decembar' + ] +} + +var quarterValues = { + narrow: ['1.', '2.', '3.', '4.'], + abbreviated: ['1. kv.', '2. kv.', '3. kv.', '4. kv.'], + wide: ['1. kvartal', '2. kvartal', '3. kvartal', '4. kvartal'] +} + +var dayValues = { + narrow: ['N', 'P', 'U', 'S', 'Č', 'P', 'S'], + short: ['ned', 'pon', 'uto', 'sre', 'čet', 'pet', 'sub'], + abbreviated: ['ned', 'pon', 'uto', 'sre', 'čet', 'pet', 'sub'], + wide: [ + 'nedelja', + 'ponedeljak', + 'utorak', + 'sreda', + 'četvrtak', + 'petak', + 'subota' + ] +} + +var formattingDayPeriodValues = { + narrow: { + am: 'AM', + pm: 'PM', + midnight: 'ponoć', + noon: 'podne', + morning: 'ujutru', + afternoon: 'popodne', + evening: 'uveče', + night: 'noću' + }, + abbreviated: { + am: 'AM', + pm: 'PM', + midnight: 'ponoć', + noon: 'podne', + morning: 'ujutru', + afternoon: 'popodne', + evening: 'uveče', + night: 'noću' + }, + wide: { + am: 'AM', + pm: 'PM', + midnight: 'ponoć', + noon: 'podne', + morning: 'ujutru', + afternoon: 'posle podne', + evening: 'uveče', + night: 'noću' + } +} + +var dayPeriodValues = { + narrow: { + am: 'AM', + pm: 'PM', + midnight: 'ponoć', + noon: 'podne', + morning: 'ujutru', + afternoon: 'popodne', + evening: 'uveče', + night: 'noću' + }, + abbreviated: { + am: 'AM', + pm: 'PM', + midnight: 'ponoć', + noon: 'podne', + morning: 'ujutru', + afternoon: 'popodne', + evening: 'uveče', + night: 'noću' + }, + wide: { + am: 'AM', + pm: 'PM', + midnight: 'ponoć', + noon: 'podne', + morning: 'ujutru', + afternoon: 'posle podne', + evening: 'uveče', + night: 'noću' + } +} + +var localize = { + ordinalNumber: ordinalNumber, + era: buildLocalizeFn({ + values: eraValues, + defaultWidth: 'wide' + }), + quarter: buildLocalizeFn({ + values: quarterValues, + defaultWidth: 'wide', + argumentCallback: function(quarter) { + return Number(quarter) - 1 + } + }), + month: buildLocalizeFn({ + values: monthValues, + defaultWidth: 'wide', + formattingValues: formattingMonthValues, + defaultFormattingWidth: 'wide' + }), + day: buildLocalizeFn({ + values: dayValues, + defaultWidth: 'wide' + }), + dayPeriod: buildLocalizeFn({ + values: dayPeriodValues, + defaultWidth: 'wide', + formattingValues: formattingDayPeriodValues, + defaultFormattingWidth: 'wide' + }) +} + +export default localize diff --git a/date-fns/src/locale/sr-Latn/_lib/match/index.js b/date-fns/src/locale/sr-Latn/_lib/match/index.js new file mode 100644 index 0000000..86ffce0 --- /dev/null +++ b/date-fns/src/locale/sr-Latn/_lib/match/index.js @@ -0,0 +1,118 @@ +import buildMatchFn from '../../../_lib/buildMatchFn/index' +import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index' + +var matchOrdinalNumberPattern = /^(\d+)\./i +var parseOrdinalNumberPattern = /\d+/i + +var matchEraPatterns = { + narrow: /^(pr\.n\.e\.|AD)/i, + abbreviated: /^(pr\.\s?Hr\.|po\.\s?Hr\.)/i, + wide: /^(Pre Hrista|pre nove ere|Posle Hrista|nova era)/i +} +var parseEraPatterns = { + any: [/^pr/i, /^(po|nova)/i] +} + +var matchQuarterPatterns = { + narrow: /^[1234]/i, + abbreviated: /^[1234]\.\s?kv\.?/i, + wide: /^[1234]\. kvartal/i +} +var parseQuarterPatterns = { + any: [/1/i, /2/i, /3/i, /4/i] +} + +var matchMonthPatterns = { + narrow: /^(10|11|12|[123456789])\./i, + abbreviated: /^(jan|feb|mar|apr|maj|jun|jul|avg|sep|okt|nov|dec)/i, + wide: /^((januar|januara)|(februar|februara)|(mart|marta)|(april|aprila)|(maj|maja)|(jun|juna)|(jul|jula)|(avgust|avgusta)|(septembar|septembra)|(oktobar|oktobra)|(novembar|novembra)|(decembar|decembra))/i +} +var parseMonthPatterns = { + narrow: [/(10|11|12|[123456789])/i], + any: [ + /^ja/i, + /^f/i, + /^mar/i, + /^ap/i, + /^maj/i, + /^jun/i, + /^jul/i, + /^avg/i, + /^s/i, + /^o/i, + /^n/i, + /^d/i + ] +} + +var matchDayPatterns = { + narrow: /^[npusčc]/i, + short: /^(ned|pon|uto|sre|(čet|cet)|pet|sub)/i, + abbreviated: /^(ned|pon|uto|sre|(čet|cet)|pet|sub)/i, + wide: /^(nedelja|ponedeljak|utorak|sreda|(četvrtak|cetvrtak)|petak|subota)/i +} +var parseDayPatterns = { + narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i], + any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i] +} + +var matchDayPeriodPatterns = { + any: /^(am|pm|ponoc|ponoć|(po)?podne|uvece|uveče|noću|posle podne|ujutru)/i +} +var parseDayPeriodPatterns = { + any: { + am: /^a/i, + pm: /^p/i, + midnight: /^pono/i, + noon: /^pod/i, + morning: /jutro/i, + afternoon: /(posle\s|po)+podne/i, + evening: /(uvece|uveče)/i, + night: /(nocu|noću)/i + } +} + +var match = { + ordinalNumber: buildMatchPatternFn({ + matchPattern: matchOrdinalNumberPattern, + parsePattern: parseOrdinalNumberPattern, + valueCallback: function(value) { + return parseInt(value, 10) + } + }), + era: buildMatchFn({ + matchPatterns: matchEraPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseEraPatterns, + defaultParseWidth: 'any' + }), + quarter: buildMatchFn({ + matchPatterns: matchQuarterPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseQuarterPatterns, + defaultParseWidth: 'any', + valueCallback: function(index) { + return index + 1 + } + }), + month: buildMatchFn({ + matchPatterns: matchMonthPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseMonthPatterns, + defaultParseWidth: 'any' + }), + day: buildMatchFn({ + matchPatterns: matchDayPatterns, + defaultMatchWidth: 'wide', + parsePatterns: parseDayPatterns, + defaultParseWidth: 'any' + }), + dayPeriod: buildMatchFn({ + matchPatterns: matchDayPeriodPatterns, + defaultMatchWidth: 'any', + parsePatterns: parseDayPeriodPatterns, + defaultParseWidth: 'any' + }) +} + +export default match |