125 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			125 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
//! moment.js locale configuration
 | 
						||
//! locale : Klingon [tlh]
 | 
						||
//! author : Dominika Kruk : https://github.com/amaranthrose
 | 
						||
 | 
						||
import moment from '../moment';
 | 
						||
 | 
						||
var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
 | 
						||
 | 
						||
function translateFuture(output) {
 | 
						||
    var time = output;
 | 
						||
    time =
 | 
						||
        output.indexOf('jaj') !== -1
 | 
						||
            ? time.slice(0, -3) + 'leS'
 | 
						||
            : output.indexOf('jar') !== -1
 | 
						||
            ? time.slice(0, -3) + 'waQ'
 | 
						||
            : output.indexOf('DIS') !== -1
 | 
						||
            ? time.slice(0, -3) + 'nem'
 | 
						||
            : time + ' pIq';
 | 
						||
    return time;
 | 
						||
}
 | 
						||
 | 
						||
function translatePast(output) {
 | 
						||
    var time = output;
 | 
						||
    time =
 | 
						||
        output.indexOf('jaj') !== -1
 | 
						||
            ? time.slice(0, -3) + 'Hu’'
 | 
						||
            : output.indexOf('jar') !== -1
 | 
						||
            ? time.slice(0, -3) + 'wen'
 | 
						||
            : output.indexOf('DIS') !== -1
 | 
						||
            ? time.slice(0, -3) + 'ben'
 | 
						||
            : time + ' ret';
 | 
						||
    return time;
 | 
						||
}
 | 
						||
 | 
						||
function translate(number, withoutSuffix, string, isFuture) {
 | 
						||
    var numberNoun = numberAsNoun(number);
 | 
						||
    switch (string) {
 | 
						||
        case 'ss':
 | 
						||
            return numberNoun + ' lup';
 | 
						||
        case 'mm':
 | 
						||
            return numberNoun + ' tup';
 | 
						||
        case 'hh':
 | 
						||
            return numberNoun + ' rep';
 | 
						||
        case 'dd':
 | 
						||
            return numberNoun + ' jaj';
 | 
						||
        case 'MM':
 | 
						||
            return numberNoun + ' jar';
 | 
						||
        case 'yy':
 | 
						||
            return numberNoun + ' DIS';
 | 
						||
    }
 | 
						||
}
 | 
						||
 | 
						||
function numberAsNoun(number) {
 | 
						||
    var hundred = Math.floor((number % 1000) / 100),
 | 
						||
        ten = Math.floor((number % 100) / 10),
 | 
						||
        one = number % 10,
 | 
						||
        word = '';
 | 
						||
    if (hundred > 0) {
 | 
						||
        word += numbersNouns[hundred] + 'vatlh';
 | 
						||
    }
 | 
						||
    if (ten > 0) {
 | 
						||
        word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';
 | 
						||
    }
 | 
						||
    if (one > 0) {
 | 
						||
        word += (word !== '' ? ' ' : '') + numbersNouns[one];
 | 
						||
    }
 | 
						||
    return word === '' ? 'pagh' : word;
 | 
						||
}
 | 
						||
 | 
						||
export default moment.defineLocale('tlh', {
 | 
						||
    months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(
 | 
						||
        '_'
 | 
						||
    ),
 | 
						||
    monthsShort:
 | 
						||
        'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(
 | 
						||
            '_'
 | 
						||
        ),
 | 
						||
    monthsParseExact: true,
 | 
						||
    weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
 | 
						||
        '_'
 | 
						||
    ),
 | 
						||
    weekdaysShort:
 | 
						||
        'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
 | 
						||
    weekdaysMin:
 | 
						||
        'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
 | 
						||
    longDateFormat: {
 | 
						||
        LT: 'HH:mm',
 | 
						||
        LTS: 'HH:mm:ss',
 | 
						||
        L: 'DD.MM.YYYY',
 | 
						||
        LL: 'D MMMM YYYY',
 | 
						||
        LLL: 'D MMMM YYYY HH:mm',
 | 
						||
        LLLL: 'dddd, D MMMM YYYY HH:mm',
 | 
						||
    },
 | 
						||
    calendar: {
 | 
						||
        sameDay: '[DaHjaj] LT',
 | 
						||
        nextDay: '[wa’leS] LT',
 | 
						||
        nextWeek: 'LLL',
 | 
						||
        lastDay: '[wa’Hu’] LT',
 | 
						||
        lastWeek: 'LLL',
 | 
						||
        sameElse: 'L',
 | 
						||
    },
 | 
						||
    relativeTime: {
 | 
						||
        future: translateFuture,
 | 
						||
        past: translatePast,
 | 
						||
        s: 'puS lup',
 | 
						||
        ss: translate,
 | 
						||
        m: 'wa’ tup',
 | 
						||
        mm: translate,
 | 
						||
        h: 'wa’ rep',
 | 
						||
        hh: translate,
 | 
						||
        d: 'wa’ jaj',
 | 
						||
        dd: translate,
 | 
						||
        M: 'wa’ jar',
 | 
						||
        MM: translate,
 | 
						||
        y: 'wa’ DIS',
 | 
						||
        yy: translate,
 | 
						||
    },
 | 
						||
    dayOfMonthOrdinalParse: /\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.
 | 
						||
    },
 | 
						||
});
 |