###### PATCHTAG00 #################################################### ### Russian1251/Русский1251 ### => Александр Редюк ###### PATCHTAG10 #################################################### &russian1251 ###### PATCHTAG20 #################################################### 'russian1251' => \&russian1251, 'Русский1251' => \&russian1251, ###### PATCHTAG30 #################################################### # Russian1251/Русский1251 'russian1251' => "Перевод на русский язык (кодировка 1251): Александр Редюк <aredyuk\@irmcity.com>", ###### PATCHTAG40 #################################################### $credits::LOCALE{'Русский1251'}=$credits::LOCALE{'russian1251'}; ###### PATCHTAG50 #################################################### # Russian1251 Code sub russian1251 { 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' => 'windows-1251', '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 (\S+) had been up for (\S+)' => 'время после инициализации устройства $1: $2.', 'at which time (\S+) had been up for (\S+) day, (\S+)' => 'время после инициализации устройства $1: $2 сутки, $3.', 'at which time (\S+) had been up for (\S+) days, (\S+)' => 'время после инициализации устройства $1: $2 суток, $3.', #'([kMG]?)([bB])/s' => '$1$1/сек', #'([kMG]?)([bB])/min' => '$1$2/мин', '([kMG]?)([bB])/h' => '$1$2/час', 'Bits' => 'битах', 'Bytes' => 'байтах', 'In' => 'Вх', 'Out' => 'Исх', 'Percentage' => 'Проценты', 'Ported to OpenVMS Alpha by' => 'Адаптировано для OpenVMS 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) { my $trans = $translations{$i}; $trans =~ s/\|/\|/; return $string if eval " \$string =~ s|\${i}|${trans}| "; }; %wday = ( 'Sunday' => ' Воскресенье', 'Sun' => 'Вс', 'Monday' => ' Понедельник', 'Mon' => 'Пн', 'Tuesday' => ' Вторник', 'Tue' => 'Вт', 'Wednesday' => ' Среда', 'Wed' => 'Ср', 'Thursday' => ' Четверг', 'Thu' => 'Чт', 'Friday' => ' Пятница', 'Fri' => 'Пт', 'Saturday' => ' Суббота', 'Sat' => 'Сб' ); %month = ( 'January' => 'Января', 'February' => 'Февраля' , 'March' => 'Марта', 'Jan' => 'Янв', 'Feb' => 'Фев', 'Mar' => 'Мар', 'April' => 'Апреля', 'May' => 'Мая', 'June' => 'Июня', 'Apr' => 'Апр', 'May' => 'Мая', 'Jun' => 'Июн', 'July' => 'Июля', 'August' => 'Августа', 'September' => 'Сентября', 'Jul' => 'Июл', 'Aug' => 'Авг', 'Sep' => 'Сен', 'October' => 'Октября', 'November' => 'Ноября', 'December' => 'Декабря', 'Oct' => 'Окт', 'Nov' => 'Ноя', 'Dec' => 'Дек' ); @foo=($string=~/(\S+),\s+(\S+)\s+(\S+)(.*)/); if($foo[0] && $wday{$foo[0]} && $foo[2] && $month{$foo[2]} ) { if($foo[3]=~(/(.*)at(.*)/)) { @quux=split(/at/,$foo[3]); $foo[3]=$quux[0]."г. в ".$quux[1]; }; return "$wday{$foo[0]} $foo[1] $month{$foo[2]} $foo[3]"; }; # # 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; };