cscg24-guacamole

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

ar.js (5112B)


      1//! moment.js locale configuration
      2//! locale : Arabic [ar]
      3//! author : Abdel Said: https://github.com/abdelsaid
      4//! author : Ahmed Elkhatib
      5//! author : forabi https://github.com/forabi
      6
      7import moment from '../moment';
      8
      9var symbolMap = {
     10        1: '١',
     11        2: '٢',
     12        3: '٣',
     13        4: '٤',
     14        5: '٥',
     15        6: '٦',
     16        7: '٧',
     17        8: '٨',
     18        9: '٩',
     19        0: '٠',
     20    },
     21    numberMap = {
     22        '١': '1',
     23        '٢': '2',
     24        '٣': '3',
     25        '٤': '4',
     26        '٥': '5',
     27        '٦': '6',
     28        '٧': '7',
     29        '٨': '8',
     30        '٩': '9',
     31        '٠': '0',
     32    },
     33    pluralForm = function (n) {
     34        return n === 0
     35            ? 0
     36            : n === 1
     37              ? 1
     38              : n === 2
     39                ? 2
     40                : n % 100 >= 3 && n % 100 <= 10
     41                  ? 3
     42                  : n % 100 >= 11
     43                    ? 4
     44                    : 5;
     45    },
     46    plurals = {
     47        s: [
     48            'أقل من ثانية',
     49            'ثانية واحدة',
     50            ['ثانيتان', 'ثانيتين'],
     51            '%d ثوان',
     52            '%d ثانية',
     53            '%d ثانية',
     54        ],
     55        m: [
     56            'أقل من دقيقة',
     57            'دقيقة واحدة',
     58            ['دقيقتان', 'دقيقتين'],
     59            '%d دقائق',
     60            '%d دقيقة',
     61            '%d دقيقة',
     62        ],
     63        h: [
     64            'أقل من ساعة',
     65            'ساعة واحدة',
     66            ['ساعتان', 'ساعتين'],
     67            '%d ساعات',
     68            '%d ساعة',
     69            '%d ساعة',
     70        ],
     71        d: [
     72            'أقل من يوم',
     73            'يوم واحد',
     74            ['يومان', 'يومين'],
     75            '%d أيام',
     76            '%d يومًا',
     77            '%d يوم',
     78        ],
     79        M: [
     80            'أقل من شهر',
     81            'شهر واحد',
     82            ['شهران', 'شهرين'],
     83            '%d أشهر',
     84            '%d شهرا',
     85            '%d شهر',
     86        ],
     87        y: [
     88            'أقل من عام',
     89            'عام واحد',
     90            ['عامان', 'عامين'],
     91            '%d أعوام',
     92            '%d عامًا',
     93            '%d عام',
     94        ],
     95    },
     96    pluralize = function (u) {
     97        return function (number, withoutSuffix, string, isFuture) {
     98            var f = pluralForm(number),
     99                str = plurals[u][pluralForm(number)];
    100            if (f === 2) {
    101                str = str[withoutSuffix ? 0 : 1];
    102            }
    103            return str.replace(/%d/i, number);
    104        };
    105    },
    106    months = [
    107        'يناير',
    108        'فبراير',
    109        'مارس',
    110        'أبريل',
    111        'مايو',
    112        'يونيو',
    113        'يوليو',
    114        'أغسطس',
    115        'سبتمبر',
    116        'أكتوبر',
    117        'نوفمبر',
    118        'ديسمبر',
    119    ];
    120
    121export default moment.defineLocale('ar', {
    122    months: months,
    123    monthsShort: months,
    124    weekdays: 'الأحد_الإثنين_الثلاثاء_الأربعاء_الخميس_الجمعة_السبت'.split('_'),
    125    weekdaysShort: 'أحد_إثنين_ثلاثاء_أربعاء_خميس_جمعة_سبت'.split('_'),
    126    weekdaysMin: 'ح_ن_ث_ر_خ_ج_س'.split('_'),
    127    weekdaysParseExact: true,
    128    longDateFormat: {
    129        LT: 'HH:mm',
    130        LTS: 'HH:mm:ss',
    131        L: 'D/\u200FM/\u200FYYYY',
    132        LL: 'D MMMM YYYY',
    133        LLL: 'D MMMM YYYY HH:mm',
    134        LLLL: 'dddd D MMMM YYYY HH:mm',
    135    },
    136    meridiemParse: /ص|م/,
    137    isPM: function (input) {
    138        return 'م' === input;
    139    },
    140    meridiem: function (hour, minute, isLower) {
    141        if (hour < 12) {
    142            return 'ص';
    143        } else {
    144            return 'م';
    145        }
    146    },
    147    calendar: {
    148        sameDay: '[اليوم عند الساعة] LT',
    149        nextDay: '[غدًا عند الساعة] LT',
    150        nextWeek: 'dddd [عند الساعة] LT',
    151        lastDay: '[أمس عند الساعة] LT',
    152        lastWeek: 'dddd [عند الساعة] LT',
    153        sameElse: 'L',
    154    },
    155    relativeTime: {
    156        future: 'بعد %s',
    157        past: 'منذ %s',
    158        s: pluralize('s'),
    159        ss: pluralize('s'),
    160        m: pluralize('m'),
    161        mm: pluralize('m'),
    162        h: pluralize('h'),
    163        hh: pluralize('h'),
    164        d: pluralize('d'),
    165        dd: pluralize('d'),
    166        M: pluralize('M'),
    167        MM: pluralize('M'),
    168        y: pluralize('y'),
    169        yy: pluralize('y'),
    170    },
    171    preparse: function (string) {
    172        return string
    173            .replace(/[١٢٣٤٥٦٧٨٩٠]/g, function (match) {
    174                return numberMap[match];
    175            })
    176            .replace(/،/g, ',');
    177    },
    178    postformat: function (string) {
    179        return string
    180            .replace(/\d/g, function (match) {
    181                return symbolMap[match];
    182            })
    183            .replace(/,/g, '،');
    184    },
    185    week: {
    186        dow: 6, // Saturday is the first day of the week.
    187        doy: 12, // The week that contains Jan 12th is the first week of the year.
    188    },
    189});