You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

102 lines
2.7 KiB

  1. //! moment.js locale configuration
  2. //! locale : Breton [br]
  3. //! author : Jean-Baptiste Le Duigou : https://github.com/jbleduigou
  4. import moment from '../moment';
  5. function relativeTimeWithMutation(number, withoutSuffix, key) {
  6. var format = {
  7. mm: 'munutenn',
  8. MM: 'miz',
  9. dd: 'devezh',
  10. };
  11. return number + ' ' + mutation(format[key], number);
  12. }
  13. function specialMutationForYears(number) {
  14. switch (lastNumber(number)) {
  15. case 1:
  16. case 3:
  17. case 4:
  18. case 5:
  19. case 9:
  20. return number + ' bloaz';
  21. default:
  22. return number + ' vloaz';
  23. }
  24. }
  25. function lastNumber(number) {
  26. if (number > 9) {
  27. return lastNumber(number % 10);
  28. }
  29. return number;
  30. }
  31. function mutation(text, number) {
  32. if (number === 2) {
  33. return softMutation(text);
  34. }
  35. return text;
  36. }
  37. function softMutation(text) {
  38. var mutationTable = {
  39. m: 'v',
  40. b: 'v',
  41. d: 'z',
  42. };
  43. if (mutationTable[text.charAt(0)] === undefined) {
  44. return text;
  45. }
  46. return mutationTable[text.charAt(0)] + text.substring(1);
  47. }
  48. export default moment.defineLocale('br', {
  49. months: "Genver_C'hwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu".split(
  50. '_'
  51. ),
  52. monthsShort: "Gen_C'hwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker".split('_'),
  53. weekdays: "Sul_Lun_Meurzh_Merc'her_Yaou_Gwener_Sadorn".split('_'),
  54. weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),
  55. weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),
  56. weekdaysParseExact: true,
  57. longDateFormat: {
  58. LT: 'HH:mm',
  59. LTS: 'HH:mm:ss',
  60. L: 'DD/MM/YYYY',
  61. LL: 'D [a viz] MMMM YYYY',
  62. LLL: 'D [a viz] MMMM YYYY HH:mm',
  63. LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',
  64. },
  65. calendar: {
  66. sameDay: '[Hiziv da] LT',
  67. nextDay: "[Warc'hoazh da] LT",
  68. nextWeek: 'dddd [da] LT',
  69. lastDay: "[Dec'h da] LT",
  70. lastWeek: 'dddd [paset da] LT',
  71. sameElse: 'L',
  72. },
  73. relativeTime: {
  74. future: 'a-benn %s',
  75. past: "%s 'zo",
  76. s: 'un nebeud segondennoù',
  77. ss: '%d eilenn',
  78. m: 'ur vunutenn',
  79. mm: relativeTimeWithMutation,
  80. h: 'un eur',
  81. hh: '%d eur',
  82. d: 'un devezh',
  83. dd: relativeTimeWithMutation,
  84. M: 'ur miz',
  85. MM: relativeTimeWithMutation,
  86. y: 'ur bloaz',
  87. yy: specialMutationForYears,
  88. },
  89. dayOfMonthOrdinalParse: /\d{1,2}(añ|vet)/,
  90. ordinal: function (number) {
  91. var output = number === 1 ? 'añ' : 'vet';
  92. return number + output;
  93. },
  94. week: {
  95. dow: 1, // Monday is the first day of the week.
  96. doy: 4, // The week that contains Jan 4th is the first week of the year.
  97. },
  98. });