ka.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. // moment.js locale configuration
  2. // locale : Georgian (ka)
  3. // author : Irakli Janiashvili : https://github.com/irakli-janiashvili
  4. (function (factory) {
  5. if (typeof define === 'function' && define.amd) {
  6. define(['moment'], factory); // AMD
  7. } else if (typeof exports === 'object') {
  8. module.exports = factory(require('../moment')); // Node
  9. } else {
  10. factory((typeof global !== 'undefined' ? global : this).moment); // node or other global
  11. }
  12. }(function (moment) {
  13. function monthsCaseReplace(m, format) {
  14. var months = {
  15. 'nominative': 'იანვარი_თებერვალი_მარტი_აპრილი_მაისი_ივნისი_ივლისი_აგვისტო_სექტემბერი_ოქტომბერი_ნოემბერი_დეკემბერი'.split('_'),
  16. 'accusative': 'იანვარს_თებერვალს_მარტს_აპრილის_მაისს_ივნისს_ივლისს_აგვისტს_სექტემბერს_ოქტომბერს_ნოემბერს_დეკემბერს'.split('_')
  17. },
  18. nounCase = (/D[oD] *MMMM?/).test(format) ?
  19. 'accusative' :
  20. 'nominative';
  21. return months[nounCase][m.month()];
  22. }
  23. function weekdaysCaseReplace(m, format) {
  24. var weekdays = {
  25. 'nominative': 'კვირა_ორშაბათი_სამშაბათი_ოთხშაბათი_ხუთშაბათი_პარასკევი_შაბათი'.split('_'),
  26. 'accusative': 'კვირას_ორშაბათს_სამშაბათს_ოთხშაბათს_ხუთშაბათს_პარასკევს_შაბათს'.split('_')
  27. },
  28. nounCase = (/(წინა|შემდეგ)/).test(format) ?
  29. 'accusative' :
  30. 'nominative';
  31. return weekdays[nounCase][m.day()];
  32. }
  33. return moment.defineLocale('ka', {
  34. months : monthsCaseReplace,
  35. monthsShort : 'იან_თებ_მარ_აპრ_მაი_ივნ_ივლ_აგვ_სექ_ოქტ_ნოე_დეკ'.split('_'),
  36. weekdays : weekdaysCaseReplace,
  37. weekdaysShort : 'კვი_ორშ_სამ_ოთხ_ხუთ_პარ_შაბ'.split('_'),
  38. weekdaysMin : 'კვ_ორ_სა_ოთ_ხუ_პა_შა'.split('_'),
  39. longDateFormat : {
  40. LT : 'h:mm A',
  41. LTS : 'h:mm:ss A',
  42. L : 'DD/MM/YYYY',
  43. LL : 'D MMMM YYYY',
  44. LLL : 'D MMMM YYYY LT',
  45. LLLL : 'dddd, D MMMM YYYY LT'
  46. },
  47. calendar : {
  48. sameDay : '[დღეს] LT[-ზე]',
  49. nextDay : '[ხვალ] LT[-ზე]',
  50. lastDay : '[გუშინ] LT[-ზე]',
  51. nextWeek : '[შემდეგ] dddd LT[-ზე]',
  52. lastWeek : '[წინა] dddd LT-ზე',
  53. sameElse : 'L'
  54. },
  55. relativeTime : {
  56. future : function (s) {
  57. return (/(წამი|წუთი|საათი|წელი)/).test(s) ?
  58. s.replace(/ი$/, 'ში') :
  59. s + 'ში';
  60. },
  61. past : function (s) {
  62. if ((/(წამი|წუთი|საათი|დღე|თვე)/).test(s)) {
  63. return s.replace(/(ი|ე)$/, 'ის წინ');
  64. }
  65. if ((/წელი/).test(s)) {
  66. return s.replace(/წელი$/, 'წლის წინ');
  67. }
  68. },
  69. s : 'რამდენიმე წამი',
  70. m : 'წუთი',
  71. mm : '%d წუთი',
  72. h : 'საათი',
  73. hh : '%d საათი',
  74. d : 'დღე',
  75. dd : '%d დღე',
  76. M : 'თვე',
  77. MM : '%d თვე',
  78. y : 'წელი',
  79. yy : '%d წელი'
  80. },
  81. ordinalParse: /0|1-ლი|მე-\d{1,2}|\d{1,2}-ე/,
  82. ordinal : function (number) {
  83. if (number === 0) {
  84. return number;
  85. }
  86. if (number === 1) {
  87. return number + '-ლი';
  88. }
  89. if ((number < 20) || (number <= 100 && (number % 20 === 0)) || (number % 100 === 0)) {
  90. return 'მე-' + number;
  91. }
  92. return number + '-ე';
  93. },
  94. week : {
  95. dow : 1,
  96. doy : 7
  97. }
  98. });
  99. }));