cscg24-guacamole

CSCG 2024 Challenge 'Guacamole Mashup'
git clone https://git.sinitax.com/sinitax/cscg24-guacamole
Log | Files | Refs | sfeed.txt

cs.js (6770B)


      1//! moment.js locale configuration
      2//! locale : Czech [cs]
      3//! author : petrbela : https://github.com/petrbela
      4
      5import moment from '../moment';
      6
      7var months = {
      8        standalone:
      9            'leden_únor_březen_duben_květen_červen_červenec_srpen_září_říjen_listopad_prosinec'.split(
     10                '_'
     11            ),
     12        format: 'ledna_února_března_dubna_května_června_července_srpna_září_října_listopadu_prosince'.split(
     13            '_'
     14        ),
     15        isFormat: /DD?[o.]?(\[[^\[\]]*\]|\s)+MMMM/,
     16    },
     17    monthsShort = 'led_úno_bře_dub_kvě_čvn_čvc_srp_zář_říj_lis_pro'.split('_'),
     18    monthsParse = [
     19        /^led/i,
     20        /^úno/i,
     21        /^bře/i,
     22        /^dub/i,
     23        /^kvě/i,
     24        /^(čvn|červen$|června)/i,
     25        /^(čvc|červenec|července)/i,
     26        /^srp/i,
     27        /^zář/i,
     28        /^říj/i,
     29        /^lis/i,
     30        /^pro/i,
     31    ],
     32    // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
     33    // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
     34    monthsRegex =
     35        /^(leden|únor|březen|duben|květen|červenec|července|červen|června|srpen|září|říjen|listopad|prosinec|led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i;
     36
     37function plural(n) {
     38    return n > 1 && n < 5 && ~~(n / 10) !== 1;
     39}
     40function translate(number, withoutSuffix, key, isFuture) {
     41    var result = number + ' ';
     42    switch (key) {
     43        case 's': // a few seconds / in a few seconds / a few seconds ago
     44            return withoutSuffix || isFuture ? 'pár sekund' : 'pár sekundami';
     45        case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago
     46            if (withoutSuffix || isFuture) {
     47                return result + (plural(number) ? 'sekundy' : 'sekund');
     48            } else {
     49                return result + 'sekundami';
     50            }
     51        case 'm': // a minute / in a minute / a minute ago
     52            return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';
     53        case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago
     54            if (withoutSuffix || isFuture) {
     55                return result + (plural(number) ? 'minuty' : 'minut');
     56            } else {
     57                return result + 'minutami';
     58            }
     59        case 'h': // an hour / in an hour / an hour ago
     60            return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';
     61        case 'hh': // 9 hours / in 9 hours / 9 hours ago
     62            if (withoutSuffix || isFuture) {
     63                return result + (plural(number) ? 'hodiny' : 'hodin');
     64            } else {
     65                return result + 'hodinami';
     66            }
     67        case 'd': // a day / in a day / a day ago
     68            return withoutSuffix || isFuture ? 'den' : 'dnem';
     69        case 'dd': // 9 days / in 9 days / 9 days ago
     70            if (withoutSuffix || isFuture) {
     71                return result + (plural(number) ? 'dny' : 'dní');
     72            } else {
     73                return result + 'dny';
     74            }
     75        case 'M': // a month / in a month / a month ago
     76            return withoutSuffix || isFuture ? 'měsíc' : 'měsícem';
     77        case 'MM': // 9 months / in 9 months / 9 months ago
     78            if (withoutSuffix || isFuture) {
     79                return result + (plural(number) ? 'měsíce' : 'měsíců');
     80            } else {
     81                return result + 'měsíci';
     82            }
     83        case 'y': // a year / in a year / a year ago
     84            return withoutSuffix || isFuture ? 'rok' : 'rokem';
     85        case 'yy': // 9 years / in 9 years / 9 years ago
     86            if (withoutSuffix || isFuture) {
     87                return result + (plural(number) ? 'roky' : 'let');
     88            } else {
     89                return result + 'lety';
     90            }
     91    }
     92}
     93
     94export default moment.defineLocale('cs', {
     95    months: months,
     96    monthsShort: monthsShort,
     97    monthsRegex: monthsRegex,
     98    monthsShortRegex: monthsRegex,
     99    // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.
    100    // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.
    101    monthsStrictRegex:
    102        /^(leden|ledna|února|únor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|září|říjen|října|listopadu|listopad|prosinec|prosince)/i,
    103    monthsShortStrictRegex:
    104        /^(led|úno|bře|dub|kvě|čvn|čvc|srp|zář|říj|lis|pro)/i,
    105    monthsParse: monthsParse,
    106    longMonthsParse: monthsParse,
    107    shortMonthsParse: monthsParse,
    108    weekdays: 'neděle_pondělí_úterý_středa_čtvrtek_pátek_sobota'.split('_'),
    109    weekdaysShort: 'ne_po_út_st_čt_pá_so'.split('_'),
    110    weekdaysMin: 'ne_po_út_st_čt_pá_so'.split('_'),
    111    longDateFormat: {
    112        LT: 'H:mm',
    113        LTS: 'H:mm:ss',
    114        L: 'DD.MM.YYYY',
    115        LL: 'D. MMMM YYYY',
    116        LLL: 'D. MMMM YYYY H:mm',
    117        LLLL: 'dddd D. MMMM YYYY H:mm',
    118        l: 'D. M. YYYY',
    119    },
    120    calendar: {
    121        sameDay: '[dnes v] LT',
    122        nextDay: '[zítra v] LT',
    123        nextWeek: function () {
    124            switch (this.day()) {
    125                case 0:
    126                    return '[v neděli v] LT';
    127                case 1:
    128                case 2:
    129                    return '[v] dddd [v] LT';
    130                case 3:
    131                    return '[ve středu v] LT';
    132                case 4:
    133                    return '[ve čtvrtek v] LT';
    134                case 5:
    135                    return '[v pátek v] LT';
    136                case 6:
    137                    return '[v sobotu v] LT';
    138            }
    139        },
    140        lastDay: '[včera v] LT',
    141        lastWeek: function () {
    142            switch (this.day()) {
    143                case 0:
    144                    return '[minulou neděli v] LT';
    145                case 1:
    146                case 2:
    147                    return '[minulé] dddd [v] LT';
    148                case 3:
    149                    return '[minulou středu v] LT';
    150                case 4:
    151                case 5:
    152                    return '[minulý] dddd [v] LT';
    153                case 6:
    154                    return '[minulou sobotu v] LT';
    155            }
    156        },
    157        sameElse: 'L',
    158    },
    159    relativeTime: {
    160        future: 'za %s',
    161        past: 'před %s',
    162        s: translate,
    163        ss: translate,
    164        m: translate,
    165        mm: translate,
    166        h: translate,
    167        hh: translate,
    168        d: translate,
    169        dd: translate,
    170        M: translate,
    171        MM: translate,
    172        y: translate,
    173        yy: translate,
    174    },
    175    dayOfMonthOrdinalParse: /\d{1,2}\./,
    176    ordinal: '%d.',
    177    week: {
    178        dow: 1, // Monday is the first day of the week.
    179        doy: 4, // The week that contains Jan 4th is the first week of the year.
    180    },
    181});