summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Plugin/po.pm30
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