File size: 1,397 Bytes
d2897cd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php

namespace Mautic\CoreBundle\Helper\DateTime;

use Symfony\Contracts\Translation\TranslatorInterface;

class DateTimeLocalization
{
    public function __construct(
        private TranslatorInterface $translator
    ) {
    }

    public function localize(string $format): string
    {
        return str_replace($this->getDictionary(), array_keys($this->getDictionary()), $format);
    }

    /**
     * @return array<string,string>
     */
    private function getDictionary(): array
    {
        $months = [
            'January',
            'February',
            'March',
            'April',
            'May',
            'June',
            'July',
            'August',
            'September',
            'October',
            'November',
            'December',
        ];
        $days   = [
            'Monday',
            'Tuesday',
            'Wednesday',
            'Thursday',
            'Friday',
            'Saturday',
            'Sunday',
            'Sun',
            'Mon',
            'Tue',
            'Wed',
            'Thu',
            'Fri',
            'Sat',
        ];
        $values = array_merge($months, $days);
        $keys   = $values;
        array_walk($keys, function (&$key): void {
            $key = $this->translator->trans('mautic.core.date.'.strtolower($key));
        });

        return array_combine($keys, $values);
    }
}