index.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import buildLocalizeFn from "../../../_lib/buildLocalizeFn/index.js"; // All data for localization are taken from this page
  2. // https://www.unicode.org/cldr/charts/32/summary/id.html
  3. var eraValues = {
  4. narrow: ['SM', 'M'],
  5. abbreviated: ['SM', 'M'],
  6. wide: ['Sebelum Masehi', 'Masehi']
  7. };
  8. var quarterValues = {
  9. narrow: ['1', '2', '3', '4'],
  10. abbreviated: ['K1', 'K2', 'K3', 'K4'],
  11. wide: ['Kuartal ke-1', 'Kuartal ke-2', 'Kuartal ke-3', 'Kuartal ke-4']
  12. };
  13. // Note: in Indonesian, the names of days of the week and months are capitalized.
  14. // If you are making a new locale based on this one, check if the same is true for the language you're working on.
  15. // Generally, formatted dates should look like they are in the middle of a sentence,
  16. // e.g. in Spanish language the weekdays and months should be in the lowercase.
  17. var monthValues = {
  18. narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],
  19. abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'Mei', 'Jun', 'Jul', 'Agt', 'Sep', 'Okt', 'Nov', 'Des'],
  20. wide: ['Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember']
  21. };
  22. var dayValues = {
  23. narrow: ['M', 'S', 'S', 'R', 'K', 'J', 'S'],
  24. short: ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'],
  25. abbreviated: ['Min', 'Sen', 'Sel', 'Rab', 'Kam', 'Jum', 'Sab'],
  26. wide: ['Minggu', 'Senin', 'Selasa', 'Rabu', 'Kamis', 'Jumat', 'Sabtu']
  27. };
  28. var dayPeriodValues = {
  29. narrow: {
  30. am: 'AM',
  31. pm: 'PM',
  32. midnight: 'tengah malam',
  33. noon: 'tengah hari',
  34. morning: 'pagi',
  35. afternoon: 'siang',
  36. evening: 'sore',
  37. night: 'malam'
  38. },
  39. abbreviated: {
  40. am: 'AM',
  41. pm: 'PM',
  42. midnight: 'tengah malam',
  43. noon: 'tengah hari',
  44. morning: 'pagi',
  45. afternoon: 'siang',
  46. evening: 'sore',
  47. night: 'malam'
  48. },
  49. wide: {
  50. am: 'AM',
  51. pm: 'PM',
  52. midnight: 'tengah malam',
  53. noon: 'tengah hari',
  54. morning: 'pagi',
  55. afternoon: 'siang',
  56. evening: 'sore',
  57. night: 'malam'
  58. }
  59. };
  60. var formattingDayPeriodValues = {
  61. narrow: {
  62. am: 'AM',
  63. pm: 'PM',
  64. midnight: 'tengah malam',
  65. noon: 'tengah hari',
  66. morning: 'pagi',
  67. afternoon: 'siang',
  68. evening: 'sore',
  69. night: 'malam'
  70. },
  71. abbreviated: {
  72. am: 'AM',
  73. pm: 'PM',
  74. midnight: 'tengah malam',
  75. noon: 'tengah hari',
  76. morning: 'pagi',
  77. afternoon: 'siang',
  78. evening: 'sore',
  79. night: 'malam'
  80. },
  81. wide: {
  82. am: 'AM',
  83. pm: 'PM',
  84. midnight: 'tengah malam',
  85. noon: 'tengah hari',
  86. morning: 'pagi',
  87. afternoon: 'siang',
  88. evening: 'sore',
  89. night: 'malam'
  90. }
  91. };
  92. var ordinalNumber = function ordinalNumber(dirtyNumber, _options) {
  93. var number = Number(dirtyNumber);
  94. // Can't use "pertama", "kedua" because can't be parsed
  95. return 'ke-' + number;
  96. };
  97. var localize = {
  98. ordinalNumber: ordinalNumber,
  99. era: buildLocalizeFn({
  100. values: eraValues,
  101. defaultWidth: 'wide'
  102. }),
  103. quarter: buildLocalizeFn({
  104. values: quarterValues,
  105. defaultWidth: 'wide',
  106. argumentCallback: function argumentCallback(quarter) {
  107. return quarter - 1;
  108. }
  109. }),
  110. month: buildLocalizeFn({
  111. values: monthValues,
  112. defaultWidth: 'wide'
  113. }),
  114. day: buildLocalizeFn({
  115. values: dayValues,
  116. defaultWidth: 'wide'
  117. }),
  118. dayPeriod: buildLocalizeFn({
  119. values: dayPeriodValues,
  120. defaultWidth: 'wide',
  121. formattingValues: formattingDayPeriodValues,
  122. defaultFormattingWidth: 'wide'
  123. })
  124. };
  125. export default localize;