@karinjs/moment
Version:
Parse, validate, manipulate, and display dates
103 lines (102 loc) • 3.29 kB
JavaScript
import hooks from "../moment.js";
//! moment.js locale configuration
//! locale : Klingon [tlh]
//! author : Dominika Kruk : https://github.com/amaranthrose
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 % 1e3 / 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;
}
const tlh = hooks.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.
}
});
export {
tlh as default
};