summaryrefslogtreecommitdiff
path: root/date-fns/src/locale/sv/_lib
diff options
context:
space:
mode:
Diffstat (limited to 'date-fns/src/locale/sv/_lib')
-rw-r--r--date-fns/src/locale/sv/_lib/formatDistance/index.js127
-rw-r--r--date-fns/src/locale/sv/_lib/formatLong/index.js41
-rw-r--r--date-fns/src/locale/sv/_lib/formatRelative/index.js12
-rw-r--r--date-fns/src/locale/sv/_lib/localize/index.js168
-rw-r--r--date-fns/src/locale/sv/_lib/match/index.js135
5 files changed, 483 insertions, 0 deletions
diff --git a/date-fns/src/locale/sv/_lib/formatDistance/index.js b/date-fns/src/locale/sv/_lib/formatDistance/index.js
new file mode 100644
index 0000000..3c8f8d0
--- /dev/null
+++ b/date-fns/src/locale/sv/_lib/formatDistance/index.js
@@ -0,0 +1,127 @@
+var formatDistanceLocale = {
+ lessThanXSeconds: {
+ singular: 'mindre än en sekund',
+ plural: 'mindre än {{count}} sekunder'
+ },
+
+ xSeconds: {
+ singular: 'en sekund',
+ plural: '{{count}} sekunder'
+ },
+
+ halfAMinute: 'en halv minut',
+
+ lessThanXMinutes: {
+ singular: 'mindre än en minut',
+ plural: 'mindre än {{count}} minuter'
+ },
+
+ xMinutes: {
+ singular: 'en minut',
+ plural: '{{count}} minuter'
+ },
+
+ aboutXHours: {
+ singular: 'ungefär en timme',
+ plural: 'ungefär {{count}} timmar'
+ },
+
+ xHours: {
+ singular: 'en timme',
+ plural: '{{count}} timmar'
+ },
+
+ xDays: {
+ singular: 'en dag',
+ plural: '{{count}} dagar'
+ },
+
+ aboutXWeeks: {
+ singular: 'ungefär en vecka',
+ plural: 'ungefär {{count}} vecka'
+ },
+
+ xWeeks: {
+ singular: 'en vecka',
+ plural: '{{count}} vecka'
+ },
+
+ aboutXMonths: {
+ singular: 'ungefär en månad',
+ plural: 'ungefär {{count}} månader'
+ },
+
+ xMonths: {
+ singular: 'en månad',
+ plural: '{{count}} månader'
+ },
+
+ aboutXYears: {
+ singular: 'ungefär ett år',
+ plural: 'ungefär {{count}} år'
+ },
+
+ xYears: {
+ singular: 'ett år',
+ plural: '{{count}} år'
+ },
+
+ overXYears: {
+ singular: 'över ett år',
+ plural: 'över {{count}} år'
+ },
+
+ almostXYears: {
+ singular: 'nästan ett år',
+ plural: 'nästan {{count}} år'
+ }
+}
+
+var wordMapping = [
+ 'noll',
+ 'en',
+ 'två',
+ 'tre',
+ 'fyra',
+ 'fem',
+ 'sex',
+ 'sju',
+ 'åtta',
+ 'nio',
+ 'tio',
+ 'elva',
+ 'tolv'
+]
+
+export default function formatDistance(token, count, options) {
+ options = options || {
+ onlyNumeric: false
+ }
+
+ var translation = formatDistanceLocale[token]
+ var result
+ if (typeof translation === 'string') {
+ result = translation
+ } else if (count === 0 || count > 1) {
+ if (options.onlyNumeric) {
+ result = translation.plural.replace('{{count}}', count)
+ } else {
+ result = translation.plural.replace(
+ '{{count}}',
+ count < 13 ? wordMapping[count] : count
+ )
+ }
+ } else {
+ result = translation.singular
+ }
+
+ if (options.addSuffix) {
+ if (options.comparison > 0) {
+ return 'om ' + result
+ } else {
+ return result + ' sedan'
+ }
+ }
+
+ return result
+}
diff --git a/date-fns/src/locale/sv/_lib/formatLong/index.js b/date-fns/src/locale/sv/_lib/formatLong/index.js
new file mode 100644
index 0000000..ccb4ea9
--- /dev/null
+++ b/date-fns/src/locale/sv/_lib/formatLong/index.js
@@ -0,0 +1,41 @@
+import buildFormatLongFn from '../../../_lib/buildFormatLongFn/index'
+
+var dateFormats = {
+ full: 'EEEE d MMMM y',
+ long: 'd MMMM y',
+ medium: 'd MMM y',
+ short: 'y-MM-dd'
+}
+
+var timeFormats = {
+ full: "'kl'. HH:mm:ss zzzz",
+ long: 'HH:mm:ss z',
+ medium: 'HH:mm:ss',
+ short: 'HH:mm'
+}
+
+var dateTimeFormats = {
+ full: "{{date}} 'kl.' {{time}}",
+ long: "{{date}} 'kl.' {{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/sv/_lib/formatRelative/index.js b/date-fns/src/locale/sv/_lib/formatRelative/index.js
new file mode 100644
index 0000000..b967215
--- /dev/null
+++ b/date-fns/src/locale/sv/_lib/formatRelative/index.js
@@ -0,0 +1,12 @@
+var formatRelativeLocale = {
+ lastWeek: "'i' EEEE's kl.' p",
+ yesterday: "'igår kl.' p",
+ today: "'idag kl.' p",
+ tomorrow: "'imorgon kl.' p",
+ nextWeek: "EEEE 'kl.' p",
+ other: 'P'
+}
+
+export default function formatRelative(token, _date, _baseDate, _options) {
+ return formatRelativeLocale[token]
+}
diff --git a/date-fns/src/locale/sv/_lib/localize/index.js b/date-fns/src/locale/sv/_lib/localize/index.js
new file mode 100644
index 0000000..1717757
--- /dev/null
+++ b/date-fns/src/locale/sv/_lib/localize/index.js
@@ -0,0 +1,168 @@
+import buildLocalizeFn from '../../../_lib/buildLocalizeFn/index'
+
+var eraValues = {
+ narrow: ['f.Kr.', 'e.Kr.'],
+ abbreviated: ['f.Kr.', 'e.Kr.'],
+ wide: ['före Kristus', 'efter Kristus'],
+}
+
+var quarterValues = {
+ narrow: ['1', '2', '3', '4'],
+ abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],
+ wide: ['1:a kvartalet', '2:a kvartalet', '3:e kvartalet', '4:e kvartalet'],
+}
+
+var monthValues = {
+ narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],
+ abbreviated: [
+ 'jan.',
+ 'feb.',
+ 'mars',
+ 'apr.',
+ 'maj',
+ 'juni',
+ 'juli',
+ 'aug.',
+ 'sep.',
+ 'okt.',
+ 'nov.',
+ 'dec.',
+ ],
+ wide: [
+ 'januari',
+ 'februari',
+ 'mars',
+ 'april',
+ 'maj',
+ 'juni',
+ 'juli',
+ 'augusti',
+ 'september',
+ 'oktober',
+ 'november',
+ 'december',
+ ],
+}
+
+var dayValues = {
+ narrow: ['S', 'M', 'T', 'O', 'T', 'F', 'L'],
+ short: ['sö', 'må', 'ti', 'on', 'to', 'fr', 'lö'],
+ abbreviated: ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'],
+ wide: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag'],
+}
+
+// https://www.unicode.org/cldr/charts/32/summary/sv.html#1888
+var dayPeriodValues = {
+ narrow: {
+ am: 'fm',
+ pm: 'em',
+ midnight: 'midnatt',
+ noon: 'middag',
+ morning: 'morg.',
+ afternoon: 'efterm.',
+ evening: 'kväll',
+ night: 'natt',
+ },
+ abbreviated: {
+ am: 'f.m.',
+ pm: 'e.m.',
+ midnight: 'midnatt',
+ noon: 'middag',
+ morning: 'morgon',
+ afternoon: 'efterm.',
+ evening: 'kväll',
+ night: 'natt',
+ },
+ wide: {
+ am: 'förmiddag',
+ pm: 'eftermiddag',
+ midnight: 'midnatt',
+ noon: 'middag',
+ morning: 'morgon',
+ afternoon: 'eftermiddag',
+ evening: 'kväll',
+ night: 'natt',
+ },
+}
+var formattingDayPeriodValues = {
+ narrow: {
+ am: 'fm',
+ pm: 'em',
+ midnight: 'midnatt',
+ noon: 'middag',
+ morning: 'på morg.',
+ afternoon: 'på efterm.',
+ evening: 'på kvällen',
+ night: 'på natten',
+ },
+ abbreviated: {
+ am: 'fm',
+ pm: 'em',
+ midnight: 'midnatt',
+ noon: 'middag',
+ morning: 'på morg.',
+ afternoon: 'på efterm.',
+ evening: 'på kvällen',
+ night: 'på natten',
+ },
+ wide: {
+ am: 'fm',
+ pm: 'em',
+ midnight: 'midnatt',
+ noon: 'middag',
+ morning: 'på morgonen',
+ afternoon: 'på eftermiddagen',
+ evening: 'på kvällen',
+ night: 'på natten',
+ },
+}
+
+function ordinalNumber(dirtyNumber) {
+ var number = Number(dirtyNumber)
+
+ var rem100 = number % 100
+ if (rem100 > 20 || rem100 < 10) {
+ switch (rem100 % 10) {
+ case 1:
+ case 2:
+ return number + ':a'
+ }
+ }
+ return number + ':e'
+}
+
+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',
+ }),
+
+ 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/sv/_lib/match/index.js b/date-fns/src/locale/sv/_lib/match/index.js
new file mode 100644
index 0000000..c54150f
--- /dev/null
+++ b/date-fns/src/locale/sv/_lib/match/index.js
@@ -0,0 +1,135 @@
+import buildMatchPatternFn from '../../../_lib/buildMatchPatternFn/index'
+import buildMatchFn from '../../../_lib/buildMatchFn/index'
+
+var matchOrdinalNumberPattern = /^(\d+)(:a|:e)?/i
+var parseOrdinalNumberPattern = /\d+/i
+
+var matchEraPatterns = {
+ narrow: /^(f\.? ?Kr\.?|f\.? ?v\.? ?t\.?|e\.? ?Kr\.?|v\.? ?t\.?)/i,
+ abbreviated: /^(f\.? ?Kr\.?|f\.? ?v\.? ?t\.?|e\.? ?Kr\.?|v\.? ?t\.?)/i,
+ wide: /^(före Kristus|före vår tid|efter Kristus|vår tid)/i,
+}
+var parseEraPatterns = {
+ any: [/^f/i, /^[ev]/i],
+}
+
+var matchQuarterPatterns = {
+ narrow: /^[1234]/i,
+ abbreviated: /^q[1234]/i,
+ wide: /^[1234](:a|:e)? kvartalet/i,
+}
+var parseQuarterPatterns = {
+ any: [/1/i, /2/i, /3/i, /4/i],
+}
+
+var matchMonthPatterns = {
+ narrow: /^[jfmasond]/i,
+ abbreviated: /^(jan|feb|mar|apr|maj|jun|jul|aug|sep|okt|nov|dec)\.?/i,
+ wide: /^(januari|februari|mars|april|maj|juni|juli|augusti|september|oktober|november|december)/i,
+}
+var parseMonthPatterns = {
+ narrow: [
+ /^j/i,
+ /^f/i,
+ /^m/i,
+ /^a/i,
+ /^m/i,
+ /^j/i,
+ /^j/i,
+ /^a/i,
+ /^s/i,
+ /^o/i,
+ /^n/i,
+ /^d/i,
+ ],
+ any: [
+ /^ja/i,
+ /^f/i,
+ /^mar/i,
+ /^ap/i,
+ /^maj/i,
+ /^jun/i,
+ /^jul/i,
+ /^au/i,
+ /^s/i,
+ /^o/i,
+ /^n/i,
+ /^d/i,
+ ],
+}
+
+var matchDayPatterns = {
+ narrow: /^[smtofl]/i,
+ short: /^(sö|må|ti|on|to|fr|lö)/i,
+ abbreviated: /^(sön|mån|tis|ons|tors|fre|lör)/i,
+ wide: /^(söndag|måndag|tisdag|onsdag|torsdag|fredag|lördag)/i,
+}
+var parseDayPatterns = {
+ any: [/^s/i, /^m/i, /^ti/i, /^o/i, /^to/i, /^f/i, /^l/i],
+}
+
+var matchDayPeriodPatterns = {
+ any: /^([fe]\.?\s?m\.?|midn(att)?|midd(ag)?|(på) (morgonen|eftermiddagen|kvällen|natten))/i,
+}
+var parseDayPeriodPatterns = {
+ any: {
+ am: /^f/i,
+ pm: /^e/i,
+ midnight: /^midn/i,
+ noon: /^midd/i,
+ morning: /morgon/i,
+ afternoon: /eftermiddag/i,
+ evening: /kväll/i,
+ night: /natt/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