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&uuml;r die Lokalisation von
13				<a href=\"http://www.gumblfarz.de/~illsen\">Ilja Pavkovic</a>
14				<a href=\"mailto:illsen\@gumblfarz.de\">&lt;illsen\@gumblfarz.de&gt;</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&uuml;bersicht (Skalierung $1 Minute(n)',
46     '`Weekly\' Graph \(30 Minute'            => 'Wochen&uuml;bersicht (Skalierung 30 Minuten',
47     '`Monthly\' Graph \(2 Hour'              => 'Monats&uuml;bersicht (Skalierung 2 Stunden',
48     '`Yearly\' Graph \(1 Day'                => 'Jahres&uuml;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&Uuml;N',
73     'BLUE'                                   => 'BLAU',
74     'DARK GREEN'                             => 'DUNKELGR&Uuml;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&auml;rz',
102      'Jan'       => 'Jan',       'Feb'       => 'Feb',         'Mar'       => 'M&auml;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