[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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/'([^',]+)'/&laquo; $1 &raquo;/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: