X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/51badc960d933f6d0670cc76390c332a31b35d63..d622da057be3fcd3c55ebf8f3651966f7dec668b:/IkiWiki/Plugin/po.pm diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm index 6c6bb2cd1..f25beba72 100644 --- a/IkiWiki/Plugin/po.pm +++ b/IkiWiki/Plugin/po.pm @@ -36,7 +36,6 @@ sub import { hook(type => "filter", id => "po", call => \&filter); hook(type => "htmlize", id => "po", call => \&htmlize); hook(type => "pagetemplate", id => "po", call => \&pagetemplate, last => 1); - hook(type => "postscan", id => "po", call => \&postscan); hook(type => "rename", id => "po", call => \&renamepages, first => 1); hook(type => "delete", id => "po", call => \&mydelete); hook(type => "change", id => "po", call => \&change); @@ -55,8 +54,6 @@ sub import { inject(name => "IkiWiki::targetpage", call => \&mytargetpage); $origsubs{'urlto'}=\&IkiWiki::urlto; inject(name => "IkiWiki::urlto", call => \&myurlto); - $origsubs{'nicepagetitle'}=\&IkiWiki::nicepagetitle; - inject(name => "IkiWiki::nicepagetitle", call => \&mynicepagetitle); $origsubs{'cgiurl'}=\&IkiWiki::cgiurl; inject(name => "IkiWiki::cgiurl", call => \&mycgiurl); } @@ -119,20 +116,6 @@ sub getsetup () { safe => 1, rebuild => 1, }, - po_translation_status_in_links => { - type => "boolean", - example => 1, - description => "display translation status in links to translations", - safe => 1, - rebuild => 1, - }, - po_strictly_refresh_backlinks => { - type => "boolean", - example => 1, - description => "refresh a page when a backlinked page is changed (can hit performance)", - safe => 1, - rebuild => 1, - }, } sub checkconfig () { @@ -169,14 +152,6 @@ sub checkconfig () { warn(gettext('po_link_to=negotiated requires usedirs to be enabled, falling back to po_link_to=default')); $config{po_link_to}='default'; } - if (! exists $config{po_translation_status_in_links} || - ! defined $config{po_translation_status_in_links}) { - $config{po_translation_status_in_links}=1; - } - if (! exists $config{po_strictly_refresh_backlinks} || - ! defined $config{po_strictly_refresh_backlinks}) { - $config{po_strictly_refresh_backlinks}=1; - } push @{$config{wiki_file_prune_regexps}}, qr/\.pot$/; } @@ -316,23 +291,11 @@ sub pagetemplate (@) { } } # }}} -sub postscan (@) { - my %params = @_; - - return unless $config{po_strictly_refresh_backlinks}; - - my $page = $params{page}; - # backlinks involve back-dependencies, so that nicepagetitle effects, - # such as translation status displayed in links, are updated - use IkiWiki::Render; - map add_depends($page, $_), keys %{$IkiWiki::backlinks{$page}}; -} - # Add the renamed page translations to the list of to-be-renamed pages. 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 @@ -342,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; } @@ -480,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."); } @@ -636,18 +600,6 @@ sub myurlto ($$;$) { } } -sub mynicepagetitle ($;$) { - my ($page, $unescaped) = (shift, shift); - - my $res = $origsubs{'nicepagetitle'}->($page, $unescaped); - return $res unless istranslation($page); - return $res unless $config{po_translation_status_in_links}; - my @caller = caller(1); - return $res if (exists $caller[3] && defined $caller[3] - && $caller[3] eq "IkiWiki::Plugin::parentlinks::parentlinks"); - return $res.' ('.percenttranslated($page).' %)'; -} - sub mycgiurl (@) { my %params=@_;