[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

/resources/lib/moment/locale/ -> lb.js (source)

   1  // moment.js locale configuration
   2  // locale : Luxembourgish (lb)
   3  // author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz
   4  
   5  // Note: Luxembourgish has a very particular phonological rule ('Eifeler Regel') that causes the
   6  // deletion of the final 'n' in certain contexts. That's what the 'eifelerRegelAppliesToWeekday'
   7  // and 'eifelerRegelAppliesToNumber' methods are meant for
   8  
   9  (function (factory) {
  10      if (typeof define === 'function' && define.amd) {
  11          define(['moment'], factory); // AMD
  12      } else if (typeof exports === 'object') {
  13          module.exports = factory(require('../moment')); // Node
  14      } else {
  15          factory(window.moment); // Browser global
  16      }
  17  }(function (moment) {
  18      function processRelativeTime(number, withoutSuffix, key, isFuture) {
  19          var format = {
  20              'm': ['eng Minutt', 'enger Minutt'],
  21              'h': ['eng Stonn', 'enger Stonn'],
  22              'd': ['een Dag', 'engem Dag'],
  23              'M': ['ee Mount', 'engem Mount'],
  24              'y': ['ee Joer', 'engem Joer']
  25          };
  26          return withoutSuffix ? format[key][0] : format[key][1];
  27      }
  28  
  29      function processFutureTime(string) {
  30          var number = string.substr(0, string.indexOf(' '));
  31          if (eifelerRegelAppliesToNumber(number)) {
  32              return 'a ' + string;
  33          }
  34          return 'an ' + string;
  35      }
  36  
  37      function processPastTime(string) {
  38          var number = string.substr(0, string.indexOf(' '));
  39          if (eifelerRegelAppliesToNumber(number)) {
  40              return 'viru ' + string;
  41          }
  42          return 'virun ' + string;
  43      }
  44  
  45      /**
  46       * Returns true if the word before the given number loses the '-n' ending.
  47       * e.g. 'an 10 Deeg' but 'a 5 Deeg'
  48       *
  49       * @param number {integer}
  50       * @returns {boolean}
  51       */
  52      function eifelerRegelAppliesToNumber(number) {
  53          number = parseInt(number, 10);
  54          if (isNaN(number)) {
  55              return false;
  56          }
  57          if (number < 0) {
  58              // Negative Number --> always true
  59              return true;
  60          } else if (number < 10) {
  61              // Only 1 digit
  62              if (4 <= number && number <= 7) {
  63                  return true;
  64              }
  65              return false;
  66          } else if (number < 100) {
  67              // 2 digits
  68              var lastDigit = number % 10, firstDigit = number / 10;
  69              if (lastDigit === 0) {
  70                  return eifelerRegelAppliesToNumber(firstDigit);
  71              }
  72              return eifelerRegelAppliesToNumber(lastDigit);
  73          } else if (number < 10000) {
  74              // 3 or 4 digits --> recursively check first digit
  75              while (number >= 10) {
  76                  number = number / 10;
  77              }
  78              return eifelerRegelAppliesToNumber(number);
  79          } else {
  80              // Anything larger than 4 digits: recursively check first n-3 digits
  81              number = number / 1000;
  82              return eifelerRegelAppliesToNumber(number);
  83          }
  84      }
  85  
  86      return moment.defineLocale('lb', {
  87          months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
  88          monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
  89          weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
  90          weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
  91          weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
  92          longDateFormat: {
  93              LT: 'H:mm [Auer]',
  94              L: 'DD.MM.YYYY',
  95              LL: 'D. MMMM YYYY',
  96              LLL: 'D. MMMM YYYY LT',
  97              LLLL: 'dddd, D. MMMM YYYY LT'
  98          },
  99          calendar: {
 100              sameDay: '[Haut um] LT',
 101              sameElse: 'L',
 102              nextDay: '[Muer um] LT',
 103              nextWeek: 'dddd [um] LT',
 104              lastDay: '[Gëschter um] LT',
 105              lastWeek: function () {
 106                  // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
 107                  switch (this.day()) {
 108                      case 2:
 109                      case 4:
 110                          return '[Leschten] dddd [um] LT';
 111                      default:
 112                          return '[Leschte] dddd [um] LT';
 113                  }
 114              }
 115          },
 116          relativeTime : {
 117              future : processFutureTime,
 118              past : processPastTime,
 119              s : 'e puer Sekonnen',
 120              m : processRelativeTime,
 121              mm : '%d Minutten',
 122              h : processRelativeTime,
 123              hh : '%d Stonnen',
 124              d : processRelativeTime,
 125              dd : '%d Deeg',
 126              M : processRelativeTime,
 127              MM : '%d Méint',
 128              y : processRelativeTime,
 129              yy : '%d Joer'
 130          },
 131          ordinal: '%d.',
 132          week: {
 133              dow: 1, // Monday is the first day of the week.
 134              doy: 4  // The week that contains Jan 4th is the first week of the year.
 135          }
 136      });
 137  }));


Generated: Fri Nov 28 14:03:12 2014 Cross-referenced by PHPXref 0.7.1