UNPKG

3.75 kBJavaScriptView Raw
1//! moment.js locale configuration
2//! locale : Klingon [tlh]
3//! author : Dominika Kruk : https://github.com/amaranthrose
4
5import moment from '../moment';
6
7var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');
8
9function translateFuture(output) {
10 var time = output;
11 time =
12 output.indexOf('jaj') !== -1
13 ? time.slice(0, -3) + 'leS'
14 : output.indexOf('jar') !== -1
15 ? time.slice(0, -3) + 'waQ'
16 : output.indexOf('DIS') !== -1
17 ? time.slice(0, -3) + 'nem'
18 : time + ' pIq';
19 return time;
20}
21
22function translatePast(output) {
23 var time = output;
24 time =
25 output.indexOf('jaj') !== -1
26 ? time.slice(0, -3) + 'Hu’'
27 : output.indexOf('jar') !== -1
28 ? time.slice(0, -3) + 'wen'
29 : output.indexOf('DIS') !== -1
30 ? time.slice(0, -3) + 'ben'
31 : time + ' ret';
32 return time;
33}
34
35function translate(number, withoutSuffix, string, isFuture) {
36 var numberNoun = numberAsNoun(number);
37 switch (string) {
38 case 'ss':
39 return numberNoun + ' lup';
40 case 'mm':
41 return numberNoun + ' tup';
42 case 'hh':
43 return numberNoun + ' rep';
44 case 'dd':
45 return numberNoun + ' jaj';
46 case 'MM':
47 return numberNoun + ' jar';
48 case 'yy':
49 return numberNoun + ' DIS';
50 }
51}
52
53function numberAsNoun(number) {
54 var hundred = Math.floor((number % 1000) / 100),
55 ten = Math.floor((number % 100) / 10),
56 one = number % 10,
57 word = '';
58 if (hundred > 0) {
59 word += numbersNouns[hundred] + 'vatlh';
60 }
61 if (ten > 0) {
62 word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';
63 }
64 if (one > 0) {
65 word += (word !== '' ? ' ' : '') + numbersNouns[one];
66 }
67 return word === '' ? 'pagh' : word;
68}
69
70export default moment.defineLocale('tlh', {
71 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(
72 '_'
73 ),
74 monthsShort:
75 '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(
76 '_'
77 ),
78 monthsParseExact: true,
79 weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(
80 '_'
81 ),
82 weekdaysShort:
83 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
84 weekdaysMin:
85 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split('_'),
86 longDateFormat: {
87 LT: 'HH:mm',
88 LTS: 'HH:mm:ss',
89 L: 'DD.MM.YYYY',
90 LL: 'D MMMM YYYY',
91 LLL: 'D MMMM YYYY HH:mm',
92 LLLL: 'dddd, D MMMM YYYY HH:mm',
93 },
94 calendar: {
95 sameDay: '[DaHjaj] LT',
96 nextDay: '[wa’leS] LT',
97 nextWeek: 'LLL',
98 lastDay: '[wa’Hu’] LT',
99 lastWeek: 'LLL',
100 sameElse: 'L',
101 },
102 relativeTime: {
103 future: translateFuture,
104 past: translatePast,
105 s: 'puS lup',
106 ss: translate,
107 m: 'wa’ tup',
108 mm: translate,
109 h: 'wa’ rep',
110 hh: translate,
111 d: 'wa’ jaj',
112 dd: translate,
113 M: 'wa’ jar',
114 MM: translate,
115 y: 'wa’ DIS',
116 yy: translate,
117 },
118 dayOfMonthOrdinalParse: /\d{1,2}\./,
119 ordinal: '%d.',
120 week: {
121 dow: 1, // Monday is the first day of the week.
122 doy: 4, // The week that contains Jan 4th is the first week of the year.
123 },
124});