File: big5.pmd

package info (click to toggle)
mrtg 2.9.17-4
  • links: PTS
  • area: main
  • in suites: woody
  • size: 5,140 kB
  • ctags: 1,517
  • sloc: perl: 22,688; ansic: 3,536; sh: 1,309; makefile: 319; php: 227; awk: 213; csh: 49; exp: 16
file content (145 lines) | stat: -rw-r--r-- 5,827 bytes parent folder | download
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
###### PATCHTAG 00 ###################################################
###      Chinese/c
###      => Tate Chen @ <tate@joy-tech.com.tw>
###      => Ron F <ron@ko.com.tw>
###          2000/10/7    patch display '\$1\$2/s'  errors	
###### PATCHTAG 10 ###################################################
  &big5
###### PATCHTAG 20 ###################################################
  'big5'         => \&big5, 
  'c'     => \&big5,
###### PATCHTAG 30 ###################################################
# Chinese/c
   'big5' =>
   "  <HR NOSHADE>
    Ƨ@
    <NOBR><A HREF=\"http://www.joy-tech.com.tw/~tate\">Tate Chen</A>
  <A HREF=\"mailto:tate\@joy-tech.com.tw\">
  &lt;tate\@joy-tech.com.tw&gt;</A></NOBR>
  and
  <NOBR><A HREF=\"http://ko.com.tw\">Donlong</A>
  <A HREF=\"mailto:donlong\@seed.net.tw\">
  &lt;donlong\@seed.net.tw&gt;</A>  
  </NOBR>",
###### PATCHTAG 40 ###################################################
$credits::LOCALE{'c'}=$credits::LOCALE{'big5'};
###### PATCHTAG 50 ###################################################
# Chinese Big5 Code

sub big5
{
  my($string)=pop(@_);
  my(%translations,%month,%wday);

  my($i,$j);
  my(@dollar,@quux,@foo);

  
  # regexp => replacement string NOTE does not use autovars $1,$2...
  # charset=iso-2022-jp

  %translations =
  (  
     'charset=iso-8859-1'                     => 'charset=big5',
     'Maximal 5 Minute Incoming Traffic'      => '5̤jyJq',
     'Maximal 5 Minute Outgoing Traffic'      => '5̤jyXq',
     'the device'                             => '˸m',
     'The statistics were last updated(.*)'   => 'Wέpsɶ: $1',
     ' Average\)</B><BR>'                     => ' )</B><BR>',
     '<TD ALIGN=right><SMALL>Average(.*)'     => '<TD ALIGN=right><SMALL>$1',
     '<TD ALIGN=right><SMALL>Max(.*)'         => '<TD ALIGN=right><SMALL>̤j$1',
     '<TD ALIGN=right><SMALL>Current(.*)'     => '<TD ALIGN=right><SMALL>ثe$1',
     'version'                                => '',
     '<B>`Daily\' Graph \((.*) Minute'        => '<B>C Ϫ ($1 ',
     '<B>`Weekly\' Graph \(30 Minute'         => '<B>Cg Ϫ (30 ' ,
     '<B>`Monthly\' Graph \(2 Hour'           => '<B>C Ϫ (2 p',
     '<B>`Yearly\' Graph \(1 Day'             => '<B>C~ Ϫ (1 ',
     'Incoming Traffic in (\S+) per Second'   => 'CyJq ( $1)',
     'Outgoing Traffic in (\S+) per Second'   => 'CyXq ( $1)',
     'at which time (.*) had been up for(.*)' => ']ƦW $1AwB@ɶ(UPTIME): $2',
     '(.+)/s$'                                => '$1/',
     '(.+)/min$'                              => '$1/',
     '(.+)/h$'                                => '$1/',
    # 'Bits'                                   => 'Bits',
    # 'Bytes'                                  => 'Bytes'
     '&nbsp;In:</FONT>'                       => '&nbsp;yJ:</FONT>',
     '&nbsp;Out:</FONT>'                      => '&nbsp;yX:</FONT>',
     '&nbsp;Percentage</FONT>'                => '&nbsp;ʤ:</FONT>',
     'Ported to OpenVMS Alpha by'             => 'Ө OpenVM Alpha @',
     'Ported to WindowsNT by'                 => 'Ө WindowsNT @',
     'and'                                    => '',
     '^GREEN'                                 => '',
     'BLUE'                                   => 'Ŧ',
     'DARK GREEN'                             => '',
     'MAGENTA'                                => '',
     'AMBER'                                  => '[Ħ'
  );

# maybe expansions with replacement of whitespace would be more appropriate
foreach $i (keys %translations)
{
  if($string=~/$i/)
  { 
    (@dollar)=($string=~/()$i/); # I hope this prevents the autovars
    $string=$translations{$i};  # And it only works from $1-$9
    for($j=1;$dollar[$j];$j++)   # s/// doesn't do any good with saved "$1"-exprs.
    {
      @quux=();
      (@quux)=split(/\$$j/,$string);
      $string=$quux[0].$dollar[$j].$quux[1];
    } ; 
    return $string;
  };
};

%wday =
    (
      'Sunday'    => 'P',        'Sun' => '',
      'Monday'    => 'P@',        'Mon' => '@',
      'Tuesday'   => 'PG',        'Tue' => 'G',
      'Wednesday' => 'PT',        'Wed' => 'T',
      'Thursday'  => 'P|',        'Thu' => '|',
      'Friday'    => 'P',        'Fri' => '',
      'Saturday'  => 'P',        'Sat' => ''

    );

%month =
    (
      'January'   => '@',   'February'  => 'G',    'March'     => 'T',
      'Jan'       => '@',     'Feb'       => 'G',      'Mar'       => 'T',
      'April'     => '|',   'May'       => '',    'June'      => '',
      'Apr'       => '|',     'May'       => '',      'Jun'       => '',
      'July'      => 'C',   'August'    => 'K',    'September' => 'E',
      'Jul'       => 'C',     'Aug'       => 'K',      'Sep'       => 'E',
      'October'   => 'Q',   'November'  => 'Q@',  'December'  => 'QG',
      'Oct'       => 'Q',     'Nov'       => 'Q@',    'Dec'       => 'QG'

    );


  @foo=($string=~/(\S+),\s+(\S+)\s+(\S+)(.*)/);
  if( $wday{$foo[0]} && $month{$foo[2]} )
    {
        @quux=split(/at/,$foo[3]);
	if($foo[3]=~(/(.*)at(.*)/))
      { 
         $foo[3]=$quux[0];
         $foo[4]=$quux[1];
      };
       return "$foo[3] $month{$foo[2]} $foo[1] , $wday{$foo[0]}, $foo[4]";
    };

#
# handle two different time/date formats:  
# return "$wday, $mday $month ".($year+1900)." at $hour:$min";
# return "$wday, $mday $month ".($year+1900)." $hour:$min:$sec GMT";
#

# handle nontranslated strings which ought to be translated
# print STDERR "$_\n" or print DEBUG "not translated $_";
# but then again we might not want/need to translate all strings
  
  return $string;

};