po: added an optional target percentage to needstranslation
authorintrigeri <intrigeri@boum.org>
Sun, 11 Jul 2010 09:58:09 +0000 (11:58 +0200)
committerintrigeri <intrigeri@boum.org>
Sun, 11 Jul 2010 09:58:09 +0000 (11:58 +0200)
IkiWiki/Plugin/po.pm
doc/ikiwiki/pagespec/po.mdwn

index ecfbb6f782552fe57c51628f5f99058333b6e739..9cb047992e724d88eb6d68a339c3e06d435c14ec 100644 (file)
@@ -1287,16 +1287,29 @@ sub match_currentlang ($$;@) {
 
 sub match_needstranslation ($$;@) {
        my $page=shift;
+       my $wanted=shift;
+
+       if (defined $wanted && $wanted ne "") {
+               if ($wanted !~ /^\d+$/) {
+                       return IkiWiki::FailReason->new("parameter is not an integer");
+               }
+               elsif ($wanted > 100) {
+                       return IkiWiki::FailReason->new("parameter is greater than 100");
+                }
+        }
+        else {
+               $wanted=100;
+        }
 
        my $percenttranslated=IkiWiki::Plugin::po::percenttranslated($page);
        if ($percenttranslated eq 'N/A') {
                return IkiWiki::FailReason->new("file is not a translatable page");
        }
-       elsif ($percenttranslated < 100) {
+       elsif ($percenttranslated < $wanted) {
                return IkiWiki::SuccessReason->new("file has $percenttranslated translated");
         }
        else {
-               return IkiWiki::FailReason->new("file is fully translated");
+               return IkiWiki::FailReason->new("file is translated enough");
        }
 }
 
index f8b398575bd56ec952999e97ab3c47435082a225..f9956404ccf35e22510020eeea2aebf3f0be6a64 100644 (file)
@@ -12,7 +12,10 @@ wiki:
 * "`currentlang()`" - tests whether a page is written in the same
   language as the current page.
 * "`needstranslation()`" - tests whether a page needs translation
-  work. Only slave pages match this PageSpec.
+  work. Only slave pages match this PageSpec. A minimum target
+  translation percentage can optionally be passed as an integer
+  parameter: "`needstranslation(50)`" matches only pages less than 50%
+  translated.
 
 Note that every non-po page is considered to be written in
 `po_master_language`, as specified in `ikiwiki.setup`.