126 lines
3.7 KiB
JavaScript
126 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.
|
|||
|
},
|
|||
|
});
|