You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
3.7 KiB
124 lines
3.7 KiB
//! 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. |
|
}, |
|
});
|
|
|