From: intrigeri Date: Tue, 14 Oct 2008 23:23:19 +0000 (+0200) Subject: po plugin: added currentlang() custom PageSpec function X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/commitdiff_plain/886731612504bd4ac70244497b3313a20b7b6049 po plugin: added currentlang() custom PageSpec function Signed-off-by: intrigeri --- diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index 05e57fab4..aa592989b 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -394,4 +394,34 @@ sub match_lang ($$;@) { #{{{ } } #}}} +sub match_currentlang ($$;@) { #{{{ + my $page=shift; + shift; + my %params=@_; + my ($currentmasterpage, $currentlang, $masterpage, $lang); + + return IkiWiki::FailReason->new("no location provided") unless exists $params{location}; + + if (IkiWiki::Plugin::po::istranslation($params{location})) { + ($currentmasterpage, $currentlang) = ($params{location} =~ /(.*)[.]([a-z]{2})$/); + } + else { + $currentlang = $config{po_master_language}{code}; + } + + if (IkiWiki::Plugin::po::istranslation($page)) { + ($masterpage, $lang) = ($page =~ /(.*)[.]([a-z]{2})$/); + } + else { + $lang = $config{po_master_language}{code}; + } + + if ($lang eq $currentlang) { + return IkiWiki::SuccessReason->new("file language is the same as current one, i.e. $currentlang"); + } + else { + return IkiWiki::FailReason->new("file language is $lang, whereas current language is $currentlang"); + } +} #}}} + 1