@karinjs/moment
Version:
Parse, validate, manipulate, and display dates
119 lines (118 loc) • 4.21 kB
JavaScript
import hooks from "../moment.js";
//! moment.js locale configuration
//! locale : Serbian Cyrillic [sr-cyrl]
//! author : Milan Janačković<milanjanackovic@gmail.com> : https://github.com/milan-j
//! author : Stefan Crnjaković <stefan@hotmail.rs> : https://github.com/crnjakovic
var translator = {
words: {
//Different grammatical cases
ss: ["секунда", "секунде", "секунди"],
m: ["један минут", "једног минута"],
mm: ["минут", "минута", "минута"],
h: ["један сат", "једног сата"],
hh: ["сат", "сата", "сати"],
d: ["један дан", "једног дана"],
dd: ["дан", "дана", "дана"],
M: ["један месец", "једног месеца"],
MM: ["месец", "месеца", "месеци"],
y: ["једну годину", "једне године"],
yy: ["годину", "године", "година"]
},
correctGrammaticalCase: function(number, wordKey) {
if (number % 10 >= 1 && number % 10 <= 4 && (number % 100 < 10 || number % 100 >= 20)) {
return number % 10 === 1 ? wordKey[0] : wordKey[1];
}
return wordKey[2];
},
translate: function(number, withoutSuffix, key, isFuture) {
var wordKey = translator.words[key], word;
if (key.length === 1) {
if (key === "y" && withoutSuffix) return "једна година";
return isFuture || withoutSuffix ? wordKey[0] : wordKey[1];
}
word = translator.correctGrammaticalCase(number, wordKey);
if (key === "yy" && withoutSuffix && word === "годину") {
return number + " година";
}
return number + " " + word;
}
};
const srCyrl = hooks.defineLocale("sr-cyrl", {
months: "јануар_фебруар_март_април_мај_јун_јул_август_септембар_октобар_новембар_децембар".split(
"_"
),
monthsShort: "јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._дец.".split("_"),
monthsParseExact: true,
weekdays: "недеља_понедељак_уторак_среда_четвртак_петак_субота".split("_"),
weekdaysShort: "нед._пон._уто._сре._чет._пет._суб.".split("_"),
weekdaysMin: "не_по_ут_ср_че_пе_су".split("_"),
weekdaysParseExact: true,
longDateFormat: {
LT: "H:mm",
LTS: "H:mm:ss",
L: "D. M. YYYY.",
LL: "D. MMMM YYYY.",
LLL: "D. MMMM YYYY. H:mm",
LLLL: "dddd, D. MMMM YYYY. H:mm"
},
calendar: {
sameDay: "[данас у] LT",
nextDay: "[сутра у] LT",
nextWeek: function() {
switch (this.day()) {
case 0:
return "[у] [недељу] [у] LT";
case 3:
return "[у] [среду] [у] LT";
case 6:
return "[у] [суботу] [у] LT";
case 1:
case 2:
case 4:
case 5:
return "[у] dddd [у] LT";
}
},
lastDay: "[јуче у] LT",
lastWeek: function() {
var lastWeekDays = [
"[прошле] [недеље] [у] LT",
"[прошлог] [понедељка] [у] LT",
"[прошлог] [уторка] [у] LT",
"[прошле] [среде] [у] LT",
"[прошлог] [четвртка] [у] LT",
"[прошлог] [петка] [у] LT",
"[прошле] [суботе] [у] LT"
];
return lastWeekDays[this.day()];
},
sameElse: "L"
},
relativeTime: {
future: "за %s",
past: "пре %s",
s: "неколико секунди",
ss: translator.translate,
m: translator.translate,
mm: translator.translate,
h: translator.translate,
hh: translator.translate,
d: translator.translate,
dd: translator.translate,
M: translator.translate,
MM: translator.translate,
y: translator.translate,
yy: translator.translate
},
dayOfMonthOrdinalParse: /\d{1,2}\./,
ordinal: "%d.",
week: {
dow: 1,
// Monday is the first day of the week.
doy: 7
// The week that contains Jan 1st is the first week of the year.
}
});
export {
srCyrl as default
};