From d4c61b72813b880d86b316770f2e3819a6428202 Mon Sep 17 00:00:00 2001 From: joey Date: Thu, 15 Feb 2007 02:22:08 +0000 Subject: [PATCH] * Many changes to make ikiwiki very resistant to write failures including out of disk space situations. ikiwiki should never leave truncated files, and if the error occurs during a web-based file edit, the user will be given an opportunity to retry. Inspired by the many ways Moin Moin destroys itself when out of disk. :-) * Fix syslogging of errors. --- IkiWiki.pm | 56 +++++++++++++++++++++++----------- IkiWiki/CGI.pm | 29 +++++++++++++++--- IkiWiki/Plugin/aggregate.pm | 13 +++++--- IkiWiki/Plugin/passwordauth.pm | 3 +- IkiWiki/Plugin/search.pm | 28 +++++++++++------ IkiWiki/Render.pm | 34 ++++++++++++--------- IkiWiki/UserInfo.pm | 11 +++++-- debian/changelog | 10 ++++-- doc/plugins/write.mdwn | 16 +++++++--- po/bg.po | 56 +++++++++++++++++----------------- po/cs.po | 56 +++++++++++++++++----------------- po/es.po | 56 +++++++++++++++++----------------- po/fr.po | 56 +++++++++++++++++----------------- po/gu.po | 56 +++++++++++++++++----------------- po/ikiwiki.pot | 56 +++++++++++++++++----------------- po/pl.po | 56 +++++++++++++++++----------------- po/sv.po | 56 +++++++++++++++++----------------- po/vi.po | 56 +++++++++++++++++----------------- templates/editpage.tmpl | 12 ++++++++ 19 files changed, 404 insertions(+), 312 deletions(-) diff --git a/IkiWiki.pm b/IkiWiki.pm index b605ac370..8f037ed04 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -28,7 +28,8 @@ my $installdir=''; # INSTALLDIR_AUTOREPLACE done by Makefile, DNE our $version='unknown'; # VERSION_AUTOREPLACE done by Makefile, DNE sub defaultconfig () { #{{{ - wiki_file_prune_regexps => [qr/\.\./, qr/^\./, qr/\/\./, qr/\.x?html?$/, + wiki_file_prune_regexps => [qr/\.\./, qr/^\./, qr/\/\./, + qr/\.x?html?$/, qr/\.ikiwiki-new$/, qr/(^|\/).svn\//, qr/.arch-ids\//, qr/{arch}\//], wiki_link_regexp => qr/\[\[(?:([^\]\|]+)\|)?([^\s\]]+)\]\]/, wiki_file_regexp => qr/(^[-[:alnum:]_.:\/+]+$)/, @@ -142,14 +143,19 @@ sub loadplugin ($) { #{{{ } } #}}} -sub error ($) { #{{{ +sub error ($;$) { #{{{ + my $message=shift; + my $cleaner=shift; if ($config{cgi}) { print "Content-type: text/html\n\n"; print misctemplate(gettext("Error"), - "

".gettext("Error").": @_

"); + "

".gettext("Error").": $message

"); } - log_message(error => @_); - exit(1); + log_message(debug => $message) if $config{syslog}; + if (defined $cleaner) { + $cleaner->(); + } + die $message."\n"; } #}}} sub debug ($) { #{{{ @@ -246,7 +252,7 @@ sub readfile ($;$$) { #{{{ binmode(IN) if ($binary); return \*IN if $wantfd; my $ret=; - close IN; + close IN || error("failed to read $file: $!"); return $ret; } #}}} @@ -255,7 +261,7 @@ sub writefile ($$$;$$) { #{{{ my $destdir=shift; # directory to put file in my $content=shift; my $binary=shift; - my $wantfd=shift; + my $writer=shift; my $test=$file; while (length $test) { @@ -264,8 +270,12 @@ sub writefile ($$$;$$) { #{{{ } $test=dirname($test); } + my $newfile="$destdir/$file.ikiwiki-new"; + if (-l $newfile) { + error("cannot write to a symlink ($newfile)"); + } - my $dir=dirname("$destdir/$file"); + my $dir=dirname($newfile); if (! -d $dir) { my $d=""; foreach my $s (split(m!/+!, $dir)) { @@ -275,12 +285,19 @@ sub writefile ($$$;$$) { #{{{ } } } - - open (OUT, ">$destdir/$file") || error("failed to write $destdir/$file: $!"); + + my $cleanup = sub { unlink($newfile) }; + open (OUT, ">$newfile") || error("failed to write $newfile: $!", $cleanup); binmode(OUT) if ($binary); - return \*OUT if $wantfd; - print OUT $content; - close OUT; + if ($writer) { + $writer->(\*OUT, $cleanup); + } + else { + print OUT $content || error("failed writing to $newfile: $!", $cleanup); + } + close OUT || error("failed saving $newfile: $!", $cleanup); + rename($newfile, "$destdir/$file") || + error("failed renaming $newfile to $destdir/$file: $!", $cleanup); } #}}} my %cleared; @@ -577,7 +594,7 @@ sub lockwiki () { #{{{ debug("wiki seems to be locked, waiting for lock"); my $wait=600; # arbitrary, but don't hang forever to # prevent process pileup - for (1..600) { + for (1..$wait) { return if flock(WIKILOCK, 2 | 4); sleep 1; } @@ -626,8 +643,9 @@ sub saveindex () { #{{{ if (! -d $config{wikistatedir}) { mkdir($config{wikistatedir}); } - open (OUT, ">$config{wikistatedir}/index") || - error("cannot write to $config{wikistatedir}/index: $!"); + my $newfile="$config{wikistatedir}/index.new"; + my $cleanup = sub { unlink($newfile) }; + open (OUT, ">$newfile") || error("cannot write to $newfile: $!", $cleanup); foreach my $page (keys %oldpagemtime) { next unless $oldpagemtime{$page}; my $line="mtime=$oldpagemtime{$page} ". @@ -639,9 +657,11 @@ sub saveindex () { #{{{ if (exists $depends{$page}) { $line.=" depends=".encode_entities($depends{$page}, " \t\n"); } - print OUT $line."\n"; + print OUT $line."\n" || error("failed writing to $newfile: $!", $cleanup); } - close OUT; + close OUT || error("failed saving to $newfile: $!", $cleanup); + rename($newfile, "$config{wikistatedir}/index") || + error("failed renaming $newfile to $config{wikistatedir}/index", $cleanup); } #}}} sub template_file ($) { #{{{ diff --git a/IkiWiki/CGI.pm b/IkiWiki/CGI.pm index 6c489df8d..973053427 100644 --- a/IkiWiki/CGI.pm +++ b/IkiWiki/CGI.pm @@ -252,12 +252,15 @@ sub cgi_prefs ($$) { #{{{ elsif ($form->submitted eq 'Save Preferences' && $form->validate) { foreach my $field (qw(email subscriptions)) { if (defined $form->field($field) && length $form->field($field)) { - userinfo_set($user_name, $field, $form->field($field)) || error("failed to set $field"); + userinfo_set($user_name, $field, $form->field($field)) || + error("failed to set $field"); } } if (is_admin($user_name)) { set_banned_users(grep { ! is_admin($_) } - split(' ', $form->field("banned_users"))); + split(' ', + $form->field("banned_users"))) || + error("failed saving changes"); } $form->text(gettext("Preferences saved.")); } @@ -487,7 +490,25 @@ sub cgi_editpage ($$) { #{{{ $content=~s/\r\n/\n/g; $content=~s/\r/\n/g; - writefile($file, $config{srcdir}, $content); + + $config{cgi}=0; # avoid cgi error message + eval { writefile($file, $config{srcdir}, $content) }; + $config{cgi}=1; + if ($@) { + $form->field(name => "rcsinfo", value => rcs_prepedit($file), + force => 1); + $form->tmpl_param("failed_save", 1); + $form->tmpl_param("error_message", $@); + $form->field("editcontent", value => $content, force => 1); + $form->field(name => "comments", value => $form->field('comments'), force => 1); + $form->field("do", "edit)"); + $form->tmpl_param("page_select", 0); + $form->field(name => "page", type => 'hidden'); + $form->field(name => "type", type => 'hidden'); + $form->title(sprintf(gettext("editing %s"), $page)); + print $form->render(submit => \@buttons); + return; + } if ($config{rcs}) { my $message=""; @@ -616,7 +637,7 @@ sub cgi (;$$) { #{{{ email => "", password => "", regdate => time, - }); + }) || error("failed adding user"); } } } diff --git a/IkiWiki/Plugin/aggregate.pm b/IkiWiki/Plugin/aggregate.pm index 7fceb0df3..a6f850236 100644 --- a/IkiWiki/Plugin/aggregate.pm +++ b/IkiWiki/Plugin/aggregate.pm @@ -153,8 +153,11 @@ sub loadstate () { #{{{ sub savestate () { #{{{ eval q{use HTML::Entities}; error($@) if $@; - open (OUT, ">$config{wikistatedir}/aggregate" || - die "$config{wikistatedir}/aggregate: $!"); + my $newfile="$config{wikistatedir}/aggregate.new"; + # TODO: This cleanup function could use improvement. Any newly + # aggregated files are left behind unrecorded, and should be deleted. + my $cleanup = sub { unlink($newfile) }; + open (OUT, ">$newfile") || error("open $newfile: $!", $cleanup); foreach my $data (values %feeds, values %guids) { if ($data->{remove}) { if ($data->{name}) { @@ -188,9 +191,11 @@ sub savestate () { #{{{ push @line, "$field=".$data->{$field}; } } - print OUT join(" ", @line)."\n"; + print OUT join(" ", @line)."\n" || error("write $newfile: $!", $cleanup); } - close OUT; + close OUT || error("save $newfile: $!", $cleanup); + rename($newfile, "$config{wikistatedir}/aggregate") || + error("rename $newfile: $!", $cleanup); } #}}} sub expire () { #{{{ diff --git a/IkiWiki/Plugin/passwordauth.pm b/IkiWiki/Plugin/passwordauth.pm index 6d395324e..e0aa72a19 100644 --- a/IkiWiki/Plugin/passwordauth.pm +++ b/IkiWiki/Plugin/passwordauth.pm @@ -187,7 +187,8 @@ sub formbuilder (@) { #{{{ my $user_name=$form->field('name'); foreach my $field (qw(password)) { if (defined $form->field($field) && length $form->field($field)) { - IkiWiki::userinfo_set($user_name, $field, $form->field($field)) || error("failed to set $field"); + IkiWiki::userinfo_set($user_name, $field, $form->field($field)) || + error("failed to set $field"); } } } diff --git a/IkiWiki/Plugin/search.pm b/IkiWiki/Plugin/search.pm index 1b5c66716..d35c33e76 100644 --- a/IkiWiki/Plugin/search.pm +++ b/IkiWiki/Plugin/search.pm @@ -89,14 +89,20 @@ sub estcfg () { #{{{ my $estdir="$config{wikistatedir}/hyperestraier"; my $cgi=IkiWiki::basename($config{cgiurl}); $cgi=~s/\..*$//; - open(TEMPLATE, ">:utf8", "$estdir/$cgi.tmpl") || - error("write $estdir/$cgi.tmpl: $!"); + + my $newfile="$estdir/$cgi.tmpl.new"; + my $cleanup = sub { unlink($newfile) }; + open(TEMPLATE, ">:utf8", $newfile) || error("open $newfile: $!", $cleanup); print TEMPLATE IkiWiki::misctemplate("search", "\n\n\n\n\n\n", - baseurl => IkiWiki::dirname($config{cgiurl})."/"); - close TEMPLATE; - open(TEMPLATE, ">$estdir/$cgi.conf") || - error("write $estdir/$cgi.conf: $!"); + baseurl => IkiWiki::dirname($config{cgiurl})."/") || + error("write $newfile: $!", $cleanup); + close TEMPLATE || error("save $newfile: $!", $cleanup); + rename($newfile, "$estdir/$cgi.tmpl") || + error("rename $newfile: $!", $cleanup); + + $newfile="$estdir/$cgi.conf"; + open(TEMPLATE, ">$newfile") || error("open $newfile: $!", $cleanup); my $template=template("estseek.conf"); eval q{use Cwd 'abs_path'}; $template->param( @@ -105,13 +111,15 @@ sub estcfg () { #{{{ destdir => abs_path($config{destdir}), url => $config{url}, ); - print TEMPLATE $template->output; - close TEMPLATE; + print TEMPLATE $template->output || error("write $newfile: $!", $cleanup); + close TEMPLATE || error("save $newfile: $!", $cleanup); + rename($newfile, "$estdir/$cgi.conf") || + error("rename $newfile: $!", $cleanup); + $cgi="$estdir/".IkiWiki::basename($config{cgiurl}); unlink($cgi); my $estseek = defined $config{estseek} ? $config{estseek} : '/usr/lib/estraier/estseek.cgi'; - symlink($estseek, $cgi) || - error("symlink $estseek $cgi: $!"); + symlink($estseek, $cgi) || error("symlink $estseek $cgi: $!"); } # }}} sub estcmd ($;@) { #{{{ diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index d8bc5a9d9..cbba28251 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -198,22 +198,26 @@ sub render ($) { #{{{ my $srcfd=readfile($srcfile, 1, 1); delete $depends{$file}; will_render($file, $file, 1); - my $destfd=writefile($file, $config{destdir}, undef, 1, 1); - my $blksize = 16384; - my ($len, $buf, $written); - while ($len = sysread $srcfd, $buf, $blksize) { - if (! defined $len) { - next if $! =~ /^Interrupted/; - error("failed to read $srcfile: $!"); - } - my $offset = 0; - while ($len) { - defined($written = syswrite OUT, $buf, $len, $offset) - or error("failed to write $file: $!"); - $len -= $written; - $offset += $written; + writefile($file, $config{destdir}, undef, 1, sub { + my $destfd=shift; + my $cleanup=shift; + + my $blksize = 16384; + my ($len, $buf, $written); + while ($len = sysread $srcfd, $buf, $blksize) { + if (! defined $len) { + next if $! =~ /^Interrupted/; + error("failed to read $srcfile: $!", $cleanup); + } + my $offset = 0; + while ($len) { + defined($written = syswrite $destfd, $buf, $len, $offset) + or error("failed to write $file: $!", $cleanup); + $len -= $written; + $offset += $written; + } } - } + }); $oldpagemtime{$file}=time; } } #}}} diff --git a/IkiWiki/UserInfo.pm b/IkiWiki/UserInfo.pm index 115a263ce..02c27991c 100644 --- a/IkiWiki/UserInfo.pm +++ b/IkiWiki/UserInfo.pm @@ -15,12 +15,19 @@ sub userinfo_retrieve () { #{{{ sub userinfo_store ($) { #{{{ my $userinfo=shift; + my $newfile="$config{wikistatedir}/userdb.new"; my $oldmask=umask(077); - my $ret=Storable::lock_store($userinfo, "$config{wikistatedir}/userdb"); + my $ret=Storable::lock_store($userinfo, $newfile); umask($oldmask); + if (defined $ret && $ret) { + if (! rename($newfile, "$config{wikistatedir}/userdb")) { + unlink($newfile); + $ret=undef; + } + } return $ret; } #}}} - + sub userinfo_get ($$) { #{{{ my $user=shift; my $field=shift; diff --git a/debian/changelog b/debian/changelog index f4e4e2437..aaffd76ac 100644 --- a/debian/changelog +++ b/debian/changelog @@ -16,8 +16,14 @@ ikiwiki (1.43) UNRELEASED; urgency=low * Fix smiley plugin to support smileys at the very beginning or end of the content. * Allow multiple tag settings to appear in a single page. - - -- Joey Hess Tue, 13 Feb 2007 22:40:56 -0500 + * Many changes to make ikiwiki very resistant to write failures + including out of disk space situations. ikiwiki should never leave + truncated files, and if the error occurs during a web-based file edit, + the user will be given an opportunity to retry. + Inspired by the many ways Moin Moin destroys itself when out of disk. :-) + * Fix syslogging of errors. + + -- Joey Hess Wed, 14 Feb 2007 19:22:24 -0500 ikiwiki (1.42) unstable; urgency=low diff --git a/doc/plugins/write.mdwn b/doc/plugins/write.mdwn index 8630b56ff..c10d73cf9 100644 --- a/doc/plugins/write.mdwn +++ b/doc/plugins/write.mdwn @@ -287,9 +287,11 @@ the id can be controled by the user. Logs a debugging message. These are supressed unless verbose mode is turned on. -#### `error($)` +#### `error($;$)` -Aborts with an error message. +Aborts with an error message. If the second parameter is passed, it is a +function that is called after the error message is printed, to do any final +cleanup. Note that while any plugin can use this for a fatal error, plugins should try to avoid dying on bad input, as that will halt the entire wiki build @@ -359,14 +361,20 @@ in binary mode. A failure to read the file will result in it dying with an error. -#### `writefile($$$;$)` +#### `writefile($$$;$$)` Given a filename, a directory to put it in, and the file's content, writes a file. -The optional second parameter, if set to a true value, makes the file be +The optional fourth parameter, if set to a true value, makes the file be written in binary mode. +The optional fifth parameter can be used to pass a function reference that +will be called to handle writing to the file. The function will be called +and passed a file descriptor it should write to, and an error recovery +function it should call if the writing fails. (You will not normally need to +use this interface.) + A failure to write the file will result in it dying with an error. If the destination directory doesn't exist, it will first be created. diff --git a/po/bg.po b/po/bg.po index 1d0d4e396..6a560fbcd 100644 --- a/po/bg.po +++ b/po/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki-bg\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-11 22:01-0500\n" +"POT-Creation-Date: 2007-02-14 20:42-0500\n" "PO-Revision-Date: 2007-01-12 01:19+0200\n" "Last-Translator: Damyan Ivanov \n" "Language-Team: Bulgarian \n" @@ -20,37 +20,37 @@ msgstr "" msgid "You need to log in first." msgstr "Първо трябва да влезете." -#: ../IkiWiki/CGI.pm:262 +#: ../IkiWiki/CGI.pm:265 msgid "Preferences saved." msgstr "Предпочитанията са запазени." -#: ../IkiWiki/CGI.pm:327 +#: ../IkiWiki/CGI.pm:330 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:415 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97 #: ../IkiWiki/Render.pm:165 msgid "discussion" msgstr "дискусия" -#: ../IkiWiki/CGI.pm:460 +#: ../IkiWiki/CGI.pm:463 #, perl-format msgid "creating %s" msgstr "създаване на %s" -#: ../IkiWiki/CGI.pm:477 ../IkiWiki/CGI.pm:520 +#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:506 ../IkiWiki/CGI.pm:539 #, perl-format msgid "editing %s" msgstr "промяна на %s" -#: ../IkiWiki/CGI.pm:628 +#: ../IkiWiki/CGI.pm:647 msgid "You are banned." msgstr "Достъпът ви е забранен." -#: ../IkiWiki/CGI.pm:660 +#: ../IkiWiki/CGI.pm:679 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" @@ -71,36 +71,36 @@ msgstr "съобщения" msgid "new" msgstr "ново" -#: ../IkiWiki/Plugin/aggregate.pm:206 +#: ../IkiWiki/Plugin/aggregate.pm:211 #, perl-format msgid "expiring %s (%s days old)" msgstr "премахване на „%s” (на %s дни)" -#: ../IkiWiki/Plugin/aggregate.pm:213 +#: ../IkiWiki/Plugin/aggregate.pm:218 #, perl-format msgid "expiring %s" msgstr "премахване на „%s”" -#: ../IkiWiki/Plugin/aggregate.pm:236 +#: ../IkiWiki/Plugin/aggregate.pm:241 #, perl-format msgid "checking feed %s ..." msgstr "проверка на източника „%s”" -#: ../IkiWiki/Plugin/aggregate.pm:241 +#: ../IkiWiki/Plugin/aggregate.pm:246 #, perl-format msgid "could not find feed at %s" msgstr "не е намерен източник на адрес „%s”" -#: ../IkiWiki/Plugin/aggregate.pm:250 +#: ../IkiWiki/Plugin/aggregate.pm:255 msgid "feed crashed XML::Feed!" msgstr "данните от източника предизвикаха грешка в модула XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:273 +#: ../IkiWiki/Plugin/aggregate.pm:278 #, perl-format msgid "processed ok at %s" msgstr "е обработен нормално от %s" -#: ../IkiWiki/Plugin/aggregate.pm:328 +#: ../IkiWiki/Plugin/aggregate.pm:333 #, perl-format msgid "creating new page %s" msgstr "създаване на нова страницa „%s”" @@ -263,47 +263,47 @@ msgstr "" "Променливата от обкръжението „REV” не е указана. Програмата не се изпълнява " "като „svn post-commit hook”. Няма да бъдат разпратени известявания" -#: ../IkiWiki/Render.pm:247 ../IkiWiki/Render.pm:267 +#: ../IkiWiki/Render.pm:251 ../IkiWiki/Render.pm:271 #, perl-format msgid "skipping bad filename %s" msgstr "пропускане на невалидното име на файл „%s”" -#: ../IkiWiki/Render.pm:307 +#: ../IkiWiki/Render.pm:311 #, perl-format msgid "removing old page %s" msgstr "премахване на старата страница „%s”" -#: ../IkiWiki/Render.pm:326 +#: ../IkiWiki/Render.pm:330 #, perl-format msgid "scanning %s" msgstr "сканиране на „%s”" -#: ../IkiWiki/Render.pm:335 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "rendering %s" msgstr "обновяване на страницата „%s”" -#: ../IkiWiki/Render.pm:347 +#: ../IkiWiki/Render.pm:351 #, perl-format msgid "rendering %s, which links to %s" msgstr "обновяване на страницата „%s”, съдържаща препратки към „%s”" -#: ../IkiWiki/Render.pm:364 +#: ../IkiWiki/Render.pm:368 #, perl-format msgid "rendering %s, which depends on %s" msgstr "обновяване на страницата „%s”, зависеща от „%s”" -#: ../IkiWiki/Render.pm:402 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "обновяване на „%s” и осъвременяване на обратните връзки" -#: ../IkiWiki/Render.pm:414 +#: ../IkiWiki/Render.pm:418 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "премахване на „%s” понеже не се генерира от „%s”" -#: ../IkiWiki/Render.pm:440 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: неуспех при обновяване на страницата „%s”" @@ -335,7 +335,7 @@ msgstr "готово" #. translators: A list of one or more pages that were changed, #. translators: And the name of the user making the change. #. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:139 +#: ../IkiWiki/UserInfo.pm:146 #, perl-format msgid "update of %s's %s by %s" msgstr "обновяване на страниците от уики „%s”: %s от потребител „%s”" @@ -376,13 +376,13 @@ msgstr "успешно генериране на %s" msgid "usage: ikiwiki [options] source dest" msgstr "формат: ikiwiki [опции] източник местоназначение" -#: ../IkiWiki.pm:103 +#: ../IkiWiki.pm:104 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" "При използване на пареметъра „--cgi” е необходимо да се укаже и " "местоположението на уикито чрез параметъра „--url”" -#: ../IkiWiki.pm:148 ../IkiWiki.pm:149 +#: ../IkiWiki.pm:151 ../IkiWiki.pm:152 msgid "Error" msgstr "Грешка" @@ -390,7 +390,7 @@ msgstr "Грешка" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:532 +#: ../IkiWiki.pm:549 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "открита е циклична завидимост при %s на „%s” на дълбочина %i" diff --git a/po/cs.po b/po/cs.po index 433f4a5ea..1f6e6bcfc 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-11 22:01-0500\n" +"POT-Creation-Date: 2007-02-14 20:42-0500\n" "PO-Revision-Date: 2007-01-07 11:59+0100\n" "Last-Translator: Miroslav Kure \n" "Language-Team: Czech \n" @@ -19,37 +19,37 @@ msgstr "" msgid "You need to log in first." msgstr "Nejprve se musíte přihlásit." -#: ../IkiWiki/CGI.pm:262 +#: ../IkiWiki/CGI.pm:265 msgid "Preferences saved." msgstr "Nastavení uloženo." -#: ../IkiWiki/CGI.pm:327 +#: ../IkiWiki/CGI.pm:330 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:415 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97 #: ../IkiWiki/Render.pm:165 msgid "discussion" msgstr "diskuse" -#: ../IkiWiki/CGI.pm:460 +#: ../IkiWiki/CGI.pm:463 #, perl-format msgid "creating %s" msgstr "vytvářím %s" -#: ../IkiWiki/CGI.pm:477 ../IkiWiki/CGI.pm:520 +#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:506 ../IkiWiki/CGI.pm:539 #, perl-format msgid "editing %s" msgstr "upravuji %s" -#: ../IkiWiki/CGI.pm:628 +#: ../IkiWiki/CGI.pm:647 msgid "You are banned." msgstr "Jste vyhoštěni." -#: ../IkiWiki/CGI.pm:660 +#: ../IkiWiki/CGI.pm:679 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" @@ -70,36 +70,36 @@ msgstr "příspěvky" msgid "new" msgstr "nový" -#: ../IkiWiki/Plugin/aggregate.pm:206 +#: ../IkiWiki/Plugin/aggregate.pm:211 #, perl-format msgid "expiring %s (%s days old)" msgstr "expiruji %s (stará %s dnů)" -#: ../IkiWiki/Plugin/aggregate.pm:213 +#: ../IkiWiki/Plugin/aggregate.pm:218 #, perl-format msgid "expiring %s" msgstr "expiruji %s" -#: ../IkiWiki/Plugin/aggregate.pm:236 +#: ../IkiWiki/Plugin/aggregate.pm:241 #, perl-format msgid "checking feed %s ..." msgstr "kontroluji zdroj %s ..." -#: ../IkiWiki/Plugin/aggregate.pm:241 +#: ../IkiWiki/Plugin/aggregate.pm:246 #, perl-format msgid "could not find feed at %s" msgstr "nemohu najít zdroj na %s" -#: ../IkiWiki/Plugin/aggregate.pm:250 +#: ../IkiWiki/Plugin/aggregate.pm:255 msgid "feed crashed XML::Feed!" msgstr "zdroj shodil XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:273 +#: ../IkiWiki/Plugin/aggregate.pm:278 #, perl-format msgid "processed ok at %s" msgstr "zpracováno ok %s" -#: ../IkiWiki/Plugin/aggregate.pm:328 +#: ../IkiWiki/Plugin/aggregate.pm:333 #, perl-format msgid "creating new page %s" msgstr "vytvářím novou stránku %s" @@ -257,47 +257,47 @@ msgid "" msgstr "" "REV není nastavena, není spuštěna ze svn post-commit, nemohu zaslat oznámení" -#: ../IkiWiki/Render.pm:247 ../IkiWiki/Render.pm:267 +#: ../IkiWiki/Render.pm:251 ../IkiWiki/Render.pm:271 #, perl-format msgid "skipping bad filename %s" msgstr "přeskakuji chybné jméno souboru %s" -#: ../IkiWiki/Render.pm:307 +#: ../IkiWiki/Render.pm:311 #, perl-format msgid "removing old page %s" msgstr "odstraňuji starou stránku %s" -#: ../IkiWiki/Render.pm:326 +#: ../IkiWiki/Render.pm:330 #, perl-format msgid "scanning %s" msgstr "prohledávám %s" -#: ../IkiWiki/Render.pm:335 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "rendering %s" msgstr "zpracovávám %s" -#: ../IkiWiki/Render.pm:347 +#: ../IkiWiki/Render.pm:351 #, perl-format msgid "rendering %s, which links to %s" msgstr "zpracovávám %s, která odkazuje na %s" -#: ../IkiWiki/Render.pm:364 +#: ../IkiWiki/Render.pm:368 #, perl-format msgid "rendering %s, which depends on %s" msgstr "zpracovávám %s, která závisí na %s" -#: ../IkiWiki/Render.pm:402 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "zpracovávám %s, aby se aktualizovaly zpětné odkazy" -#: ../IkiWiki/Render.pm:414 +#: ../IkiWiki/Render.pm:418 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "odstraňuji %s, již není zpracovávána %s" -#: ../IkiWiki/Render.pm:440 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: nelze zpracovat %s" @@ -329,7 +329,7 @@ msgstr "hotovo" #. translators: A list of one or more pages that were changed, #. translators: And the name of the user making the change. #. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:139 +#: ../IkiWiki/UserInfo.pm:146 #, perl-format msgid "update of %s's %s by %s" msgstr "aktualizace %s (%s) uživatelem %s" @@ -370,11 +370,11 @@ msgstr "%s byl úspěšně vytvořen" msgid "usage: ikiwiki [options] source dest" msgstr "použití: ikiwiki [volby] zdroj cíl" -#: ../IkiWiki.pm:103 +#: ../IkiWiki.pm:104 msgid "Must specify url to wiki with --url when using --cgi" msgstr "Při použití --cgi musíte pomocí --url zadat url k wiki" -#: ../IkiWiki.pm:148 ../IkiWiki.pm:149 +#: ../IkiWiki.pm:151 ../IkiWiki.pm:152 msgid "Error" msgstr "Chyba" @@ -382,7 +382,7 @@ msgstr "Chyba" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:532 +#: ../IkiWiki.pm:549 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "Byla rozpoznána smyčka direktivy %s na %s v hloubce %i" diff --git a/po/es.po b/po/es.po index b39851725..ea58fbe82 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: es\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-13 18:43-0500\n" +"POT-Creation-Date: 2007-02-14 20:42-0500\n" "PO-Revision-Date: 2007-02-12 10:31+0100\n" "Last-Translator: Víctor Moral \n" "Language-Team: spanish \n" @@ -20,37 +20,37 @@ msgstr "" msgid "You need to log in first." msgstr "Antes es necesario identificarse." -#: ../IkiWiki/CGI.pm:262 +#: ../IkiWiki/CGI.pm:265 msgid "Preferences saved." msgstr "Las preferencias se han guardado." -#: ../IkiWiki/CGI.pm:327 +#: ../IkiWiki/CGI.pm:330 #, perl-format msgid "%s is not an editable page" msgstr "la página %s no es modificable" -#: ../IkiWiki/CGI.pm:415 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97 #: ../IkiWiki/Render.pm:165 msgid "discussion" msgstr "comentarios" -#: ../IkiWiki/CGI.pm:460 +#: ../IkiWiki/CGI.pm:463 #, perl-format msgid "creating %s" msgstr "creando página %s" -#: ../IkiWiki/CGI.pm:477 ../IkiWiki/CGI.pm:520 +#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:506 ../IkiWiki/CGI.pm:539 #, perl-format msgid "editing %s" msgstr "modificando página %s" -#: ../IkiWiki/CGI.pm:628 +#: ../IkiWiki/CGI.pm:647 msgid "You are banned." msgstr "Ha sido expulsado." -#: ../IkiWiki/CGI.pm:660 +#: ../IkiWiki/CGI.pm:679 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" "registro fallido, ¿ tal vez es necesario activar las cookies en el " @@ -73,36 +73,36 @@ msgstr "entradas" msgid "new" msgstr "nuevo" -#: ../IkiWiki/Plugin/aggregate.pm:206 +#: ../IkiWiki/Plugin/aggregate.pm:211 #, perl-format msgid "expiring %s (%s days old)" msgstr "%s caducada (%s días de antigüedad)" -#: ../IkiWiki/Plugin/aggregate.pm:213 +#: ../IkiWiki/Plugin/aggregate.pm:218 #, perl-format msgid "expiring %s" msgstr "%s caducada" -#: ../IkiWiki/Plugin/aggregate.pm:236 +#: ../IkiWiki/Plugin/aggregate.pm:241 #, perl-format msgid "checking feed %s ..." msgstr "comprobando entrada %s ..." -#: ../IkiWiki/Plugin/aggregate.pm:241 +#: ../IkiWiki/Plugin/aggregate.pm:246 #, perl-format msgid "could not find feed at %s" msgstr "no puedo encontrar la entrada en %s" -#: ../IkiWiki/Plugin/aggregate.pm:250 +#: ../IkiWiki/Plugin/aggregate.pm:255 msgid "feed crashed XML::Feed!" msgstr "¡ la entrada ha provocado un error fatal en XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:273 +#: ../IkiWiki/Plugin/aggregate.pm:278 #, perl-format msgid "processed ok at %s" msgstr "proceso completado con éxito a %s" -#: ../IkiWiki/Plugin/aggregate.pm:328 +#: ../IkiWiki/Plugin/aggregate.pm:333 #, perl-format msgid "creating new page %s" msgstr "creando nueva página %s" @@ -265,49 +265,49 @@ msgstr "" "La variable de entorno REV no está definida, por lo que no puede funcionar " "svn post-commit; no puedo enviar notificación alguna." -#: ../IkiWiki/Render.pm:247 ../IkiWiki/Render.pm:267 +#: ../IkiWiki/Render.pm:251 ../IkiWiki/Render.pm:271 #, perl-format msgid "skipping bad filename %s" msgstr "ignorando el archivo %s porque su no nombre no es correcto" -#: ../IkiWiki/Render.pm:307 +#: ../IkiWiki/Render.pm:311 #, perl-format msgid "removing old page %s" msgstr "eliminando la antigua página %s" -#: ../IkiWiki/Render.pm:326 +#: ../IkiWiki/Render.pm:330 #, perl-format msgid "scanning %s" msgstr "explorando %s" -#: ../IkiWiki/Render.pm:335 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "rendering %s" msgstr "convirtiendo %s" -#: ../IkiWiki/Render.pm:347 +#: ../IkiWiki/Render.pm:351 #, perl-format msgid "rendering %s, which links to %s" msgstr "convirtiendo la página %s, la cual referencia a %s" -#: ../IkiWiki/Render.pm:364 +#: ../IkiWiki/Render.pm:368 #, perl-format msgid "rendering %s, which depends on %s" msgstr "convirtiendo la página %s, la cual depende de %s" -#: ../IkiWiki/Render.pm:402 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "" "convirtiendo la página %s para actualizar la lista de páginas que hacen " "referencia a ella." -#: ../IkiWiki/Render.pm:414 +#: ../IkiWiki/Render.pm:418 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "eliminando la página %s puesto que ya no se deriva de %s" -#: ../IkiWiki/Render.pm:440 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikwiki: no puedo convertir la página %s" @@ -339,7 +339,7 @@ msgstr "completado" #. translators: A list of one or more pages that were changed, #. translators: And the name of the user making the change. #. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:139 +#: ../IkiWiki/UserInfo.pm:146 #, perl-format msgid "update of %s's %s by %s" msgstr "actualizado el wiki %s y la página %s por el usuario %s" @@ -381,13 +381,13 @@ msgstr "creado con éxito el programa envoltorio %s" msgid "usage: ikiwiki [options] source dest" msgstr "uso: ikiwiki [opciones] origen destino" -#: ../IkiWiki.pm:103 +#: ../IkiWiki.pm:104 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" "Es obligatorio especificar un url al wiki con el parámetro --url si se " "utiliza el parámetro --cgi" -#: ../IkiWiki.pm:148 ../IkiWiki.pm:149 +#: ../IkiWiki.pm:151 ../IkiWiki.pm:152 msgid "Error" msgstr "Error" @@ -395,7 +395,7 @@ msgstr "Error" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:532 +#: ../IkiWiki.pm:549 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "" diff --git a/po/fr.po b/po/fr.po index 7a4ce1db2..d8074ee4d 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-11 22:01-0500\n" +"POT-Creation-Date: 2007-02-14 20:42-0500\n" "PO-Revision-Date: 2007-01-22 22:12+0100\n" "Last-Translator: Jean-Luc Coulon (f5ibh) \n" "Language-Team: French \n" @@ -21,37 +21,37 @@ msgstr "" msgid "You need to log in first." msgstr "Vous devez d'abord vous identifier." -#: ../IkiWiki/CGI.pm:262 +#: ../IkiWiki/CGI.pm:265 msgid "Preferences saved." msgstr "Les préférences ont été enregistrées." -#: ../IkiWiki/CGI.pm:327 +#: ../IkiWiki/CGI.pm:330 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:415 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97 #: ../IkiWiki/Render.pm:165 msgid "discussion" msgstr "Discussion" -#: ../IkiWiki/CGI.pm:460 +#: ../IkiWiki/CGI.pm:463 #, perl-format msgid "creating %s" msgstr "Création de %s" -#: ../IkiWiki/CGI.pm:477 ../IkiWiki/CGI.pm:520 +#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:506 ../IkiWiki/CGI.pm:539 #, perl-format msgid "editing %s" msgstr "Édition de %s" -#: ../IkiWiki/CGI.pm:628 +#: ../IkiWiki/CGI.pm:647 msgid "You are banned." msgstr "Vous avez été banni." -#: ../IkiWiki/CGI.pm:660 +#: ../IkiWiki/CGI.pm:679 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" "Échec de l'identification, vous devriez peut-être autoriser les cookies." @@ -73,36 +73,36 @@ msgstr "Messages" msgid "new" msgstr "Nouveau" -#: ../IkiWiki/Plugin/aggregate.pm:206 +#: ../IkiWiki/Plugin/aggregate.pm:211 #, perl-format msgid "expiring %s (%s days old)" msgstr "Fin de validité de %s (date de %s jours)" -#: ../IkiWiki/Plugin/aggregate.pm:213 +#: ../IkiWiki/Plugin/aggregate.pm:218 #, perl-format msgid "expiring %s" msgstr "Fin de validité de %s" -#: ../IkiWiki/Plugin/aggregate.pm:236 +#: ../IkiWiki/Plugin/aggregate.pm:241 #, perl-format msgid "checking feed %s ..." msgstr "Vérification du flux %s..." -#: ../IkiWiki/Plugin/aggregate.pm:241 +#: ../IkiWiki/Plugin/aggregate.pm:246 #, perl-format msgid "could not find feed at %s" msgstr "Impossible de trouver de flux à %s" -#: ../IkiWiki/Plugin/aggregate.pm:250 +#: ../IkiWiki/Plugin/aggregate.pm:255 msgid "feed crashed XML::Feed!" msgstr "Plantage du flux XML::Feed !" -#: ../IkiWiki/Plugin/aggregate.pm:273 +#: ../IkiWiki/Plugin/aggregate.pm:278 #, perl-format msgid "processed ok at %s" msgstr "A été correctement traité à %s" -#: ../IkiWiki/Plugin/aggregate.pm:328 +#: ../IkiWiki/Plugin/aggregate.pm:333 #, perl-format msgid "creating new page %s" msgstr "Création de la nouvelle page %s" @@ -265,47 +265,47 @@ msgstr "" "après un commit sur le svn (« hook post-commit »), impossible d'envoyer des " "notifications" -#: ../IkiWiki/Render.pm:247 ../IkiWiki/Render.pm:267 +#: ../IkiWiki/Render.pm:251 ../IkiWiki/Render.pm:271 #, perl-format msgid "skipping bad filename %s" msgstr "Saut du nom de fichier incorrect %s" -#: ../IkiWiki/Render.pm:307 +#: ../IkiWiki/Render.pm:311 #, perl-format msgid "removing old page %s" msgstr "Suppression de l'ancienne page %s" -#: ../IkiWiki/Render.pm:326 +#: ../IkiWiki/Render.pm:330 #, perl-format msgid "scanning %s" msgstr "Parcours de %s" -#: ../IkiWiki/Render.pm:335 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "rendering %s" msgstr "Rendu de %s" -#: ../IkiWiki/Render.pm:347 +#: ../IkiWiki/Render.pm:351 #, perl-format msgid "rendering %s, which links to %s" msgstr "Rendu de %s, qui est lié à %s" -#: ../IkiWiki/Render.pm:364 +#: ../IkiWiki/Render.pm:368 #, perl-format msgid "rendering %s, which depends on %s" msgstr "Rendu de %s, qui dépend de %s" -#: ../IkiWiki/Render.pm:402 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "Rendu de %s, afin de mettre à jour ses rétroliens" -#: ../IkiWiki/Render.pm:414 +#: ../IkiWiki/Render.pm:418 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "Suppression de %s, qui n'est plus rendu par %s" -#: ../IkiWiki/Render.pm:440 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki : impossible d'effectuer le rendu de %s" @@ -337,7 +337,7 @@ msgstr "Terminé" #. translators: A list of one or more pages that were changed, #. translators: And the name of the user making the change. #. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:139 +#: ../IkiWiki/UserInfo.pm:146 #, perl-format msgid "update of %s's %s by %s" msgstr "Wiki %s, les pages %s ont été mises à jour par %s" @@ -379,13 +379,13 @@ msgstr "%s a été créé avec succès" msgid "usage: ikiwiki [options] source dest" msgstr "Syntaxe : ikiwiki [options] source destination" -#: ../IkiWiki.pm:103 +#: ../IkiWiki.pm:104 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" "Vous devez indiquer une url vers le wiki par --url lors de l'utilisation de " "--cgi" -#: ../IkiWiki.pm:148 ../IkiWiki.pm:149 +#: ../IkiWiki.pm:151 ../IkiWiki.pm:152 msgid "Error" msgstr "Erreur" @@ -393,7 +393,7 @@ msgstr "Erreur" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:532 +#: ../IkiWiki.pm:549 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "" diff --git a/po/gu.po b/po/gu.po index 421810b49..05cd48ffe 100644 --- a/po/gu.po +++ b/po/gu.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki-gu\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-11 22:01-0500\n" +"POT-Creation-Date: 2007-02-14 20:42-0500\n" "PO-Revision-Date: 2007-01-11 16:05+0530\n" "Last-Translator: Kartik Mistry \n" "Language-Team: Gujarati \n" @@ -19,37 +19,37 @@ msgstr "" msgid "You need to log in first." msgstr "તમારે પ્રથમ લોગ ઇન થવું પડશે." -#: ../IkiWiki/CGI.pm:262 +#: ../IkiWiki/CGI.pm:265 msgid "Preferences saved." msgstr "પ્રાથમિકતાઓ સંગ્રહાઇ." -#: ../IkiWiki/CGI.pm:327 +#: ../IkiWiki/CGI.pm:330 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:415 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97 #: ../IkiWiki/Render.pm:165 msgid "discussion" msgstr "ચર્ચા" -#: ../IkiWiki/CGI.pm:460 +#: ../IkiWiki/CGI.pm:463 #, perl-format msgid "creating %s" msgstr "%s બનાવે છે" -#: ../IkiWiki/CGI.pm:477 ../IkiWiki/CGI.pm:520 +#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:506 ../IkiWiki/CGI.pm:539 #, perl-format msgid "editing %s" msgstr "%s સુધારે છે" -#: ../IkiWiki/CGI.pm:628 +#: ../IkiWiki/CGI.pm:647 msgid "You are banned." msgstr "તમારા પર પ્રતિબંધ છે." -#: ../IkiWiki/CGI.pm:660 +#: ../IkiWiki/CGI.pm:679 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" @@ -70,36 +70,36 @@ msgstr "પોસ્ટ" msgid "new" msgstr "નવું" -#: ../IkiWiki/Plugin/aggregate.pm:206 +#: ../IkiWiki/Plugin/aggregate.pm:211 #, perl-format msgid "expiring %s (%s days old)" msgstr "જુનું કરે છે %s (%s દિવસો જુનું)" -#: ../IkiWiki/Plugin/aggregate.pm:213 +#: ../IkiWiki/Plugin/aggregate.pm:218 #, perl-format msgid "expiring %s" msgstr "જુનું કરે છે %s" -#: ../IkiWiki/Plugin/aggregate.pm:236 +#: ../IkiWiki/Plugin/aggregate.pm:241 #, perl-format msgid "checking feed %s ..." msgstr "ફીડ %s ચકાસે છે ..." -#: ../IkiWiki/Plugin/aggregate.pm:241 +#: ../IkiWiki/Plugin/aggregate.pm:246 #, perl-format msgid "could not find feed at %s" msgstr "%s પર ફીડ મળી શક્યું નહી" -#: ../IkiWiki/Plugin/aggregate.pm:250 +#: ../IkiWiki/Plugin/aggregate.pm:255 msgid "feed crashed XML::Feed!" msgstr "ફીડ ભાંગી પડ્યું XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:273 +#: ../IkiWiki/Plugin/aggregate.pm:278 #, perl-format msgid "processed ok at %s" msgstr "આના પર બરાબર છે %s" -#: ../IkiWiki/Plugin/aggregate.pm:328 +#: ../IkiWiki/Plugin/aggregate.pm:333 #, perl-format msgid "creating new page %s" msgstr "નવું પાનું %s બનાવે છે" @@ -255,47 +255,47 @@ msgid "" "notifications" msgstr "REV ગોઠવેલ નથી, svn post-commit hook માંથી ચાલતું નથી, નોંધ મોકલી શકાશે નહી" -#: ../IkiWiki/Render.pm:247 ../IkiWiki/Render.pm:267 +#: ../IkiWiki/Render.pm:251 ../IkiWiki/Render.pm:271 #, perl-format msgid "skipping bad filename %s" msgstr "ખરાબ ફાઇલ નામ છોડી દે છે %s" -#: ../IkiWiki/Render.pm:307 +#: ../IkiWiki/Render.pm:311 #, perl-format msgid "removing old page %s" msgstr "જુનાં પાનાં દૂર કરે છે %s" -#: ../IkiWiki/Render.pm:326 +#: ../IkiWiki/Render.pm:330 #, perl-format msgid "scanning %s" msgstr "%s શોધે છે" -#: ../IkiWiki/Render.pm:335 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "rendering %s" msgstr "રેન્ડર કરે છે %s" -#: ../IkiWiki/Render.pm:347 +#: ../IkiWiki/Render.pm:351 #, perl-format msgid "rendering %s, which links to %s" msgstr "રેન્ડર કરે છે %s, જે %s સાથે જોડાણ ધરાવે છે" -#: ../IkiWiki/Render.pm:364 +#: ../IkiWiki/Render.pm:368 #, perl-format msgid "rendering %s, which depends on %s" msgstr "રેન્ડર કરે છે %s, જે %s પર આધારિત છે" -#: ../IkiWiki/Render.pm:402 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "રેન્ડર કરે છે %s, તેનાં પાછળનાં જોડાણો સુધારવા માટે" -#: ../IkiWiki/Render.pm:414 +#: ../IkiWiki/Render.pm:418 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "દૂર કરે છે %s, હવે %s વડે રેન્ડર કરાતું નથી" -#: ../IkiWiki/Render.pm:440 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: %s રેન્ડર કરી શકાતું નથી" @@ -327,7 +327,7 @@ msgstr "સંપૂર્ણ" #. translators: A list of one or more pages that were changed, #. translators: And the name of the user making the change. #. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:139 +#: ../IkiWiki/UserInfo.pm:146 #, perl-format msgid "update of %s's %s by %s" msgstr "%s નો સુધારો %s નાં %s વડે" @@ -368,11 +368,11 @@ msgstr "સફળતાપૂર્વક પેદા કરેલ છે %s" msgid "usage: ikiwiki [options] source dest" msgstr "ઉપયોગ: ikiwiki [વિકલ્પો] source dest" -#: ../IkiWiki.pm:103 +#: ../IkiWiki.pm:104 msgid "Must specify url to wiki with --url when using --cgi" msgstr "જ્યારે --cgi ઉપયોગ કરતાં હોય ત્યારે વીકીનું યુઆરએલ સ્પષ્ટ કરવું જ પડશે" -#: ../IkiWiki.pm:148 ../IkiWiki.pm:149 +#: ../IkiWiki.pm:151 ../IkiWiki.pm:152 msgid "Error" msgstr "ક્ષતિ" @@ -380,7 +380,7 @@ msgstr "ક્ષતિ" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:532 +#: ../IkiWiki.pm:549 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "%s પર શોધાયેલ લુપ %s પર ચલાવે છે %i ઉંડાણ પર" diff --git a/po/ikiwiki.pot b/po/ikiwiki.pot index 1b63d45dd..30c134d8f 100644 --- a/po/ikiwiki.pot +++ b/po/ikiwiki.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-13 22:40-0500\n" +"POT-Creation-Date: 2007-02-14 21:12-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -20,37 +20,37 @@ msgstr "" msgid "You need to log in first." msgstr "" -#: ../IkiWiki/CGI.pm:262 +#: ../IkiWiki/CGI.pm:265 msgid "Preferences saved." msgstr "" -#: ../IkiWiki/CGI.pm:327 +#: ../IkiWiki/CGI.pm:330 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:415 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97 #: ../IkiWiki/Render.pm:165 msgid "discussion" msgstr "" -#: ../IkiWiki/CGI.pm:460 +#: ../IkiWiki/CGI.pm:463 #, perl-format msgid "creating %s" msgstr "" -#: ../IkiWiki/CGI.pm:477 ../IkiWiki/CGI.pm:520 +#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:506 ../IkiWiki/CGI.pm:539 #, perl-format msgid "editing %s" msgstr "" -#: ../IkiWiki/CGI.pm:628 +#: ../IkiWiki/CGI.pm:647 msgid "You are banned." msgstr "" -#: ../IkiWiki/CGI.pm:660 +#: ../IkiWiki/CGI.pm:679 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" @@ -71,36 +71,36 @@ msgstr "" msgid "new" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:206 +#: ../IkiWiki/Plugin/aggregate.pm:211 #, perl-format msgid "expiring %s (%s days old)" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:213 +#: ../IkiWiki/Plugin/aggregate.pm:218 #, perl-format msgid "expiring %s" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:236 +#: ../IkiWiki/Plugin/aggregate.pm:241 #, perl-format msgid "checking feed %s ..." msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:241 +#: ../IkiWiki/Plugin/aggregate.pm:246 #, perl-format msgid "could not find feed at %s" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:250 +#: ../IkiWiki/Plugin/aggregate.pm:255 msgid "feed crashed XML::Feed!" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:273 +#: ../IkiWiki/Plugin/aggregate.pm:278 #, perl-format msgid "processed ok at %s" msgstr "" -#: ../IkiWiki/Plugin/aggregate.pm:328 +#: ../IkiWiki/Plugin/aggregate.pm:333 #, perl-format msgid "creating new page %s" msgstr "" @@ -256,47 +256,47 @@ msgid "" "notifications" msgstr "" -#: ../IkiWiki/Render.pm:247 ../IkiWiki/Render.pm:267 +#: ../IkiWiki/Render.pm:251 ../IkiWiki/Render.pm:271 #, perl-format msgid "skipping bad filename %s" msgstr "" -#: ../IkiWiki/Render.pm:307 +#: ../IkiWiki/Render.pm:311 #, perl-format msgid "removing old page %s" msgstr "" -#: ../IkiWiki/Render.pm:326 +#: ../IkiWiki/Render.pm:330 #, perl-format msgid "scanning %s" msgstr "" -#: ../IkiWiki/Render.pm:335 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "rendering %s" msgstr "" -#: ../IkiWiki/Render.pm:347 +#: ../IkiWiki/Render.pm:351 #, perl-format msgid "rendering %s, which links to %s" msgstr "" -#: ../IkiWiki/Render.pm:364 +#: ../IkiWiki/Render.pm:368 #, perl-format msgid "rendering %s, which depends on %s" msgstr "" -#: ../IkiWiki/Render.pm:402 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "" -#: ../IkiWiki/Render.pm:414 +#: ../IkiWiki/Render.pm:418 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "" -#: ../IkiWiki/Render.pm:440 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "" @@ -328,7 +328,7 @@ msgstr "" #. translators: A list of one or more pages that were changed, #. translators: And the name of the user making the change. #. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:139 +#: ../IkiWiki/UserInfo.pm:146 #, perl-format msgid "update of %s's %s by %s" msgstr "" @@ -369,11 +369,11 @@ msgstr "" msgid "usage: ikiwiki [options] source dest" msgstr "" -#: ../IkiWiki.pm:103 +#: ../IkiWiki.pm:104 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" -#: ../IkiWiki.pm:148 ../IkiWiki.pm:149 +#: ../IkiWiki.pm:151 ../IkiWiki.pm:152 msgid "Error" msgstr "" @@ -381,7 +381,7 @@ msgstr "" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:532 +#: ../IkiWiki.pm:549 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "" diff --git a/po/pl.po b/po/pl.po index 8cdcd67d8..8b4f7b491 100644 --- a/po/pl.po +++ b/po/pl.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki 1.37\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-11 22:01-0500\n" +"POT-Creation-Date: 2007-02-14 20:42-0500\n" "PO-Revision-Date: 2007-01-05 16:33+100\n" "Last-Translator: Paweł Tęcza \n" "Language-Team: Debian L10n Polish \n" @@ -20,37 +20,37 @@ msgstr "" msgid "You need to log in first." msgstr "Konieczne jest zalogowanie się." -#: ../IkiWiki/CGI.pm:262 +#: ../IkiWiki/CGI.pm:265 msgid "Preferences saved." msgstr "Ustawienia zostały zapisane." -#: ../IkiWiki/CGI.pm:327 +#: ../IkiWiki/CGI.pm:330 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:415 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97 #: ../IkiWiki/Render.pm:165 msgid "discussion" msgstr "dyskusja" -#: ../IkiWiki/CGI.pm:460 +#: ../IkiWiki/CGI.pm:463 #, perl-format msgid "creating %s" msgstr "tworzenie strony %s" -#: ../IkiWiki/CGI.pm:477 ../IkiWiki/CGI.pm:520 +#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:506 ../IkiWiki/CGI.pm:539 #, perl-format msgid "editing %s" msgstr "edycja strony %s" -#: ../IkiWiki/CGI.pm:628 +#: ../IkiWiki/CGI.pm:647 msgid "You are banned." msgstr "Dostęp został zabroniony przez administratora." -#: ../IkiWiki/CGI.pm:660 +#: ../IkiWiki/CGI.pm:679 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" @@ -71,36 +71,36 @@ msgstr "wpisy" msgid "new" msgstr "nowy wpis" -#: ../IkiWiki/Plugin/aggregate.pm:206 +#: ../IkiWiki/Plugin/aggregate.pm:211 #, perl-format msgid "expiring %s (%s days old)" msgstr "wygasający wpis %s (ma już %s dni)" -#: ../IkiWiki/Plugin/aggregate.pm:213 +#: ../IkiWiki/Plugin/aggregate.pm:218 #, perl-format msgid "expiring %s" msgstr "wygasający wpis %s" -#: ../IkiWiki/Plugin/aggregate.pm:236 +#: ../IkiWiki/Plugin/aggregate.pm:241 #, perl-format msgid "checking feed %s ..." msgstr "sprawdzanie kanału RSS %s\t..." -#: ../IkiWiki/Plugin/aggregate.pm:241 +#: ../IkiWiki/Plugin/aggregate.pm:246 #, perl-format msgid "could not find feed at %s" msgstr "nie znaleziono kanału RSS pod adresem %s" -#: ../IkiWiki/Plugin/aggregate.pm:250 +#: ../IkiWiki/Plugin/aggregate.pm:255 msgid "feed crashed XML::Feed!" msgstr "awaria kanału RSS w module XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:273 +#: ../IkiWiki/Plugin/aggregate.pm:278 #, perl-format msgid "processed ok at %s" msgstr "przetworzony kanał RSS w dniu %s" -#: ../IkiWiki/Plugin/aggregate.pm:328 +#: ../IkiWiki/Plugin/aggregate.pm:333 #, perl-format msgid "creating new page %s" msgstr "tworzenie nowej strony %s" @@ -267,47 +267,47 @@ msgstr "" "Brak możliwości wysłania powiadomień przez post-commit SVN-a z powodu " "nieustawionego parametru REV" -#: ../IkiWiki/Render.pm:247 ../IkiWiki/Render.pm:267 +#: ../IkiWiki/Render.pm:251 ../IkiWiki/Render.pm:271 #, perl-format msgid "skipping bad filename %s" msgstr "pomijanie nieprawidłowego pliku %s" -#: ../IkiWiki/Render.pm:307 +#: ../IkiWiki/Render.pm:311 #, perl-format msgid "removing old page %s" msgstr "usuwanie starej strony %s" -#: ../IkiWiki/Render.pm:326 +#: ../IkiWiki/Render.pm:330 #, perl-format msgid "scanning %s" msgstr "przeszukiwanie strony %s" -#: ../IkiWiki/Render.pm:335 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "rendering %s" msgstr "tworzenie strony %s" -#: ../IkiWiki/Render.pm:347 +#: ../IkiWiki/Render.pm:351 #, perl-format msgid "rendering %s, which links to %s" msgstr "tworzenie strony %s z odnośnikiem do strony %s" -#: ../IkiWiki/Render.pm:364 +#: ../IkiWiki/Render.pm:368 #, perl-format msgid "rendering %s, which depends on %s" msgstr "tworzenie strony %s zależącej od strony %s" -#: ../IkiWiki/Render.pm:402 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "tworzenie strony %s w celu aktualizacji jej powrotnych odnośników" -#: ../IkiWiki/Render.pm:414 +#: ../IkiWiki/Render.pm:418 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "usuwanie strony %s nie tworzonej już przez %s" -#: ../IkiWiki/Render.pm:440 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: awaria w trakcie tworzenie strony %s" @@ -339,7 +339,7 @@ msgstr "gotowe" #. translators: A list of one or more pages that were changed, #. translators: And the name of the user making the change. #. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:139 +#: ../IkiWiki/UserInfo.pm:146 #, perl-format msgid "update of %s's %s by %s" msgstr "aktualizacja stron wiki %s %s przez użytkownika %s" @@ -380,13 +380,13 @@ msgstr "strona pomyślnie utworzona %s" msgid "usage: ikiwiki [options] source dest" msgstr "użycie: ikiwiki [parametry] źródło cel" -#: ../IkiWiki.pm:103 +#: ../IkiWiki.pm:104 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" "Użycie parametru --cgi wymaga podania adresu URL do wiki za pomocą parametru " "--url" -#: ../IkiWiki.pm:148 ../IkiWiki.pm:149 +#: ../IkiWiki.pm:151 ../IkiWiki.pm:152 msgid "Error" msgstr "Błąd" @@ -394,7 +394,7 @@ msgstr "Błąd" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:532 +#: ../IkiWiki.pm:549 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "polecenie preprocesora %s wykryte w %s na głębokości %i" diff --git a/po/sv.po b/po/sv.po index 6717efb92..e07799328 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-11 22:01-0500\n" +"POT-Creation-Date: 2007-02-14 20:42-0500\n" "PO-Revision-Date: 2007-01-10 23:47+0100\n" "Last-Translator: Daniel Nylander \n" "Language-Team: Swedish \n" @@ -19,37 +19,37 @@ msgstr "" msgid "You need to log in first." msgstr "Du måste logga in först." -#: ../IkiWiki/CGI.pm:262 +#: ../IkiWiki/CGI.pm:265 msgid "Preferences saved." msgstr "Inställningar sparades." -#: ../IkiWiki/CGI.pm:327 +#: ../IkiWiki/CGI.pm:330 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:415 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97 #: ../IkiWiki/Render.pm:165 msgid "discussion" msgstr "diskussion" -#: ../IkiWiki/CGI.pm:460 +#: ../IkiWiki/CGI.pm:463 #, perl-format msgid "creating %s" msgstr "skapar %s" -#: ../IkiWiki/CGI.pm:477 ../IkiWiki/CGI.pm:520 +#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:506 ../IkiWiki/CGI.pm:539 #, perl-format msgid "editing %s" msgstr "redigerar %s" -#: ../IkiWiki/CGI.pm:628 +#: ../IkiWiki/CGI.pm:647 msgid "You are banned." msgstr "Du är bannlyst." -#: ../IkiWiki/CGI.pm:660 +#: ../IkiWiki/CGI.pm:679 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" @@ -70,36 +70,36 @@ msgstr "inlägg" msgid "new" msgstr "ny" -#: ../IkiWiki/Plugin/aggregate.pm:206 +#: ../IkiWiki/Plugin/aggregate.pm:211 #, perl-format msgid "expiring %s (%s days old)" msgstr "låter %s gå ut (%s dagar gammal)" -#: ../IkiWiki/Plugin/aggregate.pm:213 +#: ../IkiWiki/Plugin/aggregate.pm:218 #, perl-format msgid "expiring %s" msgstr "låter %s gå ut" -#: ../IkiWiki/Plugin/aggregate.pm:236 +#: ../IkiWiki/Plugin/aggregate.pm:241 #, perl-format msgid "checking feed %s ..." msgstr "kontrollerar kanalen %s ..." -#: ../IkiWiki/Plugin/aggregate.pm:241 +#: ../IkiWiki/Plugin/aggregate.pm:246 #, perl-format msgid "could not find feed at %s" msgstr "kunde inte hitta kanalen på %s" -#: ../IkiWiki/Plugin/aggregate.pm:250 +#: ../IkiWiki/Plugin/aggregate.pm:255 msgid "feed crashed XML::Feed!" msgstr "kanalen kraschade XML::Feed!" -#: ../IkiWiki/Plugin/aggregate.pm:273 +#: ../IkiWiki/Plugin/aggregate.pm:278 #, perl-format msgid "processed ok at %s" msgstr "behandlad ok på %s" -#: ../IkiWiki/Plugin/aggregate.pm:328 +#: ../IkiWiki/Plugin/aggregate.pm:333 #, perl-format msgid "creating new page %s" msgstr "skapar nya sidan %s" @@ -259,47 +259,47 @@ msgstr "" "REV är inte inställt, kör inte från svn post-commit-hook, kan inte skicka " "notifieringar" -#: ../IkiWiki/Render.pm:247 ../IkiWiki/Render.pm:267 +#: ../IkiWiki/Render.pm:251 ../IkiWiki/Render.pm:271 #, perl-format msgid "skipping bad filename %s" msgstr "hoppar över felaktigt filnamn %s" -#: ../IkiWiki/Render.pm:307 +#: ../IkiWiki/Render.pm:311 #, perl-format msgid "removing old page %s" msgstr "tar bort gammal sida %s" -#: ../IkiWiki/Render.pm:326 +#: ../IkiWiki/Render.pm:330 #, perl-format msgid "scanning %s" msgstr "söker av %s" -#: ../IkiWiki/Render.pm:335 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "rendering %s" msgstr "ritar upp %s" -#: ../IkiWiki/Render.pm:347 +#: ../IkiWiki/Render.pm:351 #, perl-format msgid "rendering %s, which links to %s" msgstr "ritar upp %s, vilken länkar till %s" -#: ../IkiWiki/Render.pm:364 +#: ../IkiWiki/Render.pm:368 #, perl-format msgid "rendering %s, which depends on %s" msgstr "ritar upp %s, vilken är beroende av %s" -#: ../IkiWiki/Render.pm:402 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "ritar upp %s, för att uppdatera dess bakåtlänkar" -#: ../IkiWiki/Render.pm:414 +#: ../IkiWiki/Render.pm:418 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "tar bort %s, som inte längre ritas upp av %s" -#: ../IkiWiki/Render.pm:440 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: kan inte rita upp %s" @@ -331,7 +331,7 @@ msgstr "klar" #. translators: A list of one or more pages that were changed, #. translators: And the name of the user making the change. #. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:139 +#: ../IkiWiki/UserInfo.pm:146 #, perl-format msgid "update of %s's %s by %s" msgstr "uppdatering av %s, %s av %s" @@ -372,11 +372,11 @@ msgstr "generering av %s lyckades" msgid "usage: ikiwiki [options] source dest" msgstr "användning: ikiwiki [flaggor] källa mål" -#: ../IkiWiki.pm:103 +#: ../IkiWiki.pm:104 msgid "Must specify url to wiki with --url when using --cgi" msgstr "Måste ange url till wiki med --url när --cgi används" -#: ../IkiWiki.pm:148 ../IkiWiki.pm:149 +#: ../IkiWiki.pm:151 ../IkiWiki.pm:152 msgid "Error" msgstr "Fel" @@ -384,7 +384,7 @@ msgstr "Fel" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:532 +#: ../IkiWiki.pm:549 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "%s förbehandlingsslinga detekterades på %s, djup %i" diff --git a/po/vi.po b/po/vi.po index 787336ca0..3395517fd 100644 --- a/po/vi.po +++ b/po/vi.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: ikiwiki\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2007-02-11 22:01-0500\n" +"POT-Creation-Date: 2007-02-14 20:42-0500\n" "PO-Revision-Date: 2007-01-13 15:31+1030\n" "Last-Translator: Clytie Siddall \n" "Language-Team: Vietnamese \n" @@ -20,37 +20,37 @@ msgstr "" msgid "You need to log in first." msgstr "Trước tiên bạn cần phải đăng nhập." -#: ../IkiWiki/CGI.pm:262 +#: ../IkiWiki/CGI.pm:265 msgid "Preferences saved." msgstr "Tùy thích đã được lưu." -#: ../IkiWiki/CGI.pm:327 +#: ../IkiWiki/CGI.pm:330 #, perl-format msgid "%s is not an editable page" msgstr "" -#: ../IkiWiki/CGI.pm:415 ../IkiWiki/Plugin/brokenlinks.pm:24 +#: ../IkiWiki/CGI.pm:418 ../IkiWiki/Plugin/brokenlinks.pm:24 #: ../IkiWiki/Plugin/inline.pm:164 ../IkiWiki/Plugin/opendiscussion.pm:17 #: ../IkiWiki/Plugin/orphans.pm:28 ../IkiWiki/Render.pm:97 #: ../IkiWiki/Render.pm:165 msgid "discussion" msgstr "thảo luận" -#: ../IkiWiki/CGI.pm:460 +#: ../IkiWiki/CGI.pm:463 #, perl-format msgid "creating %s" msgstr "đang tạo %s" -#: ../IkiWiki/CGI.pm:477 ../IkiWiki/CGI.pm:520 +#: ../IkiWiki/CGI.pm:480 ../IkiWiki/CGI.pm:506 ../IkiWiki/CGI.pm:539 #, perl-format msgid "editing %s" msgstr "đang sửa %s" -#: ../IkiWiki/CGI.pm:628 +#: ../IkiWiki/CGI.pm:647 msgid "You are banned." msgstr "Bạn bị cấm ra." -#: ../IkiWiki/CGI.pm:660 +#: ../IkiWiki/CGI.pm:679 msgid "login failed, perhaps you need to turn on cookies?" msgstr "" @@ -71,36 +71,36 @@ msgstr "bài" msgid "new" msgstr "mới" -#: ../IkiWiki/Plugin/aggregate.pm:206 +#: ../IkiWiki/Plugin/aggregate.pm:211 #, perl-format msgid "expiring %s (%s days old)" msgstr "đang mãn hạn %s (cũ %s ngày)" -#: ../IkiWiki/Plugin/aggregate.pm:213 +#: ../IkiWiki/Plugin/aggregate.pm:218 #, perl-format msgid "expiring %s" msgstr "đang mãn hạn %s" -#: ../IkiWiki/Plugin/aggregate.pm:236 +#: ../IkiWiki/Plugin/aggregate.pm:241 #, perl-format msgid "checking feed %s ..." msgstr "đang kiểm tra nguồn tin %s ..." -#: ../IkiWiki/Plugin/aggregate.pm:241 +#: ../IkiWiki/Plugin/aggregate.pm:246 #, perl-format msgid "could not find feed at %s" msgstr "không tìm thấy nguồn tin ở %s" -#: ../IkiWiki/Plugin/aggregate.pm:250 +#: ../IkiWiki/Plugin/aggregate.pm:255 msgid "feed crashed XML::Feed!" msgstr "nguồn tin đã gây ra XML::Feed sụp đổ." -#: ../IkiWiki/Plugin/aggregate.pm:273 +#: ../IkiWiki/Plugin/aggregate.pm:278 #, perl-format msgid "processed ok at %s" msgstr "đã xử lý được ở %s" -#: ../IkiWiki/Plugin/aggregate.pm:328 +#: ../IkiWiki/Plugin/aggregate.pm:333 #, perl-format msgid "creating new page %s" msgstr "đang tạo trang mới %s" @@ -259,47 +259,47 @@ msgid "" msgstr "" "Chưa đặt REV, không chạy từ móc sau gài vào nên không thể gửi thông báo" -#: ../IkiWiki/Render.pm:247 ../IkiWiki/Render.pm:267 +#: ../IkiWiki/Render.pm:251 ../IkiWiki/Render.pm:271 #, perl-format msgid "skipping bad filename %s" msgstr "đang bỏ qua tên tập tin sai %s" -#: ../IkiWiki/Render.pm:307 +#: ../IkiWiki/Render.pm:311 #, perl-format msgid "removing old page %s" msgstr "đang gỡ bỏ trang cũ %s" -#: ../IkiWiki/Render.pm:326 +#: ../IkiWiki/Render.pm:330 #, perl-format msgid "scanning %s" msgstr "đang quét %s" -#: ../IkiWiki/Render.pm:335 +#: ../IkiWiki/Render.pm:339 #, perl-format msgid "rendering %s" msgstr "đang vẽ %s" -#: ../IkiWiki/Render.pm:347 +#: ../IkiWiki/Render.pm:351 #, perl-format msgid "rendering %s, which links to %s" msgstr "đang vẽ %s mà liên kết tới %s" -#: ../IkiWiki/Render.pm:364 +#: ../IkiWiki/Render.pm:368 #, perl-format msgid "rendering %s, which depends on %s" msgstr "đang vẽ %s mà phụ thuộc vào %s" -#: ../IkiWiki/Render.pm:402 +#: ../IkiWiki/Render.pm:406 #, perl-format msgid "rendering %s, to update its backlinks" msgstr "đang vẽ %s để cập nhật các liên kết ngược của nó" -#: ../IkiWiki/Render.pm:414 +#: ../IkiWiki/Render.pm:418 #, perl-format msgid "removing %s, no longer rendered by %s" msgstr "đang gỡ bỏ %s, không còn được vẽ lại bởi %s" -#: ../IkiWiki/Render.pm:440 +#: ../IkiWiki/Render.pm:444 #, perl-format msgid "ikiwiki: cannot render %s" msgstr "ikiwiki: không thể vẽ %s" @@ -331,7 +331,7 @@ msgstr "xong" #. translators: A list of one or more pages that were changed, #. translators: And the name of the user making the change. #. translators: This is used as the subject of a commit email. -#: ../IkiWiki/UserInfo.pm:139 +#: ../IkiWiki/UserInfo.pm:146 #, perl-format msgid "update of %s's %s by %s" msgstr "cập nhật %2$s của %1$s bởi %3$s" @@ -372,12 +372,12 @@ msgstr "%s đã được tạo ra" msgid "usage: ikiwiki [options] source dest" msgstr "cách sử dụng: ikiwiki [tùy chọn] nguồn đích" -#: ../IkiWiki.pm:103 +#: ../IkiWiki.pm:104 msgid "Must specify url to wiki with --url when using --cgi" msgstr "" "Cần phải xác định địa chỉ URL tới wiki với « --url » khi dùng « --cgi »" -#: ../IkiWiki.pm:148 ../IkiWiki.pm:149 +#: ../IkiWiki.pm:151 ../IkiWiki.pm:152 msgid "Error" msgstr "Lỗi" @@ -385,7 +385,7 @@ msgstr "Lỗi" #. translators: preprocessor directive name, #. translators: the second a page name, the #. translators: third a number. -#: ../IkiWiki.pm:532 +#: ../IkiWiki.pm:549 #, perl-format msgid "%s preprocessing loop detected on %s at depth %i" msgstr "vòng lặp tiền xử lý %s được phát hiện trên %s ở độ sâu %i" diff --git a/templates/editpage.tmpl b/templates/editpage.tmpl index f63a4b089..68b7d1942 100644 --- a/templates/editpage.tmpl +++ b/templates/editpage.tmpl @@ -21,6 +21,18 @@ Conflict markers have been inserted into the page content. Reconcile the conflict and commit again to save your changes.

+ +

+Failed to save your changes. +

+

+Your changes were not able to be saved to disk. The system gave the error: +

+ +
+Your changes are preserved below, and you can try again to save them. +

+
/ -- 2.32.0.93.g670b81a890