index.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. import buildLocalizeFn from "../../../_lib/buildLocalizeFn/index.js";
  2. var eraValues = {
  3. narrow: ['v.Chr.', 'n.Chr.'],
  4. abbreviated: ['v.Chr.', 'n.Chr.'],
  5. wide: ['vor Christus', 'nach Christus']
  6. };
  7. var quarterValues = {
  8. narrow: ['1', '2', '3', '4'],
  9. abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],
  10. wide: ['1. Quartal', '2. Quartal', '3. Quartal', '4. Quartal']
  11. };
  12. // Note: in German, the names of days of the week and months are capitalized.
  13. // If you are making a new locale based on this one, check if the same is true for the language you're working on.
  14. // Generally, formatted dates should look like they are in the middle of a sentence,
  15. // e.g. in Spanish language the weekdays and months should be in the lowercase.
  16. var monthValues = {
  17. narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],
  18. abbreviated: ['Jan', 'Feb', 'Mär', 'Apr', 'Mai', 'Jun', 'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dez'],
  19. wide: ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']
  20. };
  21. // https://st.unicode.org/cldr-apps/v#/de/Gregorian/
  22. var formattingMonthValues = {
  23. narrow: monthValues.narrow,
  24. abbreviated: ['Jan.', 'Feb.', 'März', 'Apr.', 'Mai', 'Juni', 'Juli', 'Aug.', 'Sep.', 'Okt.', 'Nov.', 'Dez.'],
  25. wide: monthValues.wide
  26. };
  27. var dayValues = {
  28. narrow: ['S', 'M', 'D', 'M', 'D', 'F', 'S'],
  29. short: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],
  30. abbreviated: ['So.', 'Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.'],
  31. wide: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag']
  32. };
  33. // https://www.unicode.org/cldr/charts/32/summary/de.html#1881
  34. var dayPeriodValues = {
  35. narrow: {
  36. am: 'vm.',
  37. pm: 'nm.',
  38. midnight: 'Mitternacht',
  39. noon: 'Mittag',
  40. morning: 'Morgen',
  41. afternoon: 'Nachm.',
  42. evening: 'Abend',
  43. night: 'Nacht'
  44. },
  45. abbreviated: {
  46. am: 'vorm.',
  47. pm: 'nachm.',
  48. midnight: 'Mitternacht',
  49. noon: 'Mittag',
  50. morning: 'Morgen',
  51. afternoon: 'Nachmittag',
  52. evening: 'Abend',
  53. night: 'Nacht'
  54. },
  55. wide: {
  56. am: 'vormittags',
  57. pm: 'nachmittags',
  58. midnight: 'Mitternacht',
  59. noon: 'Mittag',
  60. morning: 'Morgen',
  61. afternoon: 'Nachmittag',
  62. evening: 'Abend',
  63. night: 'Nacht'
  64. }
  65. };
  66. var formattingDayPeriodValues = {
  67. narrow: {
  68. am: 'vm.',
  69. pm: 'nm.',
  70. midnight: 'Mitternacht',
  71. noon: 'Mittag',
  72. morning: 'morgens',
  73. afternoon: 'nachm.',
  74. evening: 'abends',
  75. night: 'nachts'
  76. },
  77. abbreviated: {
  78. am: 'vorm.',
  79. pm: 'nachm.',
  80. midnight: 'Mitternacht',
  81. noon: 'Mittag',
  82. morning: 'morgens',
  83. afternoon: 'nachmittags',
  84. evening: 'abends',
  85. night: 'nachts'
  86. },
  87. wide: {
  88. am: 'vormittags',
  89. pm: 'nachmittags',
  90. midnight: 'Mitternacht',
  91. noon: 'Mittag',
  92. morning: 'morgens',
  93. afternoon: 'nachmittags',
  94. evening: 'abends',
  95. night: 'nachts'
  96. }
  97. };
  98. var ordinalNumber = function ordinalNumber(dirtyNumber) {
  99. var number = Number(dirtyNumber);
  100. return number + '.';
  101. };
  102. var localize = {
  103. ordinalNumber: ordinalNumber,
  104. era: buildLocalizeFn({
  105. values: eraValues,
  106. defaultWidth: 'wide'
  107. }),
  108. quarter: buildLocalizeFn({
  109. values: quarterValues,
  110. defaultWidth: 'wide',
  111. argumentCallback: function argumentCallback(quarter) {
  112. return quarter - 1;
  113. }
  114. }),
  115. month: buildLocalizeFn({
  116. values: monthValues,
  117. formattingValues: formattingMonthValues,
  118. defaultWidth: 'wide'
  119. }),
  120. day: buildLocalizeFn({
  121. values: dayValues,
  122. defaultWidth: 'wide'
  123. }),
  124. dayPeriod: buildLocalizeFn({
  125. values: dayPeriodValues,
  126. defaultWidth: 'wide',
  127. formattingValues: formattingDayPeriodValues,
  128. defaultFormattingWidth: 'wide'
  129. })
  130. };
  131. export default localize;