diff options
Diffstat (limited to 'date-fns/src/locale/sr/_lib')
-rw-r--r-- | date-fns/src/locale/sr/_lib/formatDistance/index.js | 191 | ||||
-rw-r--r-- | date-fns/src/locale/sr/_lib/formatLong/index.js | 39 | ||||
-rw-r--r-- | date-fns/src/locale/sr/_lib/formatRelative/index.js | 44 | ||||
-rw-r--r-- | date-fns/src/locale/sr/_lib/localize/index.js | 222 | ||||
-rw-r--r-- | date-fns/src/locale/sr/_lib/match/index.js | 118 |
5 files changed, 614 insertions, 0 deletions
diff --git a/date-fns/src/locale/sr/_lib/formatDistance/index.js b/date-fns/src/locale/sr/_lib/formatDistance/index.js new file mode 100644 index 0000000..5cab16d --- /dev/null +++ b/date-fns/src/locale/sr/_lib/formatDistance/index.js @@ -0,0 +1,191 @@ +var formatDistanceLocale = { + lessThanXSeconds: { + one: { + standalone: 'мање од 1 секунде', + withPrepositionAgo: 'мање од 1 секунде', + withPrepositionIn: 'мање од 1 секунду' + }, + dual: 'мање од {{count}} секунде', + other: 'мање од {{count}} секунди' + }, + + xSeconds: { + one: { + standalone: '1 секунда', + withPrepositionAgo: '1 секунде', + withPrepositionIn: '1 секунду' + }, + dual: '{{count}} секунде', + other: '{{count}} секунди' + }, + + halfAMinute: 'пола минуте', + + lessThanXMinutes: { + one: { + standalone: 'мање од 1 минуте', + withPrepositionAgo: 'мање од 1 минуте', + withPrepositionIn: 'мање од 1 минуту' + }, + dual: 'мање од {{count}} минуте', + other: 'мање од {{count}} минута' + }, + + xMinutes: { + one: { + standalone: '1 минута', + withPrepositionAgo: '1 минуте', + withPrepositionIn: '1 минуту' + }, + dual: '{{count}} минуте', + other: '{{count}} минута' + }, + + aboutXHours: { + one: { + standalone: 'око 1 сат', + withPrepositionAgo: 'око 1 сат', + withPrepositionIn: 'око 1 сат' + }, + dual: 'око {{count}} сата', + other: 'око {{count}} сати' + }, + + xHours: { + one: { + standalone: '1 сат', + withPrepositionAgo: '1 сат', + withPrepositionIn: '1 сат' + }, + dual: '{{count}} сата', + other: '{{count}} сати' + }, + + xDays: { + one: { + standalone: '1 дан', + withPrepositionAgo: '1 дан', + withPrepositionIn: '1 дан' + }, + dual: '{{count}} дана', + other: '{{count}} дана' + }, + + aboutXWeeks: { + one: { + standalone: 'око 1 недељу', + withPrepositionAgo: 'око 1 недељу', + withPrepositionIn: 'око 1 недељу' + }, + dual: 'око {{count}} недеље', + other: 'око {{count}} недеље' + }, + + xWeeks: { + one: { + standalone: '1 недељу', + withPrepositionAgo: '1 недељу', + withPrepositionIn: '1 недељу' + }, + dual: '{{count}} недеље', + other: '{{count}} недеље' + }, + + aboutXMonths: { + one: { + standalone: 'око 1 месец', + withPrepositionAgo: 'око 1 месец', + withPrepositionIn: 'око 1 месец' + }, + dual: 'око {{count}} месеца', + other: 'око {{count}} месеци' + }, + + xMonths: { + one: { + standalone: '1 месец', + withPrepositionAgo: '1 месец', + withPrepositionIn: '1 месец' + }, + dual: '{{count}} месеца', + other: '{{count}} месеци' + }, + + aboutXYears: { + one: { + standalone: 'око 1 годину', + withPrepositionAgo: 'око 1 годину', + withPrepositionIn: 'око 1 годину' + }, + dual: 'око {{count}} године', + other: 'око {{count}} година' + }, + + xYears: { + one: { + standalone: '1 година', + withPrepositionAgo: '1 године', + withPrepositionIn: '1 годину' + }, + dual: '{{count}} године', + other: '{{count}} година' + }, + + overXYears: { + one: { + standalone: 'преко 1 годину', + withPrepositionAgo: 'преко 1 годину', + withPrepositionIn: 'преко 1 годину' + }, + dual: 'преко {{count}} године', + other: 'преко {{count}} година' + }, + + almostXYears: { + one: { + standalone: 'готово 1 годину', + withPrepositionAgo: 'готово 1 годину', + withPrepositionIn: 'готово 1 годину' + }, + dual: 'готово {{count}} године', + other: 'готово {{count}} година' + } +} + +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 'за ' + result + } else { + return 'пре ' + result + } + } + + return result +} diff --git a/date-fns/src/locale/sr/_lib/formatLong/index.js b/date-fns/src/locale/sr/_lib/formatLong/index.js new file mode 100644 index 0000000..c833b99 --- /dev/null +++ b/date-fns/src/locale/sr/_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}} 'у' {{time}}", + long: "{{date}} 'у' {{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/_lib/formatRelative/index.js b/date-fns/src/locale/sr/_lib/formatRelative/index.js new file mode 100644 index 0000000..3f44d8f --- /dev/null +++ b/date-fns/src/locale/sr/_lib/formatRelative/index.js @@ -0,0 +1,44 @@ +var formatRelativeLocale = { + lastWeek: function(date) { + var day = date.getUTCDay() + + switch (day) { + case 0: + return "'прошле недеље у' p" + case 3: + return "'прошле среде у' p" + case 6: + return "'прошле суботе у' p" + default: + return "'прошли' EEEE 'у' p" + } + }, + yesterday: "'јуче у' p", + today: "'данас у' p", + tomorrow: "'сутра у' p", + nextWeek: function(date) { + var day = date.getUTCDay() + + switch (day) { + case 0: + return "'следеће недеље у' p" + case 3: + return "'следећу среду у' p" + case 6: + return "'следећу суботу у' p" + default: + return "'следећи' EEEE 'у' 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/_lib/localize/index.js b/date-fns/src/locale/sr/_lib/localize/index.js new file mode 100644 index 0000000..538ca16 --- /dev/null +++ b/date-fns/src/locale/sr/_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: ['пр.н.е.', 'АД'], + abbreviated: ['пр. Хр.', 'по. Хр.'], + wide: ['Пре Христа', 'После Христа'] +} + +var monthValues = { + narrow: [ + '1.', + '2.', + '3.', + '4.', + '5.', + '6.', + '7.', + '8.', + '9.', + '10.', + '11.', + '12.' + ], + abbreviated: [ + 'јан', + 'феб', + 'мар', + 'апр', + 'мај', + 'јун', + 'јул', + 'авг', + 'сеп', + 'окт', + 'нов', + 'дец' + ], + wide: [ + 'јануар', + 'фебруар', + 'март', + 'април', + 'мај', + 'јун', + 'јул', + 'август', + 'септембар', + 'октобар', + 'новембар', + 'децембар' + ] +} + +var formattingMonthValues = { + narrow: [ + '1.', + '2.', + '3.', + '4.', + '5.', + '6.', + '7.', + '8.', + '9.', + '10.', + '11.', + '12.' + ], + abbreviated: [ + 'јан', + 'феб', + 'мар', + 'апр', + 'мај', + 'јун', + 'јул', + 'авг', + 'сеп', + 'окт', + 'нов', + 'дец' + ], + wide: [ + 'јануар', + 'фебруар', + 'март', + 'април', + 'мај', + 'јун', + 'јул', + 'август', + 'септембар', + 'октобар', + 'новембар', + 'децембар' + ] +} + +var quarterValues = { + narrow: ['1.', '2.', '3.', '4.'], + abbreviated: ['1. кв.', '2. кв.', '3. кв.', '4. кв.'], + wide: ['1. квартал', '2. квартал', '3. квартал', '4. квартал'] +} + +var dayValues = { + narrow: ['Н', 'П', 'У', 'С', 'Ч', 'П', 'С'], + short: ['нед', 'пон', 'уто', 'сре', 'чет', 'пет', 'суб'], + abbreviated: ['нед', 'пон', 'уто', 'сре', 'чет', 'пет', 'суб'], + wide: [ + 'недеља', + 'понедељак', + 'уторак', + 'среда', + 'четвртак', + 'петак', + 'субота' + ] +} + +var formattingDayPeriodValues = { + narrow: { + am: 'АМ', + pm: 'ПМ', + midnight: 'поноћ', + noon: 'подне', + morning: 'ујутру', + afternoon: 'поподне', + evening: 'увече', + night: 'ноћу' + }, + abbreviated: { + am: 'АМ', + pm: 'ПМ', + midnight: 'поноћ', + noon: 'подне', + morning: 'ујутру', + afternoon: 'поподне', + evening: 'увече', + night: 'ноћу' + }, + wide: { + am: 'AM', + pm: 'PM', + midnight: 'поноћ', + noon: 'подне', + morning: 'ујутру', + afternoon: 'после подне', + evening: 'увече', + night: 'ноћу' + } +} + +var dayPeriodValues = { + narrow: { + am: 'AM', + pm: 'PM', + midnight: 'поноћ', + noon: 'подне', + morning: 'ујутру', + afternoon: 'поподне', + evening: 'увече', + night: 'ноћу' + }, + abbreviated: { + am: 'AM', + pm: 'PM', + midnight: 'поноћ', + noon: 'подне', + morning: 'ујутру', + afternoon: 'поподне', + evening: 'увече', + night: 'ноћу' + }, + wide: { + am: 'AM', + pm: 'PM', + midnight: 'поноћ', + noon: 'подне', + morning: 'ујутру', + afternoon: 'после подне', + evening: 'увече', + night: 'ноћу' + } +} + +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/_lib/match/index.js b/date-fns/src/locale/sr/_lib/match/index.js new file mode 100644 index 0000000..45da68e --- /dev/null +++ b/date-fns/src/locale/sr/_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: /^(пр\.н\.е\.|АД)/i, + abbreviated: /^(пр\.\s?Хр\.|по\.\s?Хр\.)/i, + wide: /^(Пре Христа|пре нове ере|После Христа|нова ера)/i +} +var parseEraPatterns = { + any: [/^пр/i, /^(по|нова)/i] +} + +var matchQuarterPatterns = { + narrow: /^[1234]/i, + abbreviated: /^[1234]\.\s?кв\.?/i, + wide: /^[1234]\. квартал/i +} +var parseQuarterPatterns = { + any: [/1/i, /2/i, /3/i, /4/i] +} + +var matchMonthPatterns = { + narrow: /^(10|11|12|[123456789])\./i, + abbreviated: /^(јан|феб|мар|апр|мај|јун|јул|авг|сеп|окт|нов|дец)/i, + wide: /^((јануар|јануара)|(фебруар|фебруара)|(март|марта)|(април|априла)|(мја|маја)|(јун|јуна)|(јул|јула)|(август|августа)|(септембар|септембра)|(октобар|октобра)|(новембар|новембра)|(децембар|децембра))/i +} +var parseMonthPatterns = { + narrow: [/(10|11|12|[123456789])/i], + any: [ + /^ја/i, + /^ф/i, + /^мар/i, + /^ап/i, + /^мај/i, + /^јун/i, + /^јул/i, + /^авг/i, + /^с/i, + /^о/i, + /^н/i, + /^д/i + ] +} + +var matchDayPatterns = { + narrow: /^[пусчн]/i, + short: /^(нед|пон|уто|сре|чет|пет|суб)/i, + abbreviated: /^(нед|пон|уто|сре|чет|пет|суб)/i, + wide: /^(недеља|понедељак|уторак|среда|четвртак|петак|субота)/i +} +var parseDayPatterns = { + narrow: [/^п/i, /^у/i, /^с/i, /^ч/i, /^н/i], + any: [/^нед/i, /^пон/i, /^уто/i, /^сре/i, /^чет/i, /^пет/i, /^суб/i] +} + +var matchDayPeriodPatterns = { + any: /^(ам|пм|поноћ|(по)?подне|увече|ноћу|после подне|ујутру)/i +} +var parseDayPeriodPatterns = { + any: { + am: /^a/i, + pm: /^p/i, + midnight: /^поно/i, + noon: /^под/i, + morning: /ујутру/i, + afternoon: /(после\s|по)+подне/i, + evening: /(увече)/i, + night: /(ноћу)/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 |