X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/ea753782b222bf4ba2fb4683b6363afdd9055b64..1bf21d2a375c7cf29c6e6436e253cf715717919c:/IkiWiki/Plugin/po.pm diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index 9a3df79ac..f25beba72 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -295,7 +295,7 @@ sub pagetemplate (@) { sub renamepages(@) { my %params = @_; - my @torename = @{$params{torename}}; + my %torename = %{$params{torename}}; my $session = $params{session}; # Save the page(s) the user asked to rename, so that our @@ -305,24 +305,25 @@ sub renamepages(@) { # - a user trying to directly rename a translation # This is why this hook has to be run first, before the list of pages # to rename is modified by other plugins. - $session->param(po_orig_torename => \@torename); + my @orig_torename; + @orig_torename=@{$session->param("po_orig_torename")} + if defined $session->param("po_orig_torename"); + push @orig_torename, $torename{src}; + $session->param(po_orig_torename => \@orig_torename); IkiWiki::cgi_savesession($session); - my @ret=@torename; - # iterate on @torename and push onto @ret, so that we don't iterate - # on the items we added ourselves - foreach my $rename (@torename) { - next unless istranslatable($rename->{src}); - my %otherpages=%{otherlanguages($rename->{src})}; - while (my ($lang, $otherpage) = each %otherpages) { - push @ret, { - src => $otherpage, - srcfile => $pagesources{$otherpage}, - dest => otherlanguage($rename->{dest}, $lang), - destfile => $rename->{dest}.".".$lang.".po", - required => 0, - }; - } + return () unless istranslatable($torename{src}); + + my @ret; + my %otherpages=%{otherlanguages($torename{src})}; + while (my ($lang, $otherpage) = each %otherpages) { + push @ret, { + src => $otherpage, + srcfile => $pagesources{$otherpage}, + dest => otherlanguage($torename{dest}, $lang), + destfile => $torename{dest}.".".$lang.".po", + required => 0, + }; } return @ret; } @@ -443,7 +444,7 @@ sub canrename (@) { # by looking for the master page in the list of to-be-renamed pages we # saved early in the renaming process. my $orig_torename = $session->param("po_orig_torename"); - unless (grep { $_->{src} eq $masterpage } @{$orig_torename}) { + unless (grep { $_ eq $masterpage } @{$orig_torename}) { return gettext("Can not rename a translation. Renaming the master page, ". "though, renames its translations as well."); }