diff options
Diffstat (limited to 'IkiWiki/Plugin')
-rw-r--r-- | IkiWiki/Plugin/po.pm | 30 |
1 files changed, 30 insertions, 0 deletions
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 |