text: //! moment.js locale configuration
  //! locale : Luxembourgish [lb]
  //! author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz
  
  import moment from '../moment';
  
  function processRelativeTime(number, withoutSuffix, key, isFuture) {
      var format = {
          'm': ['eng Minutt', 'enger Minutt'],
          'h': ['eng Stonn', 'enger Stonn'],
          'd': ['een Dag', 'engem Dag'],
          'M': ['ee Mount', 'engem Mount'],
          'y': ['ee Joer', 'engem Joer']
      };
      return withoutSuffix ? format[key][0] : format[key][1];
  }
  function processFutureTime(string) {
      var number = string.substr(0, string.indexOf(' '));
      if (eifelerRegelAppliesToNumber(number)) {
          return 'a ' + string;
      }
      return 'an ' + string;
  }
  function processPastTime(string) {
      var number = string.substr(0, string.indexOf(' '));
      if (eifelerRegelAppliesToNumber(number)) {
          return 'viru ' + string;
      }
      return 'virun ' + string;
  }
  /**
   * Returns true if the word before the given number loses the '-n' ending.
   * e.g. 'an 10 Deeg' but 'a 5 Deeg'
   *
   * @param number {integer}
   * @returns {boolean}
   */
  function eifelerRegelAppliesToNumber(number) {
      number = parseInt(number, 10);
      if (isNaN(number)) {
          return false;
      }
      if (number < 0) {
          // Negative Number --> always true
          return true;
      } else if (number < 10) {
          // Only 1 digit
          if (4 <= number && number <= 7) {
              return true;
          }
          return false;
      } else if (number < 100) {
          // 2 digits
          var lastDigit = number % 10, firstDigit = number / 10;
          if (lastDigit === 0) {
              return eifelerRegelAppliesToNumber(firstDigit);
          }
          return eifelerRegelAppliesToNumber(lastDigit);
      } else if (number < 10000) {
          // 3 or 4 digits --> recursively check first digit
          while (number >= 10) {
              number = number / 10;
          }
          return eifelerRegelAppliesToNumber(number);
      } else {
          // Anything larger than 4 digits: recursively check first n-3 digits
          number = number / 1000;
          return eifelerRegelAppliesToNumber(number);
      }
  }
  
  export default moment.defineLocale('lb', {
      months: 'Januar_Februar_Mäerz_Abrëll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split('_'),
      monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split('_'),
      monthsParseExact : true,
      weekdays: 'Sonndeg_Méindeg_Dënschdeg_Mëttwoch_Donneschdeg_Freideg_Samschdeg'.split('_'),
      weekdaysShort: 'So._Mé._Dë._Më._Do._Fr._Sa.'.split('_'),
      weekdaysMin: 'So_Mé_Dë_Më_Do_Fr_Sa'.split('_'),
      weekdaysParseExact : true,
      longDateFormat: {
          LT: 'H:mm [Auer]',
          LTS: 'H:mm:ss [Auer]',
          L: 'DD.MM.YYYY',
          LL: 'D. MMMM YYYY',
          LLL: 'D. MMMM YYYY H:mm [Auer]',
          LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]'
      },
      calendar: {
          sameDay: '[Haut um] LT',
          sameElse: 'L',
          nextDay: '[Muer um] LT',
          nextWeek: 'dddd [um] LT',
          lastDay: '[Gëschter um] LT',
          lastWeek: function () {
              // Different date string for 'Dënschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule
              switch (this.day()) {
                  case 2:
                  case 4:
                      return '[Leschten] dddd [um] LT';
                  default:
                      return '[Leschte] dddd [um] LT';
              }
          }
      },
      relativeTime : {
          future : processFutureTime,
          past : processPastTime,
          s : 'e puer Sekonnen',
          m : processRelativeTime,
          mm : '%d Minutten',
          h : processRelativeTime,
          hh : '%d Stonnen',
          d : processRelativeTime,
          dd : '%d Deeg',
          M : processRelativeTime,
          MM : '%d Méint',
          y : processRelativeTime,
          yy : '%d Joer'
      },
      ordinalParse: /\d{1,2}\./,
      ordinal: '%d.',
      week: {
          dow: 1, // Monday is the first day of the week.
          doy: 4  // The week that contains Jan 4th is the first week of the year.
      }
  });
  
  