-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(datepicker): Slovak locale added to chronos (#4391)
- Loading branch information
Showing
4 changed files
with
502 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,165 @@ | ||
// tslint:disable:comment-format binary-expression-operand-order max-line-length | ||
// tslint:disable:no-bitwise prefer-template cyclomatic-complexity | ||
// tslint:disable:no-shadowed-variable switch-default prefer-const | ||
// tslint:disable:one-variable-per-declaration newline-before-return | ||
|
||
import { LocaleData } from '../locale/locale.class'; | ||
import { getDayOfWeek } from '../units/day-of-week'; | ||
|
||
//! moment.js locale configuration | ||
//! locale : Slovak [sk] | ||
//! author : Jozef Pažin : https://github.com/atiris | ||
|
||
const months = 'január_február_marec_apríl_máj_jún_júl_august_september_október_november_december'.split('_'); | ||
const monthsShort = 'jan_feb_mar_apr_máj_jún_júl_aug_sep_okt_nov_dec'.split('_'); | ||
|
||
function plural(num: number): boolean { | ||
return (num > 1) && (num < 5) && (~~(num / 10) !== 1); | ||
} | ||
|
||
function translate(num: number, withoutSuffix: boolean, key: string, isFuture: boolean): string { | ||
const result = num + ' '; | ||
|
||
switch (key) { | ||
case 's':// a few seconds / in a few seconds / a few seconds ago | ||
return (withoutSuffix || isFuture) ? 'pár sekúnd' : 'pár sekundami'; | ||
case 'ss':// 9 seconds / in 9 seconds / 9 seconds ago | ||
if (withoutSuffix || isFuture) { | ||
return result + (plural(num) ? 'sekundy' : 'sekúnd'); | ||
} | ||
else { | ||
return result + 'sekundami'; | ||
} | ||
// break; | ||
case 'm':// a minute / in a minute / a minute ago | ||
return withoutSuffix ? 'minúta' : (isFuture ? 'minútu' : 'minútou'); | ||
case 'mm':// 9 minutes / in 9 minutes / 9 minutes ago | ||
if (withoutSuffix || isFuture) { | ||
return result + (plural(num) ? 'minúty' : 'minút'); | ||
} | ||
else { | ||
return result + 'minútami'; | ||
} | ||
// break; | ||
case 'h':// an hour / in an hour / an hour ago | ||
return withoutSuffix ? 'hodina' : (isFuture ? 'hodinu' : 'hodinou'); | ||
case 'hh':// 9 hours / in 9 hours / 9 hours ago | ||
if (withoutSuffix || isFuture) { | ||
return result + (plural(num) ? 'hodiny' : 'hodín'); | ||
} | ||
else { | ||
return result + 'hodinami'; | ||
} | ||
// break; | ||
case 'd':// a day / in a day / a day ago | ||
return (withoutSuffix || isFuture) ? 'deň' : 'dňom'; | ||
case 'dd':// 9 days / in 9 days / 9 days ago | ||
if (withoutSuffix || isFuture) { | ||
return result + (plural(num) ? 'dni' : 'dní'); | ||
} | ||
else { | ||
return result + 'dňami'; | ||
} | ||
// break; | ||
case 'M':// a month / in a month / a month ago | ||
return (withoutSuffix || isFuture) ? 'mesiac' : 'mesiacom'; | ||
case 'MM':// 9 months / in 9 months / 9 months ago | ||
if (withoutSuffix || isFuture) { | ||
return result + (plural(num) ? 'mesiace' : 'mesiacov'); | ||
} | ||
else { | ||
return result + 'mesiacmi'; | ||
} | ||
// break; | ||
case 'y':// a year / in a year / a year ago | ||
return (withoutSuffix || isFuture) ? 'rok' : 'rokom'; | ||
case 'yy':// 9 years / in 9 years / 9 years ago | ||
if (withoutSuffix || isFuture) { | ||
return result + (plural(num) ? 'roky' : 'rokov'); | ||
} | ||
else { | ||
return result + 'rokmi'; | ||
} | ||
// break; | ||
} | ||
} | ||
|
||
export const skLocale: LocaleData = { | ||
abbr: 'sk', | ||
months, | ||
monthsShort, | ||
weekdays: 'nedeľa_pondelok_utorok_streda_štvrtok_piatok_sobota'.split('_'), | ||
weekdaysShort: 'ne_po_ut_st_št_pi_so'.split('_'), | ||
weekdaysMin: 'ne_po_ut_st_št_pi_so'.split('_'), | ||
longDateFormat: { | ||
LT: 'H:mm', | ||
LTS: 'H:mm:ss', | ||
L: 'DD.MM.YYYY', | ||
LL: 'D. MMMM YYYY', | ||
LLL: 'D. MMMM YYYY H:mm', | ||
LLLL: 'dddd D. MMMM YYYY H:mm', | ||
l: 'D. M. YYYY' | ||
}, | ||
calendar: { | ||
sameDay: '[dnes o] LT', | ||
nextDay: '[zajtra o] LT', | ||
nextWeek(date: Date): string { | ||
switch (getDayOfWeek(date)) { | ||
case 0: | ||
return '[v nedeľu o] LT'; | ||
case 1: | ||
case 2: | ||
return '[v] dddd [o] LT'; | ||
case 3: | ||
return '[v stredu o] LT'; | ||
case 4: | ||
return '[vo štvrtok o] LT'; | ||
case 5: | ||
return '[v piatok o] LT'; | ||
case 6: | ||
return '[v sobotu o] LT'; | ||
} | ||
}, | ||
lastDay: '[včera o] LT', | ||
lastWeek(date: Date): string { | ||
switch (getDayOfWeek(date)) { | ||
case 0: | ||
return '[minulú nedeľu o] LT'; | ||
case 1: | ||
case 2: | ||
return '[minulý] dddd [o] LT'; | ||
case 3: | ||
return '[minulú stredu o] LT'; | ||
case 4: | ||
case 5: | ||
return '[minulý] dddd [o] LT'; | ||
case 6: | ||
return '[minulú sobotu o] LT'; | ||
} | ||
}, | ||
sameElse: 'L' | ||
}, | ||
relativeTime: { | ||
future: 'o %s', | ||
past: 'pred %s', | ||
s: translate, | ||
ss: translate, | ||
m: translate, | ||
mm: translate, | ||
h: translate, | ||
hh: translate, | ||
d: translate, | ||
dd: translate, | ||
M: translate, | ||
MM: translate, | ||
y: translate, | ||
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. | ||
} | ||
}; | ||
|
Oops, something went wrong.