Dnia wto 22. lipca 2003 12:52, Josip Rodin napisał: > On Tue, Jul 22, 2003 at 12:17:36PM +0200, Marek Łaska wrote: > > translator="{m}Foo Foobar<[EMAIL PROTECTED]>" > > it means male-singular > > and > > translator="{f}Foo Foobar<[EMAIL PROTECTED]>" > > means female-singular. > > Yeah, I guess. {m} can be the default if unspecified. So. Patch included. There is no need actually to write {m}, only {f} if needed, all this singular & plural stuff is done automagically. Right now there are four options: singular unisex (def. male) singular female: {f} plural unisex: comma(s) in the string plural female: {f} + comma(s) in the string Anyone needs anything more ;) ? I've also changed the main script, comments welcome. Greetings Marek "TamCaP" Łaska
--- footer.wml Tue Jul 29 01:55:39 2003 +++ foot.wml Tue Jul 29 01:54:56 2003 @@ -29,71 +29,64 @@ <gettext><void id="plural" />This issue of Debian Weekly News was translated by %s.</gettext> </define-tag> +<define-tag translator_singular_female whitespace=delete> +# One female translator only + <gettext><void id="singular" />This issue of Debian Weekly News was translated by %s.</gettext> +</define-tag> + +<define-tag translator_plural_female whitespace=delete> +# Two ore more female translators + <gettext><void id="plural" />This issue of Debian Weekly News was translated by %s.</gettext> +</define-tag> + <define-tag translator whitespace=delete> <:{ my $translator = '$(translator)'; my $plural = 0; - my $email = ""; - my $name = ""; - my $translators = ""; - my $last = -2; - my $p = 0; - my $next = 0; - my $is_over = 0; + my $female = 0; if (length ($translator)) { - $translator =~ s/\(at\)/@/; - $plural = 1 if $translator =~ /,/; - do { - $email=""; - $name=""; - $translators=$translators."," unless ($last == -2); - $p = index($translator,"<",$last); - $next = index($translator,",",$last+1); - if ($p>$next and $next != -1){$is_over=1;}else{$is_over=0;} - $email = substr($translator,$p+1,index($translator,">",$p)-($p+1)) unless (index($translator,">",$p)==-1) or ($p==-1) or ($is_over); - $name = substr($translator,$last+2,$p-$last-2) unless ($p==-1) or ($is_over); - $name = substr($translator,$last+2,$next-$last-2) if ($p==-1 and $next !=-1) or ($is_over); - $name = substr($translator,$last+2) if ($p==-1) and ($next == -1); - if (length ($email)){ - $translators = $translators.'<a href="mailto:'.$email.'">'."$name</a>"; - }else{$translators = $translators.$name;} - $last = index($translator,",",$last+1); - }until ($last == -1); - if ($CUR_ISO_LANG eq 'en') { - $translators =~ s/,([^,]+)$/ and $1/; - $translators =~ s/,/, /g; - } elsif ($CUR_ISO_LANG eq 'de') { - $translators =~ s/,([^,]+)$/ und $1/; - $translators =~ s/,/, /g; - } elsif ($CUR_ISO_LANG eq 'sv') { - $translators =~ s/,([^,]+)$/ och $1/; - $translators =~ s/,/, /g; - $translators =~ s/'/"/g; - } elsif ($CUR_ISO_LANG eq 'no' || $CUR_ISO_LANG eq 'da') { - $translators =~ s/,([^,]+)$/ og $1/; - $translators =~ s/,/, /g; - } elsif ($CUR_ISO_LANG eq 'hr') { - $translators =~ s/,([^,]+)$/ i $1/; - $translators =~ s/,/, /g; - $translators =~ s/'/"/g; - } elsif ($CUR_ISO_LANG eq 'fr') { - $translators =~ s/,([^,]+)$/ et $1/; + $plural = 1 if $translator =~ /,/; + $female = 1 if $translator =~ /\{f\}/; + $_ = $translator; + s/\{f\}//; + s/([^@,]+)((?<=<)[^,>[EMAIL PROTECTED],>]+(?=>))/<a href=mailto:'$2'>$1\/a/g; + $translator = $_; + if ($CUR_ISO_LANG eq 'en') { + $translator =~ s/,([^,]+)$/ and $1/; + $translator =~ s/,/, /g; + } elsif ($CUR_ISO_LANG eq 'de') { + $translator =~ s/,([^,]+)$/ und $1/; + $translator =~ s/,/, /g; + } elsif ($CUR_ISO_LANG eq 'sv') { + $translator =~ s/,([^,]+)$/ och $1/; + $translator =~ s/,/, /g; + $translator =~ s/'/"/g; + } elsif ($CUR_ISO_LANG eq 'no' || $CUR_ISO_LANG eq 'da') { + $translator =~ s/,([^,]+)$/ og $1/; + $translator =~ s/,/, /g; + } elsif ($CUR_ISO_LANG eq 'hr') { + $translator =~ s/,([^,]+)$/ i $1/; + $translator =~ s/,/, /g; + $translator =~ s/'/"/g; + $translators =~ s/,([^,]+)$/ et $1/; $translators =~ s/,/, /g; $translators =~ s/'([^',]+)'/« $1 »/g; - } elsif ($CUR_ISO_LANG eq 'ru') { - $translators =~ s/,([^,]+)$/ É $1/; - $translators =~ s/,/, /g; + } elsif ($CUR_ISO_LANG eq 'ru') { + $translator =~ s/,([^,]+)$/ É $1/; + $translator =~ s/,/, /g; } elsif ($CUR_ISO_LANG eq 'pl') { - $translators =~ s/,([^,]+)$/ i $1/; - $translators =~ s/,/, /g; - } else { + $translator =~ s/,([^,]+)$/ i $1/; + $translator =~ s/,/, /g; + } else { # Fallback to the english style if there's no translation yet - $translators =~ s/,([^,]+)$/ and $1/; - $translators =~ s/,/, /g; - } - printf "<br>"; - printf q{<translator_singular>}, $translators unless $plural; - printf q{<translator_plural>}, $translators if $plural;} + $translator =~ s/,([^,]+)$/ and $1/; + $translator =~ s/,/, /g; + } + printf "<br>"; + printf q{<translator_singular>}, $translator unless $plural and $female; + printf q{<translator_plural>}, $translator if $plural and $female==0; + printf q{<translator_singular_female>}, $translator if $plural==0 and $female; + printf q{<translator_plural_female>}, $translator if $plural and $female;} }:> </define-tag>