###### PATCHTAG 00 ###################################################
### Chinese/¼òÌ庺×Ö
### => Zhanghui ÕÅ»Ô <zhanghui2@asiainfo.com>
###### PATCHTAG 10 ###################################################
&gb
###### PATCHTAG 20 ###################################################
'gb' => \&gb,
'¼òÌ庺×Ö' => \&gb,
###### PATCHTAG 30 ###################################################
# Chinese/¼òÌ庺×Ö
'gb' =>
"¤¤¤å¤Æ§@ªÌ
<a href=\"http://www.asiainfo.com/~zhanghui\">Hui Zhang</a>
<a href=\"mailto:zhanghui2\@asiainfo.com\"><zhanghui\@asiainfo.com></a>",
###### PATCHTAG 40 ###################################################
$credits::LOCALE{'¼òÌ庺×Ö'}=$credits::LOCALE{'gb'};
###### PATCHTAG 50 ###################################################
# Chinese gb Code
sub gb
{
my $string = shift;
return "" unless defined $string;
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 =
(
'iso-8859-1' => 'gb',
'Maximal 5 Minute Incoming Traffic' => '5·ÖÖÓ×î´óµÄÁ÷Á¿',
'Maximal 5 Minute Outgoing Traffic' => '5·ÖÖÓ×î´óµÄÁ÷³öÁ÷Á¿',
'the device' => 'µ±Ç°É豸',
'The statistics were last updated(.*)' => 'ͳ¼ÆĞÅÏ¢¸üĞÂÓÚ: $1',
' Average\)' => 'ƽ¾ù)',
'Average' => 'ƽ¾ù',
'Max' => '×î´ó',
'Current' => 'µ±Ç°',
'version' => '°æ±¾',
'`Daily\' Graph \((.*) Minute' => 'ÈÕ·ÖÎöͼ($1·ÖÖÓ',
'`Weekly\' Graph \(30 Minute' => 'ÖÜ·ÖÎöͼ(30·ÖÖÓ' ,
'`Monthly\' Graph \(2 Hour' => 'Ô·ÖÎöͼ(2Сʱ',
'`Yearly\' Graph \(1 Day' => 'Äê·ÖÎöͼ(1Ìì',
'Incoming Traffic in (\S+) per Second' => 'ÿÃëµÄÁ÷ÈëÁ÷Á¿(µ¥Î»$1)',
'Outgoing Traffic in (\S+) per Second' => 'ÿÃëµÄÁ÷³öÁ÷Á¿(µ¥Î»$1)',
'at which time (.*) had been up for(.*)' => 'Æäʱ $1ÒѾ¸üĞÂ(UPTIME): $2',
'([kMG]?)([bB])/s' => '$1$2/s',
'([kMG]?)([bB])/min' => '$1$2/m',
'([kMG]?)([bB])/h' => '$1$2/h',
# 'Bits' => 'Bits',
# 'Bytes' => 'Bytes'
'In' => 'Á÷Èë',
'Out' => 'Á÷³ö',
'Percentage' => '°Ù·Ö±È',
'Ported to OpenVMS Alpha by' => 'OpenVMSµÄ¶Ë¿Ú',
'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)
{
my $trans = $translations{$i};
$trans =~ s/\|/\|/;
return $string if eval " \$string =~ s|\${i}|${trans}| ";
};
%wday =
(
'Sunday' => 'ÖÜÈÕ', 'Sun' => 'ÖÜÈÕ',
'Monday' => 'ÖÜÒ»', 'Mon' => 'ÖÜÒ»¤@',
'Tuesday' => 'Öܶş', 'Tue' => 'Öܶş¤G',
'Wednesday' => 'ÖÜÈı', 'Wed' => 'ÖÜÈı¤T',
'Thursday' => 'ÖÜËÄ', 'Thu' => 'ÖÜËÄ¥|',
'Friday' => 'ÖÜÎå', 'Fri' => 'ÖÜÎå',
'Saturday' => 'ÖÜÁù', 'Sat' => 'ÖÜÁù'
);
%month =
(
'January' => '1ÔÂ', 'February' => '2ÔÂ', 'March' => '3ÔÂ',
'Jan' => '1ÔÂ', 'Feb' => '2ÔÂ', 'Mar' => '3ÔÂ',
'April' => '4ÔÂ', 'May' => '5ÔÂ', 'June' => '6ÔÂ',
'Apr' => '4ÔÂ', 'May' => '5ÔÂ', 'Jun' => '6ÔÂ',
'July' => '7ÔÂ', 'August' => '8ÔÂ', 'September' => '9ÔÂ',
'Jul' => '7ÔÂ', 'Aug' => '8ÔÂ', 'Sep' => '9ÔÂ',
'October' => '10ÔÂ', 'November' => '11ÔÂ', 'December' => '12ÔÂ',
'Oct' => '10ÔÂ', 'Nov' => '11ÔÂ', 'Dec' => '12ÔÂ'
);
@foo=($string=~/(\S+),\s+(\S+)\s+(\S+)(.*)/);
if($foo[0] && $wday{$foo[0]} && $foo[2] && $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;
};