Re: Debian WWW CVS commit by tamcap: webwml/english/po templates.pot
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<foo@foobar.com>"
> > it means male-singular
> > and
> > translator="{f}Foo Foobar<foo@foobar.com>"
> > 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/([^@,]+)((?<=<)[^,>]+@[^,>]+(?=>))/<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>
Reply to: