1###### PATCHTAG 00 ################################################### 2### German/Deutsch 3### => Ilja Pavkovic <illsen@gumblfarz.de> 4###### PATCHTAG 10 ################################################### 5 &german 6###### PATCHTAG 20 ################################################### 7 'german' => \&german, 8 'german' => \&german, 9###### PATCHTAG 30 ################################################### 10# German/deutsch 11 'german' => 12 "Vorbereitet für die Lokalisation von 13 <a href=\"http://www.gumblfarz.de/~illsen\">Ilja Pavkovic</a> 14 <a href=\"mailto:illsen\@gumblfarz.de\"><illsen\@gumblfarz.de></a>", 15###### PATCHTAG 40 ################################################### 16$credits::LOCALE{'deutsch'}=$credits::LOCALE{'german'}; 17###### PATCHTAG 50 ################################################### 18# German 19 20sub german 21{ 22 my $string = shift; 23 return "" unless defined $string; 24 my(%translations,%month,%wday); 25 26 my($i,$j); 27 my(@dollar,@quux,@foo); 28 29 30 # regexp => replacement string NOTE does not use autovars $1,$2... 31 # charset=iso-2022-jp 32 33 %translations = 34 ( 35 #'charset=iso-8859-1' => 'charset=iso-8859-1', 36 'Maximal 5 Minute Incoming Traffic' => 'Maximaler hereinkommender Traffic in 5 Minuten', 37 'Maximal 5 Minute Outgoing Traffic' => 'Maximaler hinausgehender Traffic in 5 Minuten', 38 'the device' => 'das Ger�t', 39 'The statistics were last updated(.*)' => 'Die Statistiken wurden am $1 zuletzt aktualisiert', 40 ' Average\)' => '', 41 'Average' => 'Mittel', 42 'Max' => 'Maximal', 43 'Current' => 'Aktuell', 44 'version' => 'Version', 45 '`Daily\' Graph \((.*) Minute' => 'Tagesübersicht (Skalierung $1 Minute(n)', 46 '`Weekly\' Graph \(30 Minute' => 'Wochenübersicht (Skalierung 30 Minuten', 47 '`Monthly\' Graph \(2 Hour' => 'Monatsübersicht (Skalierung 2 Stunden', 48 '`Yearly\' Graph \(1 Day' => 'Jahresübersicht (Skalierung 1 Tag', 49 'Incoming Traffic in (\S+) per Second' => 'Hereinkommender Traffic in $1 pro Sekunde', 50 'Outgoing Traffic in (\S+) per Second' => 'Hinausgehender Traffic in $1 pro Sekunde', 51 'Incoming Traffic in (\S+) per Minute' => 'Hereinkommender Traffic in $1 pro Minute', 52 'Outgoing Traffic in (\S+) per Minute' => 'Hinausgehender Traffic in $1 pro Minute', 53 'Incoming Traffic in (\S+) per Hour' => 'Hereinkommender Traffic in $1 pro Stunde', 54 'Outgoing Traffic in (\S+) per Hour' => 'Hinausgehender Traffic in $1 pro Stunde', 55 'at which time (.*) had been up for(.*)' => 'zu diesem Zeitpunkt lief $1 seit $2', 56 '(\S+) per minute' => '$1 pro Minute', 57 '(\S+) per hour' => '$1 pro Stunde', 58 '(.+)/s$' => '$1/s', 59 # '(.+)/min' => '$1/min', 60 '(.+)/h$' => '$1/std', 61 #'([kMG]?)([bB])/s' => '$1$2/s', 62 #'([kMG]?)([bB])/min' => '$1$2/min', 63 #'([kMG]?)([bB])/h' => '$1$2/std', 64 # 'Bits' => 'Bits', 65 # 'Bytes' => 'Bytes' 66 'In' => 'Herein', 67 'Out' => 'Hinaus', 68 'Percentage' => 'Prozent', 69 'Ported to OpenVMS Alpha by' => 'Portierung nach OpenVMS von', 70 'Ported to WindowsNT by' => 'Portierung nach WindowsNT von', 71 'and' => 'und', 72 '^GREEN' => 'GRÜN', 73 'BLUE' => 'BLAU', 74 'DARK GREEN' => 'DUNKELGRÜN', 75 # 'MAGENTA' => 'ROSA', 76 # 'AMBER' => 'AMBER', 77 ); 78 79# maybe expansions with replacement of whitespace would be more appropriate 80 81foreach $i (keys %translations) 82{ 83 my $trans = $translations{$i}; 84 $trans =~ s/\|/\|/; 85 return $string if eval " \$string =~ s|\${i}|${trans}| "; 86}; 87 88%wday = 89 ( 90 'Sunday' => 'Sonntag', 'Sun' => 'So', 91 'Monday' => 'Montag', 'Mon' => 'Mo', 92 'Tuesday' => 'Dienstag', 'Tue' => 'Di', 93 'Wednesday' => 'Mittwoch', 'Wed' => 'Mi', 94 'Thursday' => 'Donnerstag', 'Thu' => 'Do', 95 'Friday' => 'Freitag', 'Fri' => 'Fr', 96 'Saturday' => 'Samstag', 'Sat' => 'Sa' 97 ); 98 99%month = 100 ( 101 'January' => 'Januar', 'February' => 'Februar' , 'March' => 'März', 102 'Jan' => 'Jan', 'Feb' => 'Feb', 'Mar' => 'Mär', 103 'April' => 'April', 'May' => 'Mai', 'June' => 'Juni', 104 'Apr' => 'Apr', 'May' => 'Mai', 'Jun' => 'Jun', 105 'July' => 'Juli', 'August' => 'August', 'September' => 'September', 106 'Jul' => 'Jul', 'Aug' => 'Aug', 'Sep' => 'Sep', 107 'October' => 'Oktober', 'November' => 'November', 'December' => 'Dezember', 108 'Oct' => 'Okt', 'Nov' => 'Nov', 'Dec' => 'Dez' 109 ); 110 111 @foo=($string=~/(\S+),\s+(\S+)\s+(\S+)(.*)/); 112 if($foo[0] && $wday{$foo[0]} && $foo[2] && $month{$foo[2]} ) 113 { 114 if($foo[3]=~(/(.*)at(.*)/)) 115 { 116 @quux=split(/at/,$foo[3]); 117 $foo[3]=$quux[0]." um ".$quux[1]; 118 }; 119 return "$wday{$foo[0]}, den $foo[1]. $month{$foo[2]} $foo[3]"; 120 }; 121 122# 123# handle two different time/date formats: 124# return "$wday, $mday $month ".($year+1900)." at $hour:$min"; 125# return "$wday, $mday $month ".($year+1900)." $hour:$min:$sec GMT"; 126# 127 128# handle nontranslated strings which ought to be translated 129# print STDERR "$_\n" or print DEBUG "not translated $_"; 130# but then again we might not want/need to translate all strings 131 132 return $string; 133 134}; 135 136 137 138