mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			138 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// moment.js locale configuration
 | 
						|
// locale : Luxembourgish (lb)
 | 
						|
// author : mweimerskirch : https://github.com/mweimerskirch, David Raison : https://github.com/kwisatz
 | 
						|
 | 
						|
// Note: Luxembourgish has a very particular phonological rule ('Eifeler Regel') that causes the
 | 
						|
// deletion of the final 'n' in certain contexts. That's what the 'eifelerRegelAppliesToWeekday'
 | 
						|
// and 'eifelerRegelAppliesToNumber' methods are meant for
 | 
						|
 | 
						|
(function (factory) {
 | 
						|
    if (typeof define === 'function' && define.amd) {
 | 
						|
        define(['moment'], factory); // AMD
 | 
						|
    } else if (typeof exports === 'object') {
 | 
						|
        module.exports = factory(require('../moment')); // Node
 | 
						|
    } else {
 | 
						|
        factory(window.moment); // Browser global
 | 
						|
    }
 | 
						|
}(function (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);
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
    return 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('_'),
 | 
						|
        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('_'),
 | 
						|
        longDateFormat: {
 | 
						|
            LT: 'H:mm [Auer]',
 | 
						|
            L: 'DD.MM.YYYY',
 | 
						|
            LL: 'D. MMMM YYYY',
 | 
						|
            LLL: 'D. MMMM YYYY LT',
 | 
						|
            LLLL: 'dddd, D. MMMM YYYY LT'
 | 
						|
        },
 | 
						|
        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'
 | 
						|
        },
 | 
						|
        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.
 | 
						|
        }
 | 
						|
    });
 | 
						|
}));
 |