index.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. import buildLocalizeFn from "../../../_lib/buildLocalizeFn/index.js";
  2. var eraValues = {
  3. narrow: ['f.Kr.', 'e.Kr.'],
  4. abbreviated: ['f.Kr.', 'e.Kr.'],
  5. wide: ['före Kristus', 'efter Kristus']
  6. };
  7. var quarterValues = {
  8. narrow: ['1', '2', '3', '4'],
  9. abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],
  10. wide: ['1:a kvartalet', '2:a kvartalet', '3:e kvartalet', '4:e kvartalet']
  11. };
  12. var monthValues = {
  13. narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],
  14. abbreviated: ['jan.', 'feb.', 'mars', 'apr.', 'maj', 'juni', 'juli', 'aug.', 'sep.', 'okt.', 'nov.', 'dec.'],
  15. wide: ['januari', 'februari', 'mars', 'april', 'maj', 'juni', 'juli', 'augusti', 'september', 'oktober', 'november', 'december']
  16. };
  17. var dayValues = {
  18. narrow: ['S', 'M', 'T', 'O', 'T', 'F', 'L'],
  19. short: ['sö', 'må', 'ti', 'on', 'to', 'fr', 'lö'],
  20. abbreviated: ['sön', 'mån', 'tis', 'ons', 'tors', 'fre', 'lör'],
  21. wide: ['söndag', 'måndag', 'tisdag', 'onsdag', 'torsdag', 'fredag', 'lördag']
  22. };
  23. // https://www.unicode.org/cldr/charts/32/summary/sv.html#1888
  24. var dayPeriodValues = {
  25. narrow: {
  26. am: 'fm',
  27. pm: 'em',
  28. midnight: 'midnatt',
  29. noon: 'middag',
  30. morning: 'morg.',
  31. afternoon: 'efterm.',
  32. evening: 'kväll',
  33. night: 'natt'
  34. },
  35. abbreviated: {
  36. am: 'f.m.',
  37. pm: 'e.m.',
  38. midnight: 'midnatt',
  39. noon: 'middag',
  40. morning: 'morgon',
  41. afternoon: 'efterm.',
  42. evening: 'kväll',
  43. night: 'natt'
  44. },
  45. wide: {
  46. am: 'förmiddag',
  47. pm: 'eftermiddag',
  48. midnight: 'midnatt',
  49. noon: 'middag',
  50. morning: 'morgon',
  51. afternoon: 'eftermiddag',
  52. evening: 'kväll',
  53. night: 'natt'
  54. }
  55. };
  56. var formattingDayPeriodValues = {
  57. narrow: {
  58. am: 'fm',
  59. pm: 'em',
  60. midnight: 'midnatt',
  61. noon: 'middag',
  62. morning: 'på morg.',
  63. afternoon: 'på efterm.',
  64. evening: 'på kvällen',
  65. night: 'på natten'
  66. },
  67. abbreviated: {
  68. am: 'fm',
  69. pm: 'em',
  70. midnight: 'midnatt',
  71. noon: 'middag',
  72. morning: 'på morg.',
  73. afternoon: 'på efterm.',
  74. evening: 'på kvällen',
  75. night: 'på natten'
  76. },
  77. wide: {
  78. am: 'fm',
  79. pm: 'em',
  80. midnight: 'midnatt',
  81. noon: 'middag',
  82. morning: 'på morgonen',
  83. afternoon: 'på eftermiddagen',
  84. evening: 'på kvällen',
  85. night: 'på natten'
  86. }
  87. };
  88. var ordinalNumber = function ordinalNumber(dirtyNumber, _options) {
  89. var number = Number(dirtyNumber);
  90. var rem100 = number % 100;
  91. if (rem100 > 20 || rem100 < 10) {
  92. switch (rem100 % 10) {
  93. case 1:
  94. case 2:
  95. return number + ':a';
  96. }
  97. }
  98. return number + ':e';
  99. };
  100. var localize = {
  101. ordinalNumber: ordinalNumber,
  102. era: buildLocalizeFn({
  103. values: eraValues,
  104. defaultWidth: 'wide'
  105. }),
  106. quarter: buildLocalizeFn({
  107. values: quarterValues,
  108. defaultWidth: 'wide',
  109. argumentCallback: function argumentCallback(quarter) {
  110. return quarter - 1;
  111. }
  112. }),
  113. month: buildLocalizeFn({
  114. values: monthValues,
  115. defaultWidth: 'wide'
  116. }),
  117. day: buildLocalizeFn({
  118. values: dayValues,
  119. defaultWidth: 'wide'
  120. }),
  121. dayPeriod: buildLocalizeFn({
  122. values: dayPeriodValues,
  123. defaultWidth: 'wide',
  124. formattingValues: formattingDayPeriodValues,
  125. defaultFormattingWidth: 'wide'
  126. })
  127. };
  128. export default localize;