iso2022jp.pmd
上传用户:shbosideng
上传日期:2013-05-04
资源大小:1555k
文件大小:6k
源码类别:

SNMP编程

开发平台:

C/C++

  1. ###### PATCHTAG00 ####################################################
  2. ###      $BF|K8l(B(ISO-2022-JP)
  3. ###      => Fuminori Uematsu <uematsu@kgz.com>
  4. ###### PATCHTAG10 ####################################################
  5.   &iso2022jp
  6. ###### PATCHTAG20 ####################################################
  7.   'iso2022jp'    => &iso2022jp,
  8.   'iso-2022-jp'  => &iso2022jp, 
  9. ###### PATCHTAG30 ####################################################
  10. # iso2022jp/iso-2022-jp
  11.    'iso2022jp' =>
  12.    "e$BF|K\8lLue(B(ISO-2022-JP)e$B:n@.e(B
  13. <a href="http://www.kgz.com/~uematsu/">e$B?">>e(B e$BJ8FAe(B</a>
  14. <a href="mailto:uematsu@kgz.com">&lt;uematsu@kgz.com&gt;</a>",
  15. ###### PATCHTAG40 ####################################################
  16. $credits::LOCALE{'iso-2022-jp'}=$credits::LOCALE{'iso2022jp'};
  17. ###### PATCHTAG50 ####################################################
  18. # iso2022jp
  19. sub iso2022jp
  20. {
  21.   my $string = shift;
  22.   return "" unless defined $string;
  23.   my(%translations,%month,%wday);
  24.   my($i,$j);
  25.   my(@dollar,@quux,@foo);
  26.   
  27.   # regexp => replacement string NOTE does not use autovars $1,$2...
  28.   # charset=iso-2022-jp
  29.   %translations =
  30.   (  
  31.      '^iso-8859-1'                            => 'iso-2022-jp',
  32.      '^Maximal 5 Minute Incoming Traffic'     => 'e\$B:GBge(B5e\$BJ,<u?.NLe(B',
  33.      '^Maximal 5 Minute Outgoing Traffic'     => 'e\$B:GBge(B5e\$BJ,Aw?.NLe(B',
  34.      '^the device'                            => 'e\$B%G%P%\$%9e(B',
  35.      '^The statistics were last updated (.*)' => 'e\$B99?7F|;~e(B $1',
  36.      '^Average)'                             => 'e\$BJ?6Qe(B)',
  37.      '^Average$'                              => 'e\$BJ?6Qe(B',
  38.      '^Max$'                                  => 'e\$B:GBge(B',
  39.      '^Current'                               => 'e\$B:G?7e(B',
  40.      '^`Daily' Graph ((.*) Minute'          => 'e\$BF|%0%i%Ue(B($1e\$BJ,4Ve(B',
  41.      '^`Weekly' Graph (30 Minute'           => 'e\$B=5%0%i%Ue(B(30e\$BJ,4Ve(B',
  42.      '^`Monthly' Graph (2 Hour'             => 'e\$B7n%0%i%Ue(B(2e\$B;~4Ve(B',
  43.      '^`Yearly' Graph (1 Day'               => 'e\$BG/%0%i%Ue(B(1e\$BF|e(B',
  44.      '^Incoming Traffic in (S+) per Second'  => 'e\$BKhIC\$N<u?.e(B$1e\$B?te(B',
  45.      '^Incoming Traffic in (S+) per Minute'  => 'e\$BKhJ,\$N<u?.e(B$1e\$B?te(B',
  46.      '^Incoming Traffic in (S+) per Hour'    => 'e\$BKh;~\$N<u?.e(B$1e\$B?te(B',
  47.      '^Outgoing Traffic in (S+) per Second'  => 'e\$BKhIC\$NAw?.e(B$1e\$B?te(B',
  48.      '^Outgoing Traffic in (S+) per Minute'  => 'e\$BKhJ,\$NAw?.e(B$1e\$B?te(B',
  49.      '^Outgoing Traffic in (S+) per Hour'    => 'e\$BKh;~\$NAw?.e(B$1e\$B?te(B',
  50.      '^at which time (.*) had been up for (.*)' => '$1e\$B\$N2TF/;~4Ve(B $2',
  51.      '^Average max 5 min values for `Daily' Graph ((.*) Minute interval):' => 'e\$BF|%0%i%U\$G\$N:GBge(B5e\$BJ,CM\$NJ?6Qe(B($1e\$BJ,4V3Ve(B):',
  52.      '^Average max 5 min values for `Weekly' Graph (30 Minute interval):' => 'e\$B=5%0%i%U\$G\$N:GBge(B5e\$BJ,CM\$NJ?6Qe(B(30e\$BJ,4V3Ve(B):',
  53.      '^Average max 5 min values for `Monthly' Graph (2 Hour interval):' => 'e\$B7n%0%i%U\$G\$N:GBge(B5e\$BJ,CM\$NJ?6Qe(B(2e\$B;~4V4V3Ve(B):',
  54.      '^Average max 5 min values for `Yearly' Graph (1 Day interval):' => 'e\$BG/%0%i%U\$G\$N:GBge(B5e\$BJ,CM\$NJ?6Qe(B(1e\$BF|4V3Ve(B):',
  55.      #'^([kMG]?)([bB])/s'                      => '$1$2/e\$BICe(B',
  56.      #'^([kMG]?)([bB])/min'                    => '$1$2/e\$BJ,e(B',
  57.      #'^([kMG]?)([bB])/h'                      => '$1$2/e\$B;~e(B',
  58.      '^Bits$'                                 => 'e\$B%S%C%He(B',
  59.      '^Bytes$'                                => 'e\$B%P%\$%He(B',
  60.      '^In$'                                   => 'e\$B<u?.e(B',
  61.      '^Out$'                                  => 'e\$BAw?.e(B',
  62.      '^Percentage'                            => 'e\$BHfN(e(B',
  63.      '^Ported to OpenVMS Alpha by'            => 'OpenVMS Alphae\$B\$X\$N0\?"e(B',
  64.      '^Ported to WindowsNT by'                => 'WindowsNTe\$B\$X\$N0\?"e(B',
  65.      #'^and'                                   => 'and',
  66.      '^GREEN'                                 => 'e\$BNPe(B',
  67.      '^BLUE'                                  => 'e\$B\@De(B',
  68.      '^DARK GREEN'                            => 'e\$B?<NPe(B',
  69.      '^MAGENTA'                               => 'e\$B%^%<%s%?e(B',
  70.      '^AMBER'                                 => 'e\$B`h`ae(B'
  71.   );
  72. # maybe expansions with replacement of whitespace would be more appropriate
  73. foreach $i (keys %translations)
  74. {  
  75.   my $trans = $translations{$i};
  76.   $trans =~ s/|/\|/;  
  77.   return $string if eval " $string =~ s|${i}|${trans}| ";
  78. };
  79. %wday = 
  80.     (
  81.       'Sunday'    => "(e$BF|e(B)",
  82.       'Monday'    => "(e$B7ne(B)",
  83.       'Tuesday'   => "(e$B2Pe(B)",
  84.       'Wednesday' => "(e$B?ee(B)",
  85.       'Thursday'  => "(e$BLZe(B)",
  86.       'Friday'    => "(e$B6be(B)",
  87.       'Saturday'  => "(e$BEZe(B)",
  88.     );
  89. %month = 
  90.     (
  91.       'January'   => "1e$B7ne(B",    'February' => "2e$B7ne(B",
  92.       'March'     => "3e$B7ne(B",    'April'    => "4e$B7ne(B",
  93.       'May'       => "5e$B7ne(B",    'June'     => "6e$B7ne(B",
  94.       'July'      => "7e$B7ne(B",    'August'   => "8e$B7ne(B",
  95.       'September' => "9e$B7ne(B",    'October'  => "10e$B7ne(B",
  96.       'November'  => "11e$B7ne(B",   'December' => "12e$B7ne(B",
  97.     );
  98.   @foo=($string=~/(S+),s+(S+)s+(S+)s+(.*)/);
  99.   if($foo[0] && $wday{$foo[0]} && $foo[2] && $month{$foo[2]} )
  100.     {
  101. if($foo[3]=~/at/)
  102.       { 
  103.         @quux=split(/s+ats+/,$foo[3]);
  104.       }
  105. else
  106.       { 
  107.         @quux=split(/ /,$foo[3],2);
  108.       };
  109.       return "$quux[0]e$BG/e(B$month{$foo[2]}$foo[1]e$BF|e(B$wday{$foo[0]} $quux[1]"; 
  110.     };
  111. #
  112. # handle two different time/date formats:  
  113. # return "$wday, $mday $month ".($year+1900)." at $hour:$min";
  114. # return "$wday, $mday $month ".($year+1900)." $hour:$min:$sec GMT";
  115. #
  116. # handle nontranslated strings which ought to be translated
  117. # print STDERR "$_n" or print DEBUG "not translated $_";
  118. # but then again we might not want/need to translate all strings
  119.   
  120.   return $string;
  121. };