cad448d098d918250fdbc2a0116fd84e6a04ef70
[mirror/userdir-ldap.git] / web / template / debian / ctime.wml
1 <perl>
2 use Time::Local;
3
4 # List of weekday names (used in modification dates)
5 %dow = (
6         en => [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],
7         tr => [ 'Paz', 'Pzt', 'Sa', 'Çar', 'Pr$', 'Cum', 'Cts' ],
8         fi => [ 'Su', 'Ma', 'Ti', 'Ke', 'To', 'Pe', 'La' ],
9         pt => [ 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb' ],
10         hr => [ 'nedjelja', 'ponedjeljak', 'utorak', 'srijeda', 'èetvrtak', 'petak', 'subota' ],
11         fr => [ 'Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam' ],
12         de => [ 'Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag' ],
13         it => [ 'dom', 'lun', 'mar', 'mer', 'gio', 'ven', 'sab' ],
14         ja => [ '(Æü)', '(·î)', '(²Ð)', '(¿å)', '(ÌÚ)', '(¶â)', '(ÅÚ)' ],
15         pl => [ 'ni', 'pon', 'wt', '¶ro', 'czw', 'pt', 'so' ],
16         es => [ 'Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab' ],
17         da => [ 'S&oslash;n', 'Man', 'Tirs', 'Ons', 'Tors', 'Fre', 'L&oslash;r' ],
18         no => [ 'Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør' ],
19         zh => [ '¤é', '¤@', '¤G', '¤T', '¥|', '¤­', '¤»' ],
20         sv => [ 'Sön', 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör' ],
21         ko => [ 'ìí', 'êÅ', 'ûý', 'â©', 'ÙÊ', 'ÐÝ', '÷Ï' ],
22 );
23
24 # List of month names (used in modification dates, and may be used in news 
25 # listings)
26 %moy = (
27         en => [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
28          'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ],
29         tr => [ 'Ocak', 'Þubat', 'Mart', 'Nisan', 'MayIs', 'Haziran',
30          'Temmuz', 'AGustos', 'EylUl', 'Ekim', 'KasIm', 'AralIk' ],
31         fi => [ 'tammi', 'helmi', 'maalis', 'huhti', 'touko',
32          'kesä', 'heinä', 'elo', 'syys', 'loka', 'marras', 'joulu' ],
33         pt => [ 'Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
34          'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez' ],
35         hr => [ 'sijeènja', 'veljaèe', 'o¾ujka', 'travnja', 'svibnja', 'lipnja',
36          'srpnja', 'kolovoza', 'rujna', 'listopada', 'studenog', 'prosinca' ],
37         fr => [ 'Jan', 'Fév', 'Mar', 'Avr', 'Mai', 'Jun',
38          'Jui', 'Aoû', 'Sep', 'Oct', 'Nov', 'Déc' ],
39         de => [ 'Januar', 'Februar', 'M&auml;rz', 'April', 'Mai', 'Juni', 'Juli',
40          'August', 'September', 'Oktober', 'November', 'Dezember' ],
41         it => [ 'gen', 'feb', 'mar', 'apr', 'mag', 'giu',
42          'lug', 'ago', 'set', 'ott', 'nov', 'dic' ],
43         ja => [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12' ],
44         pl => [ 'sty', 'lut', 'mar', 'kwie', 'maj', 'cze',
45          'lip', 'sie', 'wrz', 'pa¼', 'lis', 'gru' ],
46         es => [ 'Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun',
47          'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic' ],
48         da => [ 'Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun',
49          'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec' ],
50         no => [ 'jan', 'feb', 'mar', 'apr', 'mai', 'jun',
51          'jul', 'aug', 'sep', 'okt', 'nov', 'des' ],
52         zh => [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12' ],
53 #       zh => [ '¤@¤ë', '¤G¤ë', '¤T¤ë', '¥|¤ë', '¤­¤ë', '¤»¤ë',
54 #         '¤C¤ë', '¤K¤ë', '¤E¤ë', '¤Q¤ë', '¤Q¤@¤ë', '¤Q¤G¤ë' ],
55         sv => [ 'jan', 'feb', 'mar', 'apr', 'maj', 'jun',
56          'jul', 'aug', 'sep', 'okt', 'nov', 'dec' ],
57         ko => [ '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12' ],
58 );
59
60 # Date format (sprintf) for modification dates. If none is supplied, the
61 # standard format "Www, Mmm Dd HH:MM:SS UTC Yyyy" is used instead.
62 %dateform = (
63         hr => '"%s, %2d. %s %s., %02d:%02d:%02d %s", $wday, $mday, $mon, 1900+$year, $hour, $min, $sec, "UTC"',
64 #       tr => '"%s, %2d. %s %s., %02d:%02d:%02d %s", $wday, $mday, $mon, 1900+$year, $hour, $min, $sec, "UTC"',
65         fr => '"%s, %2d. %s %s., %02d:%02d:%02d %s", $wday, $mday, $mon, 1900+$year, $hour, $min, $sec, "UTC"',
66         zh => '"%s ¦~ %s ¤ë %s ¤é ¬P´Á%s %02d:%02d:%02d %s", 1900+$year, $mon, $mday, $wday, $hour, $min, $sec, "UTC"',
67         sv => '"%s %04d-%02d-%02d %02d.%02d.%02d %s", $wday, 1900+$year, $monnr+1, $mday, $hour, $min, $sec, "UTC"',
68         no => '"%s %2d. %s %s kl. %02d.%02d.%02d %s", $wday, $mday, $mon, $year, $hour, $min, $sec, "UTC"',
69         ja => '"%s Ç¯ %s ·î %s Æü %s %02d:%02d:%02d %s", 1900+$year, $mon, $mday, $wday, $hour, $min, $sec, "UTC"',
70 #       pl => '""',
71         de => '"%s den %d. %s %s um %02d:%02d:%02d Uhr %s", $wday, $mday, $mon, 1900+$year, $hour, $min, $sec, "UTC"'
72 );
73
74 # Date format (sprintf) for news items. If none is supplied, the standard
75 # format "Dd Mmm Yyyy" is used instead.
76 %newsdateform = (
77         sv => '"%4d-%02d-%02d", $year, $mon, $mday',
78         fi => '"%02d. %02d. %04d", $mday, $mon, $year',
79         hr => '"%02d. %02d. %04d", $mday, $mon, $year',
80         de => '"%02d.%02d.%04d", $mday, $mon, $year',
81         ja => '"%04d Ç¯ %02d ·î %02d Æü", $year, $mon, $mday',
82         da => '"%02d. %02d. %04d", $mday, $mon, $year',
83         no => '"%02d. %s %04d", $mday, $mon_str, $year',
84         zh => '"%04d ¦~ %02d ¤ë %02d ¤é", $year, $mon, $mday',
85 );
86
87 sub ctime {
88         my ($time, $sec, $min, $hour, $mday, $monnr, $year, $wday, $yday, $isdst, $mon);
89         # The last modification time of inputfile in ISO dd-mm-yyyy hh:mm:ss format.
90         if (defined $(GEN_TIME)) {
91                 $WML_GEN_ISOTIME =~ /(..)-(..)-(....) (..):(..):(..)/;
92                 $time = timelocal($6, $5, $4, $1, $2-1, $3);
93         }
94         else {
95                 $WML_SRC_ISOTIME =~ /(..)-(..)-(....) (..):(..):(..)/;
96                 $time = timelocal($6, $5, $4, $1, $2-1, $3);
97         }
98         ($sec, $min, $hour, $mday, $monnr, $year, $wday, $yday, $isdst) = gmtime($time);
99         $wday = $dow{$CUR_ISO_LANG}[$wday];
100         $mon = $moy{$CUR_ISO_LANG}[$monnr];
101         $str = defined($dateform{$CUR_ISO_LANG}) ? 
102                 eval("sprintf($dateform{$CUR_ISO_LANG})") :
103                 sprintf("%s, %s %2d %02d:%02d:%02d %s %04d",
104                         $wday, $mon, $mday, $hour, $min, $sec, "UTC", 1900+$year);
105         return $str;
106 }
107
108 sub newsdate {
109         my ($year, $mon, $mday) = split /-/, $_[0];
110         # Make sure the date is in the YYYY-MM-DD format
111         return $_[0] unless $mday;
112         return $_[0] if ($year < 1900);
113
114         $mon_str = $moy{$CUR_ISO_LANG}[$mon - 1];
115         return defined($newsdateform{$CUR_ISO_LANG}) ?
116                eval("sprintf($newsdateform{$CUR_ISO_LANG})") :
117                sprintf("%02d %s %04d", $mday, $mon_str, $year);
118 }
119 </perl>