diff options
author | intrigeri <intrigeri@boum.org> | 2010-07-11 11:58:09 +0200 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-07-12 15:40:39 -0400 |
commit | 718d9413fb39db52cff4975dac1c09afc0ca8f79 (patch) | |
tree | 42f7555d206e7103b582ecc0a860297afa8c837d | |
parent | 0eee3fe2a210c0f4ef581259e5e45c49ad1dfada (diff) | |
download | ikiwiki-718d9413fb39db52cff4975dac1c09afc0ca8f79.tar ikiwiki-718d9413fb39db52cff4975dac1c09afc0ca8f79.tar.gz |
po: added an optional target percentage to needstranslation
(cherry picked from commit 98cc9460ac67fee606437712882cfa1e5d259729)
-rw-r--r-- | IkiWiki/Plugin/po.pm | 17 | ||||
-rw-r--r-- | doc/ikiwiki/pagespec/po.mdwn | 5 |
2 files changed, 19 insertions, 3 deletions
diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index 4e6eff94f..903a9500f 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -1249,16 +1249,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"); } } diff --git a/doc/ikiwiki/pagespec/po.mdwn b/doc/ikiwiki/pagespec/po.mdwn index f8b398575..f9956404c 100644 --- a/doc/ikiwiki/pagespec/po.mdwn +++ b/doc/ikiwiki/pagespec/po.mdwn @@ -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`. |