]> sipb.mit.edu Git - ikiwiki.git/commitdiff
Merge commit 'remotes/smcv/ready/inline-pagenames' into staging
authorJoey Hess <joey@gnu.kitenet.net>
Fri, 31 Jul 2009 08:25:43 +0000 (10:25 +0200)
committerJoey Hess <joey@gnu.kitenet.net>
Fri, 31 Jul 2009 08:25:43 +0000 (10:25 +0200)
202 files changed:
.gitignore
IkiWiki.pm
IkiWiki/CGI.pm
IkiWiki/Plugin/amazon_s3.pm
IkiWiki/Plugin/blogspam.pm
IkiWiki/Plugin/google.pm
IkiWiki/Plugin/highlight.pm
IkiWiki/Plugin/img.pm
IkiWiki/Plugin/map.pm
IkiWiki/Plugin/openid.pm
IkiWiki/Plugin/orphans.pm
IkiWiki/Plugin/pagestats.pm
IkiWiki/Plugin/parentlinks.pm
IkiWiki/Plugin/po.pm [new file with mode: 0644]
IkiWiki/Plugin/prettydate.pm
IkiWiki/Plugin/remove.pm
IkiWiki/Plugin/rename.pm
IkiWiki/Plugin/search.pm
IkiWiki/Plugin/skeleton.pm.example
IkiWiki/Plugin/sparkline.pm
IkiWiki/Plugin/svn.pm
IkiWiki/Render.pm
Makefile.PL
auto.setup
debian/changelog
debian/control
debian/copyright
doc/bugs/CGI_problem_with_some_webservers.mdwn
doc/bugs/Renaming_a_file_via_the_web_is_failing_when_using_subversion.mdwn [new file with mode: 0644]
doc/bugs/entirely_negated_pagespec_matches_internal_pages.mdwn
doc/bugs/html5_support.mdwn
doc/bugs/img_with_alt_has_extra_double_quote.mdwn [new file with mode: 0644]
doc/bugs/map_fails_to_close_ul_element_for_empty_list.mdwn
doc/bugs/nested_raw_included_inlines.mdwn [new file with mode: 0644]
doc/bugs/openid_no_longer_pretty-prints_OpenIDs.mdwn [new file with mode: 0644]
doc/bugs/pagetitle_function_does_not_respect_meta_titles.mdwn
doc/bugs/prettydate_with_weekday-date_inconsistency.mdwn [new file with mode: 0644]
doc/bugs/search_for_locale_data_in_the_installed_location.mdwn
doc/forum/Accessing_meta_values_in_pages__63__.mdwn [new file with mode: 0644]
doc/forum/Can_OpenID_users_be_adminusers__63__.mdwn [new file with mode: 0644]
doc/forum/speeding_up_ikiwiki.mdwn [new file with mode: 0644]
doc/git.mdwn
doc/ikiwiki/directive/img.mdwn
doc/ikiwiki/directive/inline/discussion.mdwn
doc/ikiwiki/directive/pagestats.mdwn
doc/ikiwiki/pagespec.mdwn
doc/ikiwiki/pagespec/attachment.mdwn
doc/ikiwiki/pagespec/po.mdwn [new file with mode: 0644]
doc/ikiwikiusers.mdwn
doc/install/discussion.mdwn
doc/news/version_3.11.mdwn [deleted file]
doc/news/version_3.12.mdwn [deleted file]
doc/news/version_3.13.mdwn [deleted file]
doc/news/version_3.1415.mdwn [new file with mode: 0644]
doc/news/version_3.14159.mdwn [new file with mode: 0644]
doc/pagehistory.mdwn
doc/patch/core.mdwn [new file with mode: 0644]
doc/plugins/anonok.mdwn
doc/plugins/comments/discussion.mdwn
doc/plugins/contrib/album.mdwn [new file with mode: 0644]
doc/plugins/contrib/default_content_for___42__copyright__42___and___42__license__42__.mdwn
doc/plugins/contrib/mediawiki.mdwn
doc/plugins/contrib/mediawiki/discussion.mdwn [new file with mode: 0644]
doc/plugins/contrib/trail.mdwn [new file with mode: 0644]
doc/plugins/map/discussion.mdwn
doc/plugins/po.mdwn [new file with mode: 0644]
doc/plugins/po/discussion.mdwn [moved from doc/plugins/contrib/po.mdwn with 72% similarity]
doc/plugins/rst/discussion.mdwn
doc/plugins/write.mdwn
doc/post-commit/discussion.mdwn
doc/sandbox.mdwn
doc/templates/gitbranch.mdwn [new file with mode: 0644]
doc/tipjar.mdwn
doc/todo/Add_DATE_parameter_for_use_in_templates.mdwn
doc/todo/Add_space_before_slash_in_parent_links.mdwn
doc/todo/Bestdir_along_with_bestlink_in_IkiWiki.pm.mdwn
doc/todo/Gallery.mdwn
doc/todo/Raw_view_link.mdwn
doc/todo/Set_arbitrary_date_to_be_used_by_calendar_plugin.mdwn
doc/todo/Suggested_location_should_be_subpage_if_siblings_exist.mdwn
doc/todo/allow_creation_of_non-existent_pages.mdwn
doc/todo/allow_site-wide_meta_definitions.mdwn
doc/todo/attachments.mdwn
doc/todo/auto-create_tag_pages_according_to_a_template.mdwn
doc/todo/backlinks_result_is_lossy.mdwn [new file with mode: 0644]
doc/todo/blogpost_plugin.mdwn
doc/todo/dynamic_rootpage.mdwn
doc/todo/enable-htaccess-files.mdwn
doc/todo/format_escape.mdwn
doc/todo/generated_po_stuff_not_ignored_by_git.mdwn [new file with mode: 0644]
doc/todo/geotagging.mdwn
doc/todo/hard-coded_location_for_man_pages_and_w3m_cgi_wrapper.mdwn
doc/todo/inline_plugin:_specifying_ordered_page_names.mdwn [new file with mode: 0644]
doc/todo/inline_postform_autotitles.mdwn
doc/todo/l10n.mdwn
doc/todo/language_definition_for_the_meta_plugin.mdwn
doc/todo/meta_rcsid.mdwn
doc/todo/missingparents.pm.mdwn
doc/todo/more_class__61____34____34___for_css.mdwn
doc/todo/more_customisable_titlepage_function.mdwn
doc/todo/more_flexible_inline_postform.mdwn
doc/todo/need_global_renamepage_hook.mdwn
doc/todo/pagestats_among_a_subset_of_pages.mdwn [new file with mode: 0644]
doc/todo/passwordauth:_sendmail_interface.mdwn
doc/todo/pretty-print_OpenIDs_even_if_not_enabled.mdwn [new file with mode: 0644]
doc/todo/should_optimise_pagespecs.mdwn
doc/todo/source_link.mdwn
doc/todo/tmplvars_plugin.mdwn
doc/todo/tracking_bugs_with_dependencies.mdwn
doc/todo/unaccent_url_instead_of_encoding.mdwn
doc/todo/varioki_--_add_template_variables___40__with_closures_for_values__41___in_ikiwiki.setup.mdwn
doc/todo/wikitrails/discussion.mdwn
doc/translation.mdwn
doc/translation/discussion.mdwn
doc/users/harishcm.mdwn [new file with mode: 0644]
doc/users/simonraven.mdwn
doc/users/smcv/gallery.mdwn
po/Makefile
po/bg.po
po/cs.po
po/da.po
po/de.po
po/es.po
po/fr.po
po/gu.po
po/ikiwiki.pot
po/pl.po
po/po2wiki [new file with mode: 0755]
po/sv.po
po/underlay.setup [new file with mode: 0644]
po/underlays/basewiki/ikiwiki.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/blog.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/directive.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/formatting.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/markdown.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/openid.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/pagespec.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/pagespec/attachment.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/pagespec/po.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/preprocessordirective.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/searching.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/subpage.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/subpage/linkingrules.da.po [new file with mode: 0644]
po/underlays/basewiki/ikiwiki/wikilink.da.po [new file with mode: 0644]
po/underlays/basewiki/index.da.po [new file with mode: 0644]
po/underlays/basewiki/recentchanges.da.po [new file with mode: 0644]
po/underlays/basewiki/sandbox.da.po [new file with mode: 0644]
po/underlays/basewiki/shortcuts.da.po [new file with mode: 0644]
po/underlays/basewiki/templates.da.po [new file with mode: 0644]
po/underlays/basewiki/templates/note.da.po [new file with mode: 0644]
po/underlays/basewiki/templates/popup.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/aggregate.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/brokenlinks.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/calendar.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/color.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/comment.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/copy.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/cut.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/cutpaste.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/edittemplate.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/format.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/fortune.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/graph.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/haiku.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/if.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/img.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/inline.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/linkmap.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/listdirectives.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/map.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/meta.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/more.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/orphans.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/pagecount.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/pagestats.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/pagetemplate.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/paste.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/ping.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/poll.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/polygen.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/postsparkline.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/progress.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/shortcut.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/sparkline.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/table.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/tag.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/taglink.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/template.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/testpagespec.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/teximg.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/toc.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/toggle.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/toggleable.da.po [new file with mode: 0644]
po/underlays/directives/ikiwiki/directive/version.da.po [new file with mode: 0644]
po/underlays/smiley/smileys.da.po [new file with mode: 0644]
po/vi.po
t/basewiki_brokenlinks.t
t/po.t [new file with mode: 0755]
t/syntax.t
templates/page.tmpl
templates/pocreatepage.tmpl [new file with mode: 0644]
underlays/basewiki/ikiwiki/pagespec/po.mdwn [new symlink]

index 57991a732d698238d8af3ac0e6094d7c445974a9..8de36e2c8df25ab30f7fadeffbcdf25f189863f3 100644 (file)
@@ -8,3 +8,10 @@ ikiwiki.out
 pm_to_blib
 *.man
 build-stamp
+po/po2wiki_stamp
+po/underlays/*/*.mdwn
+po/underlays/basewiki/*/*.mdwn
+po/underlays/basewiki/*/*/*.mdwn
+po/underlays/directives/ikiwiki/directive/*.mdwn
+po/underlays_copy_stamp
+underlays/locale
index a0a61ac642424e477d26aca7977036ce1355a692..a11b330f2126a038f69678512e1a1ba2f2c238fb 100644 (file)
@@ -1063,6 +1063,41 @@ sub htmllink ($$$;@) {
        return "<a href=\"$bestlink\"@attrs>$linktext</a>";
 }
 
+sub openiduser ($) {
+       my $user=shift;
+
+       if ($user =~ m!^https?://! &&
+           eval q{use Net::OpenID::VerifiedIdentity; 1} && !$@) {
+               my $display;
+
+               if (Net::OpenID::VerifiedIdentity->can("DisplayOfURL")) {
+                       # this works in at least 2.x
+                       $display = Net::OpenID::VerifiedIdentity::DisplayOfURL($user);
+               }
+               else {
+                       # this only works in 1.x
+                       my $oid=Net::OpenID::VerifiedIdentity->new(identity => $user);
+                       $display=$oid->display;
+               }
+
+               # Convert "user.somehost.com" to "user [somehost.com]"
+               # (also "user.somehost.co.uk")
+               if ($display !~ /\[/) {
+                       $display=~s/^([-a-zA-Z0-9]+?)\.([-.a-zA-Z0-9]+\.[a-z]+)$/$1 [$2]/;
+               }
+               # Convert "http://somehost.com/user" to "user [somehost.com]".
+               # (also "https://somehost.com/user/")
+               if ($display !~ /\[/) {
+                       $display=~s/^https?:\/\/(.+)\/([^\/]+)\/?$/$2 [$1]/;
+               }
+               $display=~s!^https?://!!; # make sure this is removed
+               eval q{use CGI 'escapeHTML'};
+               error($@) if $@;
+               return escapeHTML($display);
+       }
+       return;
+}
+
 sub userlink ($) {
        my $user=shift;
 
@@ -1346,7 +1381,7 @@ sub check_content (@) {
                foreach my $line (split("\n", $params{content})) {
                        push @diff, $line if ! exists $old{$_};
                }
-               $params{content}=join("\n", @diff);
+               $params{diff}=join("\n", @diff);
        }
 
        my $ok;
index 04f24b04f986c2618b0cbf619e09ba7dfbff58ee..af58d7cb56893a831d5ae798d5c5f16fc96b23fd 100644 (file)
@@ -143,7 +143,7 @@ sub cgi_postsignin ($$) {
        }
        else {
                if ($config{sslcookie} && ! $q->https()) {
-                       error(gettext("probable misconfiguration: sslcookie is set, but you are attepting to login via http, not https"));
+                       error(gettext("probable misconfiguration: sslcookie is set, but you are attempting to login via http, not https"));
                }
                else {
                        error(gettext("login failed, perhaps you need to turn on cookies?"));
index 10bf358e44a69148954fc36a0557330016fa4024..3571c4189e43fe5b70e1032832a6978cded1af6b 100644 (file)
@@ -133,7 +133,7 @@ sub getbucket {
        }
 
        if (! $bucket) {
-               error(gettext("Failed to create bucket in S3: ").
+               error(gettext("Failed to create S3 bucket: ").
                        $s3->err.": ".$s3->errstr."\n");
        }
 
index da63d3edbfae57dd2d94da5f82da768e60ae65b0..626c8ec42acc8f69297d416ef358e66702a153b3 100644 (file)
@@ -88,7 +88,7 @@ sub checkcontent (@) {
 
        my %req=(
                ip => $ENV{REMOTE_ADDR},
-               comment => $params{content},
+               comment => defined $params{diff} ? $params{diff} : $params{content},
                subject => defined $params{subject} ? $params{subject} : "",
                name => defined $params{author} ? $params{author} : "",
                link => exists $params{url} ? $params{url} : "",
index 4bba5775c2ba8583fc06504496e39792c2107bad..1683220e7ed659c8857ae2aae0fcf8ff966969f7 100644 (file)
@@ -24,7 +24,7 @@ sub getsetup () {
 
 sub checkconfig () {
        if (! length $config{url}) {
-               error(sprintf(gettext("Must specify %s when using the google search plugin"), "url"));
+               error(sprintf(gettext("Must specify %s when using the %s plugin"), "url", 'google'));
        }
        my $uri=URI->new($config{url});
        if (! $uri || ! defined $uri->host) {
index 20f79ef575189506fe5343d31950a3f1a57f961e..9bdde85ae3bfd725ee83265b923eb445021a15c4 100644 (file)
@@ -4,6 +4,7 @@ package IkiWiki::Plugin::highlight;
 use warnings;
 use strict;
 use IkiWiki 3.00;
+use Encode;
 
 # locations of highlight's files
 my $filetypes="/etc/highlight/filetypes.conf";
@@ -69,7 +70,7 @@ sub htmlizefallback {
                return;
        }
 
-       return highlight($langfile, shift);
+       return Encode::decode_utf8(highlight($langfile, shift));
 }
 
 my %ext2lang;
index a697fea198d1ba7c2b386a704b3971ff30894a7a..68b001671653000b4907ababf1d63782d834381c 100644 (file)
@@ -44,6 +44,7 @@ sub preprocess (@) {
        }
 
        add_link($params{page}, $image);
+
        # optimisation: detect scan mode, and avoid generating the image
        if (! defined wantarray) {
                return;
@@ -65,8 +66,10 @@ sub preprocess (@) {
        my $r;
 
        if ($params{size} ne 'full') {
+               add_depends($params{page}, $image);
+
                my ($w, $h) = ($params{size} =~ /^(\d*)x(\d*)$/);
-               error sprintf(gettext('bad size "%s"'), $params{size})
+               error sprintf(gettext('wrong size format "%s" (should be WxH)'), $params{size})
                        unless (defined $w && defined $h &&
                                (length $w || length $h));
 
@@ -102,8 +105,6 @@ sub preprocess (@) {
                $imglink = $file;
        }
 
-       add_depends($imglink, $params{page});
-
        my ($fileurl, $imgurl);
        if (! $params{preview}) {
                $fileurl=urlto($file, $params{destpage});
@@ -121,8 +122,9 @@ sub preprocess (@) {
        my $imgtag='<img src="'.$imgurl.
                '" width="'.$im->Get("width").
                '" height="'.$im->Get("height").'"'.
-               (exists $params{alt} ? '" alt="'.$params{alt}.'"' : '').
+               (exists $params{alt} ? ' alt="'.$params{alt}.'"' : '').
                (exists $params{title} ? ' title="'.$params{title}.'"' : '').
+               (exists $params{align} ? ' align="'.$params{align}.'"' : '').
                (exists $params{class} ? ' class="'.$params{class}.'"' : '').
                (exists $params{id} ? ' id="'.$params{id}.'"' : '').
                ' />';
index 120451b5dbde60a26ae165e391cf56232cc30111..826dbbd66ba68dee4401b259c2d3b87ae7e5d1ea 100644 (file)
@@ -80,7 +80,17 @@ sub preprocess (@) {
        my $indent=0;
        my $openli=0;
        my $addparent="";
-       my $map = "<div class='map'>\n<ul>\n";
+       my $map = "<div class='map'>\n";
+
+       # Return empty div if %mapitems is empty
+       if (!scalar(keys %mapitems)) {
+               $map .= "</div>\n";
+               return $map; 
+       } 
+       else { # continue populating $map
+               $map .= "<ul>\n";
+       }
+
        foreach my $item (sort keys %mapitems) {
                my @linktext = (length $mapitems{$item} ? (linktext => $mapitems{$item}) : ());
                $item=~s/^\Q$common_prefix\E\///
index 5424c57e2c6f8e8093eb56d1aba6aee696a05b39..dc0e0f48ee98e70313abce4d195092989e5537c6 100644 (file)
@@ -180,33 +180,4 @@ sub getobj ($$) {
        );
 }
 
-package IkiWiki;
-
-# This is not used by this plugin, but this seems the best place to put it.
-# Used elsewhere to pretty-display the name of an openid user.
-sub openiduser ($) {
-       my $user=shift;
-
-       if ($user =~ m!^https?://! &&
-           eval q{use Net::OpenID::VerifiedIdentity; 1} && !$@) {
-               my $oid=Net::OpenID::VerifiedIdentity->new(identity => $user);
-               my $display=$oid->display;
-               # Convert "user.somehost.com" to "user [somehost.com]"
-               # (also "user.somehost.co.uk")
-               if ($display !~ /\[/) {
-                       $display=~s/^([-a-zA-Z0-9]+?)\.([-.a-zA-Z0-9]+\.[a-z]+)$/$1 [$2]/;
-               }
-               # Convert "http://somehost.com/user" to "user [somehost.com]".
-               # (also "https://somehost.com/user/")
-               if ($display !~ /\[/) {
-                       $display=~s/^https?:\/\/(.+)\/([^\/]+)\/?$/$2 [$1]/;
-               }
-               $display=~s!^https?://!!; # make sure this is removed
-               eval q{use CGI 'escapeHTML'};
-               error($@) if $@;
-               return escapeHTML($display);
-       }
-       return;
-}
-
 1
index 944eba54123ba0a6adec21ae8ff90284521785f5..7c938ef742da0b6793542151bcfd96465eef877b 100644 (file)
@@ -49,7 +49,7 @@ sub preprocess (@) {
                push @orphans, $page;
        }
        
-       return gettext("All pages are linked to by other pages.") unless @orphans;
+       return gettext("All pages have other pages linking to them.") unless @orphans;
        return "<ul>\n".
                join("\n",
                        map {
index 8ab5d36662ce71716a1733e1a4b5de223c92602b..874ead7e6de669c1d33c66b74984ef90504f9b8e 100644 (file)
@@ -38,13 +38,22 @@ sub preprocess (@) {
        # Needs to update whenever a page is added or removed, so
        # register a dependency.
        add_depends($params{page}, $params{pages});
+       add_depends($params{page}, $params{among}) if exists $params{among};
        
        my %counts;
        my $max = 0;
        foreach my $page (pagespec_match_list([keys %links],
                        $params{pages}, location => $params{page})) {
                use IkiWiki::Render;
-               $counts{$page} = scalar(IkiWiki::backlinks($page));
+
+               my @backlinks = IkiWiki::backlink_pages($page);
+
+               if (exists $params{among}) {
+                       @backlinks = pagespec_match_list(\@backlinks,
+                               $params{among}, location => $params{page});
+               }
+
+               $counts{$page} = scalar(@backlinks);
                $max = $counts{$page} if $counts{$page} > $max;
        }
 
@@ -63,6 +72,8 @@ sub preprocess (@) {
 
                my $res = "<div class='pagecloud'>\n";
                foreach my $page (sort keys %counts) {
+                       next unless $counts{$page} > 0;
+
                        my $class = $classes[$counts{$page} * scalar(@classes) / ($max + 1)];
                        $res .= "<span class=\"$class\">".
                                htmllink($params{page}, $params{destpage}, $page).
index ebf1d449ae50522dac1174176810c4bd3db99799..1ee69cbff4901695117e1d335f106d1dcb044367 100644 (file)
@@ -36,7 +36,7 @@ sub parentlinks ($) {
                $depth=$i;
                $height=($pagedepth - $depth);
                push @ret, {
-                       url => urlto($path, $page),
+                       url => urlto(bestlink($page, $path), $page),
                        page => $title,
                        depth => $depth,
                        height => $height,
diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm
new file mode 100644 (file)
index 0000000..0ae4adc
--- /dev/null
@@ -0,0 +1,1157 @@
+#!/usr/bin/perl
+# .po as a wiki page type
+# Licensed under GPL v2 or greater
+# Copyright (C) 2008-2009 intrigeri <intrigeri@boum.org>
+# inspired by the GPL'd po4a-translate,
+# which is Copyright 2002, 2003, 2004 by Martin Quinson (mquinson#debian.org)
+package IkiWiki::Plugin::po;
+
+use warnings;
+use strict;
+use IkiWiki 3.00;
+use Encode;
+use Locale::Po4a::Common qw(nowrapi18n !/.*/);
+use Locale::Po4a::Chooser;
+use Locale::Po4a::Po;
+use File::Basename;
+use File::Copy;
+use File::Spec;
+use File::Temp;
+use Memoize;
+use UNIVERSAL;
+
+my %translations;
+my @origneedsbuild;
+my %origsubs;
+
+memoize("istranslatable");
+memoize("_istranslation");
+memoize("percenttranslated");
+
+sub import {
+       hook(type => "getsetup", id => "po", call => \&getsetup);
+       hook(type => "checkconfig", id => "po", call => \&checkconfig);
+       hook(type => "needsbuild", id => "po", call => \&needsbuild);
+       hook(type => "scan", id => "po", call => \&scan, last => 1);
+       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 => "rename", id => "po", call => \&renamepages, first => 1);
+       hook(type => "delete", id => "po", call => \&mydelete);
+       hook(type => "change", id => "po", call => \&change);
+       hook(type => "checkcontent", id => "po", call => \&checkcontent);
+       hook(type => "canremove", id => "po", call => \&canremove);
+       hook(type => "canrename", id => "po", call => \&canrename);
+       hook(type => "editcontent", id => "po", call => \&editcontent);
+       hook(type => "formbuilder_setup", id => "po", call => \&formbuilder_setup, last => 1);
+       hook(type => "formbuilder", id => "po", call => \&formbuilder);
+
+       $origsubs{'bestlink'}=\&IkiWiki::bestlink;
+       inject(name => "IkiWiki::bestlink", call => \&mybestlink);
+       $origsubs{'beautify_urlpath'}=\&IkiWiki::beautify_urlpath;
+       inject(name => "IkiWiki::beautify_urlpath", call => \&mybeautify_urlpath);
+       $origsubs{'targetpage'}=\&IkiWiki::targetpage;
+       inject(name => "IkiWiki::targetpage", call => \&mytargetpage);
+       $origsubs{'urlto'}=\&IkiWiki::urlto;
+       inject(name => "IkiWiki::urlto", call => \&myurlto);
+       $origsubs{'cgiurl'}=\&IkiWiki::cgiurl;
+       inject(name => "IkiWiki::cgiurl", call => \&mycgiurl);
+}
+
+
+# ,----
+# | Table of contents
+# `----
+
+# 1. Hooks
+# 2. Injected functions
+# 3. Blackboxes for private data
+# 4. Helper functions
+# 5. PageSpecs
+
+
+# ,----
+# | Hooks
+# `----
+
+sub getsetup () {
+       return
+               plugin => {
+                       safe => 0,
+                       rebuild => 1,
+               },
+               po_master_language => {
+                       type => "string",
+                       example => {
+                               'code' => 'en',
+                               'name' => 'English'
+                       },
+                       description => "master language (non-PO files)",
+                       safe => 1,
+                       rebuild => 1,
+               },
+               po_slave_languages => {
+                       type => "string",
+                       example => {
+                               'fr' => 'Français',
+                               'es' => 'Castellano',
+                               'de' => 'Deutsch'
+                       },
+                       description => "slave languages (PO files)",
+                       safe => 1,
+                       rebuild => 1,
+               },
+               po_translatable_pages => {
+                       type => "pagespec",
+                       example => "* and !*/Discussion",
+                       description => "PageSpec controlling which pages are translatable",
+                       link => "ikiwiki/PageSpec",
+                       safe => 1,
+                       rebuild => 1,
+               },
+               po_link_to => {
+                       type => "string",
+                       example => "current",
+                       description => "internal linking behavior (default/current/negotiated)",
+                       safe => 1,
+                       rebuild => 1,
+               },
+}
+
+sub checkconfig () {
+       foreach my $field (qw{po_master_language}) {
+               if (! exists $config{$field} || ! defined $config{$field}) {
+                       error(sprintf(gettext("Must specify %s when using the %s plugin"),
+                                     $field, 'po'));
+               }
+       }
+
+       map {
+               islanguagecode($_)
+                       or error(sprintf(gettext("%s is not a valid language code"), $_));
+       } ($config{po_master_language}{code}, keys %{$config{po_slave_languages}});
+
+       if (! exists $config{po_translatable_pages} ||
+           ! defined $config{po_translatable_pages}) {
+               $config{po_translatable_pages}="";
+       }
+       if (! exists $config{po_link_to} ||
+           ! defined $config{po_link_to}) {
+               $config{po_link_to}='default';
+       }
+       elsif ($config{po_link_to} !~ /^(default|current|negotiated)$/) {
+               warn(sprintf(gettext('%s is not a valid value for po_link_to, falling back to po_link_to=default'),
+                            $config{po_link_to}));
+               $config{po_link_to}='default';
+       }
+       elsif ($config{po_link_to} eq "negotiated" && ! $config{usedirs}) {
+               warn(gettext('po_link_to=negotiated requires usedirs to be enabled, falling back to po_link_to=default'));
+               $config{po_link_to}='default';
+       }
+
+       push @{$config{wiki_file_prune_regexps}}, qr/\.pot$/;
+
+       # Translated versions of the underlays are added if available.
+       foreach my $underlay ("basewiki",
+                             map { m/^\Q$config{underlaydirbase}\E\/*(.*)/ }
+                                 reverse @{$config{underlaydirs}}) {
+               next if $underlay=~/^locale\//;
+
+               # Underlays containing the po files for slave languages.
+               foreach my $ll (keys %{$config{po_slave_languages}}) {
+                       add_underlay("po/$ll/$underlay")
+                               if -d "$config{underlaydirbase}/po/$ll/$underlay";
+               }
+       
+               if ($config{po_master_language}{code} ne 'en') {
+                       # Add underlay containing translated source files
+                       # for the master language.
+                       add_underlay("locale/$config{po_master_language}{code}/$underlay");
+               }
+       }
+}
+
+sub needsbuild () {
+       my $needsbuild=shift;
+
+       # backup @needsbuild content so that change() can know whether
+       # a given master page was rendered because its source file was changed
+       @origneedsbuild=(@$needsbuild);
+
+       flushmemoizecache();
+       buildtranslationscache();
+
+       # make existing translations depend on the corresponding master page
+       foreach my $master (keys %translations) {
+               map add_depends($_, $master), values %{otherlanguages($master)};
+       }
+}
+
+# Massage the recorded state of internal links so that:
+# - it matches the actually generated links, rather than the links as written
+#   in the pages' source
+# - backlinks are consistent in all cases
+sub scan (@) {
+       my %params=@_;
+       my $page=$params{page};
+       my $content=$params{content};
+
+       if (istranslation($page)) {
+               foreach my $destpage (@{$links{$page}}) {
+                       if (istranslatable($destpage)) {
+                               # replace one occurence of $destpage in $links{$page}
+                               # (we only want to replace the one that was added by
+                               # IkiWiki::Plugin::link::scan, other occurences may be
+                               # there for other reasons)
+                               for (my $i=0; $i<@{$links{$page}}; $i++) {
+                                       if (@{$links{$page}}[$i] eq $destpage) {
+                                               @{$links{$page}}[$i] = $destpage . '.' . lang($page);
+                                               last;
+                                       }
+                               }
+                       }
+               }
+       }
+       elsif (! istranslatable($page) && ! istranslation($page)) {
+               foreach my $destpage (@{$links{$page}}) {
+                       if (istranslatable($destpage)) {
+                               # make sure any destpage's translations has
+                               # $page in its backlinks
+                               push @{$links{$page}},
+                                       values %{otherlanguages($destpage)};
+                       }
+               }
+       }
+}
+
+# We use filter to convert PO to the master page's format,
+# since the rest of ikiwiki should not work on PO files.
+sub filter (@) {
+       my %params = @_;
+
+       my $page = $params{page};
+       my $destpage = $params{destpage};
+       my $content = $params{content};
+       if (istranslation($page) && ! alreadyfiltered($page, $destpage)) {
+               $content = po_to_markup($page, $content);
+               setalreadyfiltered($page, $destpage);
+       }
+       return $content;
+}
+
+sub htmlize (@) {
+       my %params=@_;
+
+       my $page = $params{page};
+       my $content = $params{content};
+
+       # ignore PO files this plugin did not create
+       return $content unless istranslation($page);
+
+       # force content to be htmlize'd as if it was the same type as the master page
+       return IkiWiki::htmlize($page, $page,
+               pagetype(srcfile($pagesources{masterpage($page)})),
+               $content);
+}
+
+sub pagetemplate (@) {
+       my %params=@_;
+       my $page=$params{page};
+       my $destpage=$params{destpage};
+       my $template=$params{template};
+
+       my ($masterpage, $lang) = istranslation($page);
+
+       if (istranslation($page) && $template->query(name => "percenttranslated")) {
+               $template->param(percenttranslated => percenttranslated($page));
+       }
+       if ($template->query(name => "istranslation")) {
+               $template->param(istranslation => scalar istranslation($page));
+       }
+       if ($template->query(name => "istranslatable")) {
+               $template->param(istranslatable => istranslatable($page));
+       }
+       if ($template->query(name => "HOMEPAGEURL")) {
+               $template->param(homepageurl => homepageurl($page));
+       }
+       if ($template->query(name => "otherlanguages")) {
+               $template->param(otherlanguages => [otherlanguagesloop($page)]);
+               map add_depends($page, $_), (values %{otherlanguages($page)});
+       }
+       if ($config{discussion} && istranslation($page)) {
+               my $discussionlink=gettext("discussion");
+               if ($page !~ /.*\/\Q$discussionlink\E$/i &&
+                  (length $config{cgiurl} ||
+                   exists $links{$masterpage."/".$discussionlink})) {
+                       $template->param('discussionlink' => htmllink(
+                               $page,
+                               $destpage,
+                               $masterpage . '/' . gettext("Discussion"),
+                               noimageinline => 1,
+                               forcesubpage => 0,
+                               linktext => gettext("Discussion"),
+               ));
+               }
+       }
+       # Remove broken parentlink to ./index.html on home page's translations.
+       # It works because this hook has the "last" parameter set, to ensure it
+       # runs after parentlinks' own pagetemplate hook.
+       if ($template->param('parentlinks')
+           && istranslation($page)
+           && $masterpage eq "index") {
+               $template->param('parentlinks' => []);
+       }
+} # }}}
+
+# Add the renamed page translations to the list of to-be-renamed pages.
+sub renamepages (@) {
+       my %params = @_;
+
+       my %torename = %{$params{torename}};
+       my $session = $params{session};
+
+       # Save the page(s) the user asked to rename, so that our
+       # canrename hook can tell the difference between:
+       #  - a translation being renamed as a consequence of its master page
+       #    being renamed
+       #  - 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.
+       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);
+
+       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;
+}
+
+sub mydelete (@) {
+       my @deleted=@_;
+
+       map { deletetranslations($_) } grep istranslatablefile($_), @deleted;
+}
+
+sub change (@) {
+       my @rendered=@_;
+
+       # All meta titles are first extracted at scan time, i.e. before we turn
+       # PO files back into translated markdown; escaping of double-quotes in
+       # PO files breaks the meta plugin's parsing enough to save ugly titles
+       # to %pagestate at this time.
+       #
+       # Then, at render time, every page passes in turn through the Great
+       # Rendering Chain (filter->preprocess->linkify->htmlize), and the meta
+       # plugin's preprocess hook is this time in a position to correctly
+       # extract the titles from slave pages.
+       #
+       # This is, unfortunately, too late: if the page A, linking to the page
+       # B, is rendered before B, it will display the wrongly-extracted meta
+       # title as the link text to B.
+       #
+       # On the one hand, such a corner case only happens on rebuild: on
+       # refresh, every rendered page is fixed to contain correct meta titles.
+       # On the other hand, it can take some time to get every page fixed.
+       # We therefore re-render every rendered page after a rebuild to fix them
+       # at once. As this more or less doubles the time needed to rebuild the
+       # wiki, we do so only when really needed.
+
+       if (@rendered
+           && exists $config{rebuild} && defined $config{rebuild} && $config{rebuild}
+           && UNIVERSAL::can("IkiWiki::Plugin::meta", "getsetup")
+           && exists $config{meta_overrides_page_title}
+           && defined $config{meta_overrides_page_title}
+           && $config{meta_overrides_page_title}) {
+               debug(sprintf(gettext("rebuilding all pages to fix meta titles")));
+               resetalreadyfiltered();
+               require IkiWiki::Render;
+               foreach my $file (@rendered) {
+                       debug(sprintf(gettext("building %s"), $file));
+                       IkiWiki::render($file);
+               }
+       }
+
+       my $updated_po_files=0;
+
+       # Refresh/create POT and PO files as needed.
+       # (But avoid doing so if they are in an underlay directory.)
+       foreach my $file (grep {istranslatablefile($_)} @rendered) {
+               my $masterfile=srcfile($file);
+               my $page=pagename($file);
+               my $updated_pot_file=0;
+               # Only refresh POT file if it does not exist, or if
+               # $pagesources{$page} was changed: don't if only the HTML was
+               # refreshed, e.g. because of a dependency.
+               if ($masterfile eq "$config{srcdir}/$file" &&
+                  ((grep { $_ eq $pagesources{$page} } @origneedsbuild)
+                   || ! -e potfile($masterfile))) {
+                       refreshpot($masterfile);
+                       $updated_pot_file=1;
+               }
+               my @pofiles;
+               foreach my $po (pofiles($masterfile)) {
+                       next if ! $updated_pot_file && ! -e $po;
+                       next if grep { $po=~/\Q$_\E/ } @{$config{underlaydirs}};
+                       push @pofiles, $po;
+               }
+               if (@pofiles) {
+                       refreshpofiles($masterfile, @pofiles);
+                       map { IkiWiki::rcs_add($_) } @pofiles if $config{rcs};
+                       $updated_po_files=1;
+               }
+       }
+
+       if ($updated_po_files) {
+               commit_and_refresh(
+                       gettext("updated PO files"),
+                       "IkiWiki::Plugin::po::change");
+       }
+}
+
+sub checkcontent (@) {
+       my %params=@_;
+
+       if (istranslation($params{page})) {
+               my $res = isvalidpo($params{content});
+               if ($res) {
+                       return undef;
+               }
+               else {
+                       return "$res";
+               }
+       }
+       return undef;
+}
+
+sub canremove (@) {
+       my %params = @_;
+
+       if (istranslation($params{page})) {
+               return gettext("Can not remove a translation. If the master page is removed, ".
+                              "however, its translations will be removed as well.");
+       }
+       return undef;
+}
+
+sub canrename (@) {
+       my %params = @_;
+       my $session = $params{session};
+
+       if (istranslation($params{src})) {
+               my $masterpage = masterpage($params{src});
+               # Tell the difference between:
+               #  - a translation being renamed as a consequence of its master page
+               #    being renamed, which is allowed
+               #  - a user trying to directly rename a translation, which is forbidden
+               # 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 { $_ eq $masterpage } @{$orig_torename}) {
+                       return gettext("Can not rename a translation. If the master page is renamed, ".
+                                      "however, its translations will be renamed as well.");
+               }
+       }
+       return undef;
+}
+
+# As we're previewing or saving a page, the content may have
+# changed, so tell the next filter() invocation it must not be lazy.
+sub editcontent () {
+       my %params=@_;
+
+       unsetalreadyfiltered($params{page}, $params{page});
+       return $params{content};
+}
+
+sub formbuilder_setup (@) {
+       my %params=@_;
+       my $form=$params{form};
+       my $q=$params{cgi};
+
+       return unless defined $form->field("do");
+
+       if ($form->field("do") eq "create") {
+               # Warn the user: new pages must be written in master language.
+               my $template=template("pocreatepage.tmpl");
+               $template->param(LANG => $config{po_master_language}{name});
+               $form->tmpl_param(message => $template->output);
+       }
+       elsif ($form->field("do") eq "edit") {
+               # Remove the rename/remove buttons on slave pages.
+               # This has to be done after the rename/remove plugins have added
+               # their buttons, which is why this hook must be run last.
+               # The canrename/canremove hooks already ensure this is forbidden
+               # at the backend level, so this is only UI sugar.
+               if (istranslation($form->field("page"))) {
+                       map {
+                               for (my $i = 0; $i < @{$params{buttons}}; $i++) {
+                                       if (@{$params{buttons}}[$i] eq $_) {
+                                               delete  @{$params{buttons}}[$i];
+                                               last;
+                                       }
+                               }
+                       } qw(Rename Remove);
+               }
+       }
+}
+
+sub formbuilder (@) {
+       my %params=@_;
+       my $form=$params{form};
+       my $q=$params{cgi};
+
+       return unless defined $form->field("do");
+
+       # Do not allow to create pages of type po: they are automatically created.
+       # The main reason to do so is to bypass the "favor the type of linking page
+       # on page creation" logic, which is unsuitable when a broken link is clicked
+       # on a slave (PO) page.
+       # This cannot be done in the formbuilder_setup hook as the list of types is
+       # computed later.
+       if ($form->field("do") eq "create") {
+               foreach my $field ($form->field) {
+                       next unless "$field" eq "type";
+                       if ($field->type eq 'select') {
+                               # remove po from the list of types
+                               my @types = grep { $_ ne 'po' } $field->options;
+                               $field->options(\@types) if @types;
+                       }
+               }
+       }
+}
+
+# ,----
+# | Injected functions
+# `----
+
+# Implement po_link_to 'current' and 'negotiated' settings.
+sub mybestlink ($$) {
+       my $page=shift;
+       my $link=shift;
+
+       my $res=$origsubs{'bestlink'}->(masterpage($page), $link);
+       if (length $res
+           && ($config{po_link_to} eq "current" || $config{po_link_to} eq "negotiated")
+           && istranslatable($res)
+           && istranslation($page)) {
+               return $res . "." . lang($page);
+       }
+       return $res;
+}
+
+sub mybeautify_urlpath ($) {
+       my $url=shift;
+
+       my $res=$origsubs{'beautify_urlpath'}->($url);
+       if ($config{po_link_to} eq "negotiated") {
+               $res =~ s!/\Qindex.$config{po_master_language}{code}.$config{htmlext}\E$!/!;
+               $res =~ s!/\Qindex.$config{htmlext}\E$!/!;
+               map {
+                       $res =~ s!/\Qindex.$_.$config{htmlext}\E$!/!;
+               } (keys %{$config{po_slave_languages}});
+       }
+       return $res;
+}
+
+sub mytargetpage ($$) {
+       my $page=shift;
+       my $ext=shift;
+
+       if (istranslation($page) || istranslatable($page)) {
+               my ($masterpage, $lang) = (masterpage($page), lang($page));
+               if (! $config{usedirs} || $masterpage eq 'index') {
+                       return $masterpage . "." . $lang . "." . $ext;
+               }
+               else {
+                       return $masterpage . "/index." . $lang . "." . $ext;
+               }
+       }
+       return $origsubs{'targetpage'}->($page, $ext);
+}
+
+sub myurlto ($$;$) {
+       my $to=shift;
+       my $from=shift;
+       my $absolute=shift;
+
+       # workaround hard-coded /index.$config{htmlext} in IkiWiki::urlto()
+       if (! length $to
+           && $config{po_link_to} eq "current"
+           && istranslatable('index')) {
+               return IkiWiki::beautify_urlpath(IkiWiki::baseurl($from) . "index." . lang($from) . ".$config{htmlext}");
+       }
+       # avoid using our injected beautify_urlpath if run by cgi_editpage,
+       # so that one is redirected to the just-edited page rather than to the
+       # negociated translation; to prevent unnecessary fiddling with caller/inject,
+       # we only do so when our beautify_urlpath would actually do what we want to
+       # avoid, i.e. when po_link_to = negotiated
+       if ($config{po_link_to} eq "negotiated") {
+               my @caller = caller(1);
+               my $run_by_editpage = 0;
+               $run_by_editpage = 1 if (exists $caller[3] && defined $caller[3]
+                                        && $caller[3] eq "IkiWiki::cgi_editpage");
+               inject(name => "IkiWiki::beautify_urlpath", call => $origsubs{'beautify_urlpath'})
+                       if $run_by_editpage;
+               my $res = $origsubs{'urlto'}->($to,$from,$absolute);
+               inject(name => "IkiWiki::beautify_urlpath", call => \&mybeautify_urlpath)
+                       if $run_by_editpage;
+               return $res;
+       }
+       else {
+               return $origsubs{'urlto'}->($to,$from,$absolute)
+       }
+}
+
+sub mycgiurl (@) {
+       my %params=@_;
+
+       # slave pages have no subpages
+       if (istranslation($params{'from'})) {
+               $params{'from'} = masterpage($params{'from'});
+       }
+       return $origsubs{'cgiurl'}->(%params);
+}
+
+# ,----
+# | Blackboxes for private data
+# `----
+
+{
+       my %filtered;
+
+       sub alreadyfiltered($$) {
+               my $page=shift;
+               my $destpage=shift;
+
+               return exists $filtered{$page}{$destpage}
+                        && $filtered{$page}{$destpage} eq 1;
+       }
+
+       sub setalreadyfiltered($$) {
+               my $page=shift;
+               my $destpage=shift;
+
+               $filtered{$page}{$destpage}=1;
+       }
+
+       sub unsetalreadyfiltered($$) {
+               my $page=shift;
+               my $destpage=shift;
+
+               if (exists $filtered{$page}{$destpage}) {
+                       delete $filtered{$page}{$destpage};
+               }
+       }
+
+       sub resetalreadyfiltered() {
+               undef %filtered;
+       }
+}
+
+# ,----
+# | Helper functions
+# `----
+
+sub maybe_add_leading_slash ($;$) {
+       my $str=shift;
+       my $add=shift;
+       $add=1 unless defined $add;
+       return '/' . $str if $add;
+       return $str;
+}
+
+sub istranslatablefile ($) {
+       my $file=shift;
+
+       return 0 unless defined $file;
+       my $type=pagetype($file);
+       return 0 if ! defined $type || $type eq 'po';
+       return 0 if $file =~ /\.pot$/;
+       return 1 if pagespec_match(pagename($file), $config{po_translatable_pages});
+       return;
+}
+
+sub istranslatable ($) {
+       my $page=shift;
+
+       $page=~s#^/##;
+       return 1 if istranslatablefile($pagesources{$page});
+       return;
+}
+
+sub _istranslation ($) {
+       my $page=shift;
+
+       $page='' unless defined $page && length $page;
+       my $hasleadingslash = ($page=~s#^/##);
+       my $file=$pagesources{$page};
+       return 0 unless defined $file
+                        && defined pagetype($file)
+                        && pagetype($file) eq 'po';
+       return 0 if $file =~ /\.pot$/;
+
+       my ($masterpage, $lang) = ($page =~ /(.*)[.]([a-z]{2})$/);
+       return 0 unless defined $masterpage && defined $lang
+                        && length $masterpage && length $lang
+                        && defined $pagesources{$masterpage}
+                        && defined $config{po_slave_languages}{$lang};
+
+       return (maybe_add_leading_slash($masterpage, $hasleadingslash), $lang)
+               if istranslatable($masterpage);
+}
+
+sub istranslation ($) {
+       my $page=shift;
+
+       if (1 < (my ($masterpage, $lang) = _istranslation($page))) {
+               my $hasleadingslash = ($masterpage=~s#^/##);
+               $translations{$masterpage}{$lang}=$page unless exists $translations{$masterpage}{$lang};
+               return (maybe_add_leading_slash($masterpage, $hasleadingslash), $lang);
+       }
+       return "";
+}
+
+sub masterpage ($) {
+       my $page=shift;
+
+       if ( 1 < (my ($masterpage, $lang) = _istranslation($page))) {
+               return $masterpage;
+       }
+       return $page;
+}
+
+sub lang ($) {
+       my $page=shift;
+
+       if (1 < (my ($masterpage, $lang) = _istranslation($page))) {
+               return $lang;
+       }
+       return $config{po_master_language}{code};
+}
+
+sub islanguagecode ($) {
+       my $code=shift;
+
+       return $code =~ /^[a-z]{2}$/;
+}
+
+sub otherlanguage ($$) {
+       my $page=shift;
+       my $code=shift;
+
+       return masterpage($page) if $code eq $config{po_master_language}{code};
+       return masterpage($page) . '.' . $code;
+}
+
+sub otherlanguages ($) {
+       my $page=shift;
+
+       my %ret;
+       return \%ret unless istranslation($page) || istranslatable($page);
+       my $curlang=lang($page);
+       foreach my $lang
+               ($config{po_master_language}{code}, keys %{$config{po_slave_languages}}) {
+               next if $lang eq $curlang;
+               $ret{$lang}=otherlanguage($page, $lang);
+       }
+       return \%ret;
+}
+
+sub potfile ($) {
+       my $masterfile=shift;
+
+       (my $name, my $dir, my $suffix) = fileparse($masterfile, qr/\.[^.]*/);
+       $dir='' if $dir eq './';
+       return File::Spec->catpath('', $dir, $name . ".pot");
+}
+
+sub pofile ($$) {
+       my $masterfile=shift;
+       my $lang=shift;
+
+       (my $name, my $dir, my $suffix) = fileparse($masterfile, qr/\.[^.]*/);
+       $dir='' if $dir eq './';
+       return File::Spec->catpath('', $dir, $name . "." . $lang . ".po");
+}
+
+sub pofiles ($) {
+       my $masterfile=shift;
+
+       return map pofile($masterfile, $_), (keys %{$config{po_slave_languages}});
+}
+
+sub refreshpot ($) {
+       my $masterfile=shift;
+
+       my $potfile=potfile($masterfile);
+       my %options = ("markdown" => (pagetype($masterfile) eq 'mdwn') ? 1 : 0);
+       my $doc=Locale::Po4a::Chooser::new('text',%options);
+       $doc->{TT}{utf_mode} = 1;
+       $doc->{TT}{file_in_charset} = 'utf-8';
+       $doc->{TT}{file_out_charset} = 'utf-8';
+       $doc->read($masterfile);
+       # let's cheat a bit to force porefs option to be passed to
+       # Locale::Po4a::Po; this is undocument use of internal
+       # Locale::Po4a::TransTractor's data, compulsory since this module
+       # prevents us from using the porefs option.
+       $doc->{TT}{po_out}=Locale::Po4a::Po->new({ 'porefs' => 'none' });
+       $doc->{TT}{po_out}->set_charset('utf-8');
+       # do the actual work
+       $doc->parse;
+       IkiWiki::prep_writefile(basename($potfile),dirname($potfile));
+       $doc->writepo($potfile);
+}
+
+sub refreshpofiles ($@) {
+       my $masterfile=shift;
+       my @pofiles=@_;
+
+       my $potfile=potfile($masterfile);
+       if (! -e $potfile) {
+               error("po(refreshpofiles) ".sprintf(gettext("POT file (%s) does not exist"), $potfile));
+       }
+
+       foreach my $pofile (@pofiles) {
+               IkiWiki::prep_writefile(basename($pofile),dirname($pofile));
+               if (-e $pofile) {
+                       system("msgmerge", "--previous", "-q", "-U", "--backup=none", $pofile, $potfile) == 0
+                               or error("po(refreshpofiles) ".
+                                        sprintf(gettext("failed to update %s"),
+                                                $pofile));
+               }
+               else {
+                       File::Copy::syscopy($potfile,$pofile)
+                               or error("po(refreshpofiles) ".
+                                        sprintf(gettext("failed to copy the POT file to %s"),
+                                                $pofile));
+               }
+       }
+}
+
+sub buildtranslationscache() {
+       # use istranslation's side-effect
+       map istranslation($_), (keys %pagesources);
+}
+
+sub resettranslationscache() {
+       undef %translations;
+}
+
+sub flushmemoizecache() {
+       Memoize::flush_cache("istranslatable");
+       Memoize::flush_cache("_istranslation");
+       Memoize::flush_cache("percenttranslated");
+}
+
+sub urlto_with_orig_beautiful_urlpath($$) {
+       my $to=shift;
+       my $from=shift;
+
+       inject(name => "IkiWiki::beautify_urlpath", call => $origsubs{'beautify_urlpath'});
+       my $res=urlto($to, $from);
+       inject(name => "IkiWiki::beautify_urlpath", call => \&mybeautify_urlpath);
+
+       return $res;
+}
+
+sub percenttranslated ($) {
+       my $page=shift;
+
+       $page=~s/^\///;
+       return gettext("N/A") unless istranslation($page);
+       my $file=srcfile($pagesources{$page});
+       my $masterfile = srcfile($pagesources{masterpage($page)});
+       my %options = (
+               "markdown" => (pagetype($masterfile) eq 'mdwn') ? 1 : 0,
+       );
+       my $doc=Locale::Po4a::Chooser::new('text',%options);
+       $doc->process(
+               'po_in_name'    => [ $file ],
+               'file_in_name'  => [ $masterfile ],
+               'file_in_charset'  => 'utf-8',
+               'file_out_charset' => 'utf-8',
+       ) or error("po(percenttranslated) ".
+                  sprintf(gettext("failed to translate %s"), $page));
+       my ($percent,$hit,$queries) = $doc->stats();
+       $percent =~ s/\.[0-9]+$//;
+       return $percent;
+}
+
+sub languagename ($) {
+       my $code=shift;
+
+       return $config{po_master_language}{name}
+               if $code eq $config{po_master_language}{code};
+       return $config{po_slave_languages}{$code}
+               if defined $config{po_slave_languages}{$code};
+       return;
+}
+
+sub otherlanguagesloop ($) {
+       my $page=shift;
+
+       my @ret;
+       my %otherpages=%{otherlanguages($page)};
+       while (my ($lang, $otherpage) = each %otherpages) {
+               if (istranslation($page) && masterpage($page) eq $otherpage) {
+                       push @ret, {
+                               url => urlto_with_orig_beautiful_urlpath($otherpage, $page),
+                               code => $lang,
+                               language => languagename($lang),
+                               master => 1,
+                       };
+               }
+               else {
+                       push @ret, {
+                               url => urlto_with_orig_beautiful_urlpath($otherpage, $page),
+                               code => $lang,
+                               language => languagename($lang),
+                               percent => percenttranslated($otherpage),
+                       }
+               }
+       }
+       return sort {
+               return -1 if $a->{code} eq $config{po_master_language}{code};
+               return 1 if $b->{code} eq $config{po_master_language}{code};
+               return $a->{language} cmp $b->{language};
+       } @ret;
+}
+
+sub homepageurl (;$) {
+       my $page=shift;
+
+       return urlto('', $page);
+}
+
+sub deletetranslations ($) {
+       my $deletedmasterfile=shift;
+
+       my $deletedmasterpage=pagename($deletedmasterfile);
+       my @todelete;
+       map {
+               my $file = newpagefile($deletedmasterpage.'.'.$_, 'po');
+               my $absfile = "$config{srcdir}/$file";
+               if (-e $absfile && ! -l $absfile && ! -d $absfile) {
+                       push @todelete, $file;
+               }
+       } keys %{$config{po_slave_languages}};
+
+       map {
+               if ($config{rcs}) {
+                       IkiWiki::rcs_remove($_);
+               }
+               else {
+                       IkiWiki::prune("$config{srcdir}/$_");
+               }
+       } @todelete;
+
+       if (@todelete) {
+               commit_and_refresh(
+                       gettext("removed obsolete PO files"),
+                       "IkiWiki::Plugin::po::deletetranslations");
+       }
+}
+
+sub commit_and_refresh ($$) {
+       my ($msg, $author) = (shift, shift);
+
+       if ($config{rcs}) {
+               IkiWiki::disable_commit_hook();
+               IkiWiki::rcs_commit_staged($msg, $author, "127.0.0.1");
+               IkiWiki::enable_commit_hook();
+               IkiWiki::rcs_update();
+       }
+       # Reinitialize module's private variables.
+       resetalreadyfiltered();
+       resettranslationscache();
+       flushmemoizecache();
+       # Trigger a wiki refresh.
+       require IkiWiki::Render;
+       # without preliminary saveindex/loadindex, refresh()
+       # complains about a lot of uninitialized variables
+       IkiWiki::saveindex();
+       IkiWiki::loadindex();
+       IkiWiki::refresh();
+       IkiWiki::saveindex();
+}
+
+# on success, returns the filtered content.
+# on error, if $nonfatal, warn and return undef; else, error out.
+sub po_to_markup ($$;$) {
+       my ($page, $content) = (shift, shift);
+       my $nonfatal = shift;
+
+       $content = '' unless defined $content;
+       $content = decode_utf8(encode_utf8($content));
+       # CRLF line terminators make poor Locale::Po4a feel bad
+       $content=~s/\r\n/\n/g;
+
+       # There are incompatibilities between some File::Temp versions
+       # (including 0.18, bundled with Lenny's perl-modules package)
+       # and others (e.g. 0.20, previously present in the archive as
+       # a standalone package): under certain circumstances, some
+       # return a relative filename, whereas others return an absolute one;
+       # we here use this module in a way that is at least compatible
+       # with 0.18 and 0.20. Beware, hit'n'run refactorers!
+       my $infile = new File::Temp(TEMPLATE => "ikiwiki-po-filter-in.XXXXXXXXXX",
+                                   DIR => File::Spec->tmpdir,
+                                   UNLINK => 1)->filename;
+       my $outfile = new File::Temp(TEMPLATE => "ikiwiki-po-filter-out.XXXXXXXXXX",
+                                    DIR => File::Spec->tmpdir,
+                                    UNLINK => 1)->filename;
+
+       my $fail = sub ($) {
+               my $msg = "po(po_to_markup) - $page : " . shift;
+               if ($nonfatal) {
+                       warn $msg;
+                       return undef;
+               }
+               error($msg, sub { unlink $infile, $outfile});
+       };
+
+       writefile(basename($infile), File::Spec->tmpdir, $content)
+               or return $fail->(sprintf(gettext("failed to write %s"), $infile));
+
+       my $masterfile = srcfile($pagesources{masterpage($page)});
+       my %options = (
+               "markdown" => (pagetype($masterfile) eq 'mdwn') ? 1 : 0,
+       );
+       my $doc=Locale::Po4a::Chooser::new('text',%options);
+       $doc->process(
+               'po_in_name'    => [ $infile ],
+               'file_in_name'  => [ $masterfile ],
+               'file_in_charset'  => 'utf-8',
+               'file_out_charset' => 'utf-8',
+       ) or return $fail->(gettext("failed to translate"));
+       $doc->write($outfile)
+               or return $fail->(sprintf(gettext("failed to write %s"), $outfile));
+
+       $content = readfile($outfile)
+               or return $fail->(sprintf(gettext("failed to read %s"), $outfile));
+
+       # Unlinking should happen automatically, thanks to File::Temp,
+       # but it does not work here, probably because of the way writefile()
+       # and Locale::Po4a::write() work.
+       unlink $infile, $outfile;
+
+       return $content;
+}
+
+# returns a SuccessReason or FailReason object
+sub isvalidpo ($) {
+       my $content = shift;
+
+       # NB: we don't use po_to_markup here, since Po4a parser does
+       # not mind invalid PO content
+       $content = '' unless defined $content;
+       $content = decode_utf8(encode_utf8($content));
+
+       # There are incompatibilities between some File::Temp versions
+       # (including 0.18, bundled with Lenny's perl-modules package)
+       # and others (e.g. 0.20, previously present in the archive as
+       # a standalone package): under certain circumstances, some
+       # return a relative filename, whereas others return an absolute one;
+       # we here use this module in a way that is at least compatible
+       # with 0.18 and 0.20. Beware, hit'n'run refactorers!
+       my $infile = new File::Temp(TEMPLATE => "ikiwiki-po-isvalidpo.XXXXXXXXXX",
+                                   DIR => File::Spec->tmpdir,
+                                   UNLINK => 1)->filename;
+
+       my $fail = sub ($) {
+               my $msg = '[po/isvalidpo] ' . shift;
+               unlink $infile;
+               return IkiWiki::FailReason->new("$msg");
+       };
+
+       writefile(basename($infile), File::Spec->tmpdir, $content)
+               or return $fail->(sprintf(gettext("failed to write %s"), $infile));
+
+       my $res = (system("msgfmt", "--check", $infile, "-o", "/dev/null") == 0);
+
+       # Unlinking should happen automatically, thanks to File::Temp,
+       # but it does not work here, probably because of the way writefile()
+       # and Locale::Po4a::write() work.
+       unlink $infile;
+
+       if ($res) {
+           return IkiWiki::SuccessReason->new("valid gettext data");
+       }
+       return IkiWiki::FailReason->new(gettext("invalid gettext data, go back ".
+                                       "to previous page to continue edit"));
+}
+
+# ,----
+# | PageSpecs
+# `----
+
+package IkiWiki::PageSpec;
+
+sub match_istranslation ($;@) {
+       my $page=shift;
+
+       if (IkiWiki::Plugin::po::istranslation($page)) {
+               return IkiWiki::SuccessReason->new("is a translation page");
+       }
+       else {
+               return IkiWiki::FailReason->new("is not a translation page");
+       }
+}
+
+sub match_istranslatable ($;@) {
+       my $page=shift;
+
+       if (IkiWiki::Plugin::po::istranslatable($page)) {
+               return IkiWiki::SuccessReason->new("is set as translatable in po_translatable_pages");
+       }
+       else {
+               return IkiWiki::FailReason->new("is not set as translatable in po_translatable_pages");
+       }
+}
+
+sub match_lang ($$;@) {
+       my $page=shift;
+       my $wanted=shift;
+
+       my $regexp=IkiWiki::glob2re($wanted);
+       my $lang=IkiWiki::Plugin::po::lang($page);
+       if ($lang !~ /^$regexp$/i) {
+               return IkiWiki::FailReason->new("file language is $lang, not $wanted");
+       }
+       else {
+               return IkiWiki::SuccessReason->new("file language is $wanted");
+       }
+}
+
+sub match_currentlang ($$;@) {
+       my $page=shift;
+       shift;
+       my %params=@_;
+
+       return IkiWiki::FailReason->new("no location provided") unless exists $params{location};
+
+       my $currentlang=IkiWiki::Plugin::po::lang($params{location});
+       my $lang=IkiWiki::Plugin::po::lang($page);
+
+       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
index e155dd39b88285837007d51cc8da9b219d63be72..82d8a3df3eeef1c0b4a45c532774637a2a3e5209 100644 (file)
@@ -33,7 +33,7 @@ sub default_timetable {
                gettext("%A evening"),                          # 6
                "",                                             # 7
                gettext("late %A evening"),                     # 8
-               "",                     # 9                     # 9
+               "",                                             # 9
                gettext("%A night"),                            # 10
                "",                                             # 11
        ];
index ee5784f2026db29ac4d48041f6cd355c2356bf1a..cbc8a0f2ce70719e770fc64853feaaa37252f23b 100644 (file)
@@ -54,6 +54,25 @@ sub check_canremove ($$$) {
                        error("renaming of attachments is not allowed");
                }
        }
+
+       my $canremove;
+       IkiWiki::run_hooks(canremove => sub {
+               return if defined $canremove;
+               my $ret=shift->(page => $page, cgi => $q, session => $session);
+               if (defined $ret) {
+                       if ($ret eq "") {
+                               $canremove=1;
+                       }
+                       elsif (ref $ret eq 'CODE') {
+                               $ret->();
+                               $canremove=0;
+                       }
+                       elsif (defined $ret) {
+                               error($ret);
+                               $canremove=0;
+                       }
+               }
+       });
 }
 
 sub formbuilder_setup (@) {
index 0b6e74705b29e86330395344140d7b6390db7cf2..c3e03496fec167591ad6564e97bff45c3e544641 100644 (file)
@@ -10,7 +10,7 @@ sub import {
        hook(type => "formbuilder_setup", id => "rename", call => \&formbuilder_setup);
        hook(type => "formbuilder", id => "rename", call => \&formbuilder);
        hook(type => "sessioncgi", id => "rename", call => \&sessioncgi);
-
+       hook(type => "rename", id => "rename", call => \&rename_subpages);
 }
 
 sub getsetup () {
@@ -87,6 +87,27 @@ sub check_canrename ($$$$$$) {
                        IkiWiki::Plugin::attachment::check_canattach($session, $dest, $srcfile);
                }
        }
+
+       my $canrename;
+       IkiWiki::run_hooks(canrename => sub {
+               return if defined $canrename;
+               my $ret=shift->(cgi => $q, session => $session,
+                       src => $src, srcfile => $srcfile,
+                       dest => $dest, destfile => $destfile);
+               if (defined $ret) {
+                       if ($ret eq "") {
+                               $canrename=1;
+                       }
+                       elsif (ref $ret eq 'CODE') {
+                               $ret->();
+                               $canrename=0;
+                       }
+                       elsif (defined $ret) {
+                               error($ret);
+                               $canrename=0;
+                       }
+               }
+       });
 }
 
 sub rename_form ($$$) {
@@ -293,27 +314,13 @@ sub sessioncgi ($$) {
                                required => 1,
                        };
 
-                       # See if any subpages need to be renamed.
-                       if ($q->param("subpages") && $src ne $dest) {
-                               foreach my $p (keys %pagesources) {
-                                       next unless $pagesources{$p}=~m/^\Q$src\E\//;
-                                       # If indexpages is enabled, the
-                                       # srcfile should not be confused
-                                       # with a subpage.
-                                       next if $pagesources{$p} eq $srcfile;
-
-                                       my $d=$pagesources{$p};
-                                       $d=~s/^\Q$src\E\//$dest\//;
-                                       push @torename, {
-                                               src => $p,
-                                               srcfile => $pagesources{$p},
-                                               dest => pagename($d),
-                                               destfile => $d,
-                                               required => 0,
-                                       };
-                               }
-                       }
-                       
+                       @torename=rename_hook(
+                               torename => \@torename,
+                               done => {},
+                               cgi => $q,
+                               session => $session,
+                       );
+
                        require IkiWiki::Render;
                        IkiWiki::disable_commit_hook() if $config{rcs};
                        my %origpagesources=%pagesources;
@@ -407,7 +414,40 @@ sub sessioncgi ($$) {
                exit 0;
        }
 }
-                                               
+
+# Add subpages to the list of pages to be renamed, if needed.
+sub rename_subpages (@) {
+       my %params = @_;
+
+       my %torename = %{$params{torename}};
+       my $q = $params{cgi};
+       my $src = $torename{src};
+       my $srcfile = $torename{src};
+       my $dest = $torename{dest};
+       my $destfile = $torename{dest};
+
+       return () unless ($q->param("subpages") && $src ne $dest);
+
+       my @ret;
+       foreach my $p (keys %pagesources) {
+               next unless $pagesources{$p}=~m/^\Q$src\E\//;
+               # If indexpages is enabled, the srcfile should not be confused
+               # with a subpage.
+               next if $pagesources{$p} eq $srcfile;
+
+               my $d=$pagesources{$p};
+               $d=~s/^\Q$src\E\//$dest\//;
+               push @ret, {
+                       src => $p,
+                       srcfile => $pagesources{$p},
+                       dest => pagename($d),
+                       destfile => $d,
+                       required => 0,
+               };
+       }
+       return @ret;
+}
+
 sub linklist {
        # generates a list of links in a form suitable for FormBuilder
        my $dest=shift;
@@ -439,7 +479,43 @@ sub renamepage_hook ($$$$) {
 
        return $content;
 }
-                       
+
+sub rename_hook {
+       my %params = @_;
+
+       my @torename=@{$params{torename}};
+       my %done=%{$params{done}};
+       my $q=$params{cgi};
+       my $session=$params{session};
+
+       return () unless @torename;
+
+       my @nextset;
+       foreach my $torename (@torename) {
+               unless (exists $done{$torename->{src}} && $done{$torename->{src}}) {
+                       IkiWiki::run_hooks(rename => sub {
+                               push @nextset, shift->(
+                                       torename => $torename,
+                                       cgi => $q,
+                                       session => $session,
+                               );
+                       });
+                       $done{$torename->{src}}=1;
+               }
+       }
+
+       push @torename, rename_hook(
+               torename => \@nextset,
+               done => \%done,
+               cgi => $q,
+               session => $session,
+       );
+
+       # dedup
+       my %seen;
+       return grep { ! $seen{$_->{src}}++ } @torename;
+}
+
 sub do_rename ($$$) {
        my $rename=shift;
        my $q=shift;
index d79e3170ec4b4e86873d64d0200357670aa0df67..393c17e0fe8cf6b9ec137ba7cfc8ac64e008cd4b 100644 (file)
@@ -33,7 +33,7 @@ sub getsetup () {
 sub checkconfig () {
        foreach my $required (qw(url cgiurl)) {
                if (! length $config{$required}) {
-                       error(sprintf(gettext("Must specify %s when using the search plugin"), $required));
+                       error(sprintf(gettext("Must specify %s when using the %s plugin"), $required, 'search'));
                }
        }
        
index ea7d6e47f576b3cb04ffeb79d9471fdab1cfa9b1..573510191c5c92507fbf0dc68615f9246f3b3437 100644 (file)
@@ -30,10 +30,14 @@ sub import {
        hook(type => "auth", id => "skeleton", call => \&auth);
        hook(type => "sessioncgi", id => "skeleton", call => \&sessioncgi);
        hook(type => "canedit", id => "skeleton", call => \&canedit);
+       hook(type => "canremove", id => "skeleton", call => \&canremove);
+       hook(type => "canrename", id => "skeleton", call => \&canrename);
        hook(type => "checkcontent", id => "skeleton", call => \&checkcontent);
        hook(type => "editcontent", id => "skeleton", call => \&editcontent);
        hook(type => "formbuilder_setup", id => "skeleton", call => \&formbuilder_setup);
        hook(type => "formbuilder", id => "skeleton", call => \&formbuilder);
+       hook(type => "renamepage", id => "skeleton", call => \&renamepage);
+       hook(type => "rename", id => "skeleton", call => \&rename);
        hook(type => "savestate", id => "skeleton", call => \&savestate);
 }
 
@@ -181,6 +185,18 @@ sub canedit ($$$) {
        debug("skeleton plugin running in canedit");
 }
 
+sub canremove (@) {
+       my %params=@_;
+
+       debug("skeleton plugin running in canremove");
+}
+
+sub canrename (@) {
+       my %params=@_;
+
+       debug("skeleton plugin running in canrename");
+}
+
 sub checkcontent (@) {
        my %params=@_;
 
@@ -207,6 +223,18 @@ sub formbuilder (@) {
        debug("skeleton plugin running in formbuilder");
 }
 
+sub renamepage (@) {
+       my %params=@_;
+       
+       debug("skeleton plugin running in renamepage");
+}
+
+sub rename (@) {
+       my %params=@_;
+       
+       debug("skeleton plugin running in rename");
+}
+
 sub savestate () {
        debug("skeleton plugin running in savestate");
 }
index 458192695322317d5e0f69a860476758675987d5..c1f016ffd0e7055bae3f5ba72f9f04b643285c01 100644 (file)
@@ -75,7 +75,7 @@ sub preprocess (@) {
                        my ($x, $y, $color, $diameter, $text, $location)=
                                split(/\s*,\s*/, $value);
                        if (! defined $diameter || $diameter < 0) {
-                               error gettext("bad featurepoint diameter");
+                               error gettext("invalid featurepoint diameter");
                        }
                        $x=int($x);
                        $y=int($y);
@@ -85,7 +85,7 @@ sub preprocess (@) {
                        if (defined $location) {
                                $location=$locmap{$location};
                                if (! defined $location) {
-                                       error gettext("bad featurepoint location");
+                                       error gettext("invalid featurepoint location");
                                }
                        }
                        $php.=qq{\$sparkline->SetFeaturePoint($x, $y, '$color', $diameter};
@@ -101,7 +101,7 @@ sub preprocess (@) {
 
        my $height=int($params{height} || 20);
        if ($height < 2 || $height > 100) {
-               error gettext("bad height value");
+               error gettext("invalid height value");
        }
        if ($style eq "Bar") {
                $php.=qq{\$sparkline->Render($height);\n};
@@ -112,7 +112,7 @@ sub preprocess (@) {
                }
                my $width=int($params{width});
                if ($width < 2 || $width > 1024) {
-                       error gettext("bad width value");
+                       error gettext("invalid width value");
                }
                $php.=qq{\$sparkline->RenderResampled($width, $height);\n};
        }
index fe55e7d0853a8ddcb78171fc3b6ffde3b62ad675..06b987f51ce756676aa977c2c95af0aa4628e952 100644 (file)
@@ -243,10 +243,10 @@ sub rcs_rename ($$) {
        
        if (-d "$config{srcdir}/.svn") {
                # Add parent directory for $dest
-               my $parent=dirname($dest);
+               my $parent=IkiWiki::dirname($dest);
                if (! -d "$config{srcdir}/$parent/.svn") {
                        while (! -d "$config{srcdir}/$parent/.svn") {
-                               $parent=dirname($dest);
+                               $parent=IkiWiki::dirname($dest);
                        }
                        if (system("svn", "add", "--quiet", "$config{srcdir}/$parent") != 0) {
                                warn("svn add $parent failed\n");
index 2da18738d9e4f2740dadb22f647383846f4c3742..5cb67ea07ec34a4f1eb7b6a3176179fa2d5f182a 100644 (file)
@@ -24,13 +24,19 @@ sub calculate_backlinks () {
        $backlinks_calculated=1;
 }
 
-sub backlinks ($) {
+sub backlink_pages ($) {
        my $page=shift;
 
        calculate_backlinks();
 
+       return keys %{$backlinks{$page}};
+}
+
+sub backlinks ($) {
+       my $page=shift;
+
        my @links;
-       foreach my $p (keys %{$backlinks{$page}}) {
+       foreach my $p (backlink_pages($page)) {
                my $href=urlto($p, $page);
                 
                # Trim common dir prefixes from both pages.
@@ -246,7 +252,7 @@ sub prune ($) {
        }
 }
 
-sub refresh () {
+sub srcdir_check () {
        # security check, avoid following symlinks in the srcdir path by default
        my $test=$config{srcdir};
        while (length $test) {
@@ -258,11 +264,10 @@ sub refresh () {
                }
        }
        
-       run_hooks(refresh => sub { shift->() });
+}
 
-       # find existing pages
-       my %exists;
-       my @files;
+sub find_src_files () {
+       my (@files, %pages);
        eval q{use File::Find};
        error($@) if $@;
        find({
@@ -281,10 +286,10 @@ sub refresh () {
                                        $f=~s/^\Q$config{srcdir}\E\/?//;
                                        push @files, $f;
                                        my $pagename = pagename($f);
-                                       if ($exists{$pagename}) {
+                                       if ($pages{$pagename}) {
                                                debug(sprintf(gettext("%s has multiple possible source pages"), $pagename));
                                        }
-                                       $exists{$pagename}=1;
+                                       $pages{$pagename}=1;
                                }
                        }
                },
@@ -310,9 +315,9 @@ sub refresh () {
                                                if (! -l "$config{srcdir}/$f" && 
                                                    ! -e _) {
                                                        my $page=pagename($f);
-                                                       if (! $exists{$page}) {
+                                                       if (! $pages{$page}) {
                                                                push @files, $f;
-                                                               $exists{$page}=1;
+                                                               $pages{$page}=1;
                                                        }
                                                }
                                        }
@@ -321,9 +326,19 @@ sub refresh () {
                }, $dir);
        };
 
+       # Returns a list of all source files found, and a hash of 
+       # the corresponding page names.
+       return \@files, \%pages;
+}
+
+sub refresh () {
+       srcdir_check();
+       run_hooks(refresh => sub { shift->() });
+       my ($files, $exists)=find_src_files();
+
        my (%rendered, @add, @del, @internal);
        # check for added or removed pages
-       foreach my $file (@files) {
+       foreach my $file (@$files) {
                my $page=pagename($file);
                if (exists $pagesources{$page} && $pagesources{$page} ne $file) {
                        # the page has changed its type
@@ -353,7 +368,7 @@ sub refresh () {
                }
        }
        foreach my $page (keys %pagemtime) {
-               if (! $exists{$page}) {
+               if (! $exists->{$page}) {
                        if (isinternal($page)) {
                                push @internal, $pagesources{$page};
                        }
@@ -377,7 +392,7 @@ sub refresh () {
 
        # find changed and new files
        my @needsbuild;
-       foreach my $file (@files) {
+       foreach my $file (@$files) {
                my $page=pagename($file);
                my ($srcfile, @stat)=srcfile_stat($file);
                if (! exists $pagemtime{$page} ||
@@ -403,7 +418,7 @@ sub refresh () {
        }
        calculate_backlinks();
        foreach my $file (@needsbuild) {
-               debug(sprintf(gettext("rendering %s"), $file));
+               debug(sprintf(gettext("building %s"), $file));
                render($file);
                $rendered{$file}=1;
        }
@@ -424,7 +439,7 @@ sub refresh () {
                        foreach my $page (keys %{$backlinks{$p}}) {
                                my $file=$pagesources{$page};
                                next if $rendered{$file};
-                               debug(sprintf(gettext("rendering %s, which links to %s"), $file, $p));
+                               debug(sprintf(gettext("building %s, which links to %s"), $file, $p));
                                render($file);
                                $rendered{$file}=1;
                        }
@@ -435,7 +450,7 @@ sub refresh () {
                my @changed=(keys %rendered, @del);
 
                # rebuild dependant pages
-               foreach my $f (@files) {
+               foreach my $f (@$files) {
                        next if $rendered{$f};
                        my $p=pagename($f);
                        if (exists $depends{$p}) {
@@ -445,7 +460,7 @@ sub refresh () {
                                        next if $f eq $file;
                                        my $page=pagename($file);
                                        if (pagespec_match($page, $depends{$p}, location => $p)) {
-                                               debug(sprintf(gettext("rendering %s, which depends on %s"), $f, $page));
+                                               debug(sprintf(gettext("building %s, which depends on %s"), $f, $page));
                                                render($f);
                                                $rendered{$f}=1;
                                                last;
@@ -484,7 +499,7 @@ sub refresh () {
                        my $linkfile=$pagesources{$link};
                        if (defined $linkfile) {
                                next if $rendered{$linkfile};
-                               debug(sprintf(gettext("rendering %s, to update its backlinks"), $linkfile));
+                               debug(sprintf(gettext("building %s, to update its backlinks"), $linkfile));
                                render($linkfile);
                                $rendered{$linkfile}=1;
                        }
@@ -496,7 +511,7 @@ sub refresh () {
                my $page=pagename($src);
                foreach my $file (@{$oldrenderedfiles{$page}}) {
                        if (! grep { $_ eq $file } @{$renderedfiles{$page}}) {
-                               debug(sprintf(gettext("removing %s, no longer rendered by %s"), $file, $page));
+                               debug(sprintf(gettext("removing %s, no longer built by %s"), $file, $page));
                                prune($config{destdir}."/".$file);
                        }
                }
@@ -520,7 +535,7 @@ sub commandline_render () {
        $file=~s/\Q$config{srcdir}\E\/?//;
 
        my $type=pagetype($file);
-       die sprintf(gettext("ikiwiki: cannot render %s"), $srcfile)."\n" unless defined $type;
+       die sprintf(gettext("ikiwiki: cannot build %s"), $srcfile)."\n" unless defined $type;
        my $content=readfile($srcfile);
        my $page=pagename($file);
        $pagesources{$page}=$file;
index 93f9e89e2ab3314e6cc4ed85321c7168a3f1f67d..602d8fb5c1f7b52e03f27cea44c236a7e2fdf222 100755 (executable)
@@ -52,7 +52,7 @@ extra_clean:
        rm -f *.man ikiwiki.out ikiwiki.setup plugins/*.pyc
        $(MAKE) -C po clean
 
-extra_install:
+underlay_install:
        install -d $(DESTDIR)$(PREFIX)/share/ikiwiki
        for dir in `cd underlays && find . -follow -type d ! -regex '.*\.svn.*'`; do \
                install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/$$dir; \
@@ -70,6 +70,7 @@ extra_install:
                fi \
        done
        
+extra_install: underlay_install
        # Install example sites.
        for dir in `cd doc/examples; find . -type d ! -regex '.*\.svn.*'`; do \
                install -d $(DESTDIR)$(PREFIX)/share/ikiwiki/examples/$$dir; \
@@ -130,16 +131,16 @@ WriteMakefile(
        PM_FILTER       => './pm_filter $(PREFIX) $(VER) $(PROBABLE_INST_LIB)',
        MAN1PODS        => {},
        PREREQ_PM       => {
-               'XML::Simple'           => 0,
-               'Text::Markdown'        => 0,
-               'Date::Parse'           => 0,
-               'HTML::Template'        => 0,
-               'HTML::Scrubber'        => 0,
-               'CGI::FormBuilder'      => 3.02.02,
-               'CGI::Session'          => 0,
-               'Mail::Sendmail'        => 0,
-               'HTML::Parser'          => 0,
-               'URI'                   => 0,
-               'Data::Dumper'          => 2.11,
+               'XML::Simple'           => "0",
+               'Text::Markdown'        => "0",
+               'Date::Parse'           => "0",
+               'HTML::Template'        => "0",
+               'HTML::Scrubber'        => "0",
+               'CGI::FormBuilder'      => "3.02.02",
+               'CGI::Session'          => "0",
+               'Mail::Sendmail'        => "0",
+               'HTML::Parser'          => "0",
+               'URI'                   => "0",
+               'Data::Dumper'          => "2.11",
        },
 );
index 3da5e3a621cc32c2b11b8a9e3d03efd953232231..b3d2513d9ec7cd2903af8f8d0f7e27bca6d16535 100644 (file)
@@ -17,7 +17,7 @@ our $wikiname=IkiWiki::Setup::Automator::ask(
 our $rcs=IkiWiki::Setup::Automator::ask(
        gettext("What revision control system to use?"), "git");
 our $admin=IkiWiki::Setup::Automator::ask(
-       gettext("What wiki user (or openid) will be admin?"), $ENV{USER});
+       gettext("Which user (wiki account or openid) will be admin?"), $ENV{USER});
 use Net::Domain q{hostfqdn};
 our $domain=hostfqdn() || ikiwiki::setup::automator::ask(
        gettext("What is the domain name of the web server?"), "");
index 8ee0658038f38bb244168828e2004d5a32c31caf..11a03c993dc147c72bf79ccc3f0325760403a904 100644 (file)
@@ -1,3 +1,39 @@
+ikiwiki (3.15) UNRELEASED; urgency=low
+
+  * Add new hooks: canremove, canrename, rename. (intrigeri)
+  * rename: Refactor subpage rename handling code into rename hook. (intrigeri)
+  * po: New plugin, suporting translation of wiki pages using po files.
+    (intrigeri)
+  * Add build machinery to build po files to translate the underlay wikis,
+  * Add further build machinery to generate translated underlays from
+    the po file, for use by wikis whose primary language is not English.
+  * Add Danish basewiki translation by Jonas Smedegaard.
+  * img: Fix adding of dependency from page to the image.
+  * pagestats: add `among` parameter, which only counts links from specified
+    pages (smcv)
+  * pagestats: when making a tag cloud, don't emit links where the tag is
+    unused (smcv)
+
+ -- Joey Hess <joeyh@debian.org>  Tue, 02 Jun 2009 17:03:41 -0400
+
+ikiwiki (3.14159) unstable; urgency=low
+
+  * svn: Fix rcs_rename to properly scope call to dirname.
+  * img: Pass the align parameter through to the generated img tag.
+  * Move OpenID pretty-printing from openid plugin to core (smcv)
+
+ -- Joey Hess <joeyh@debian.org>  Thu, 16 Jul 2009 14:37:22 -0400
+
+ikiwiki (3.1415) unstable; urgency=low
+
+  * img: Fix extra double quote with alt text. (smcv)
+  * Updated French debconf templates translation. Closes: #535103
+  * openid: Support Net::OpenID 2.x when pretty-printing
+    openids. (smcv)
+  * highlight: Fix utf-8 encoding bug. Closes: #535028
+
+ -- Joey Hess <joeyh@debian.org>  Tue, 07 Jul 2009 16:25:05 -0400
+
 ikiwiki (3.141) unstable; urgency=low
 
   * comment: Make comment directives no longer use the internal "_comment"
index 233de8f7c52e525c6c53cda47c526a4ceff39b85..db86aa9098e6c054b518e975c33eaa02e1f8fa5c 100644 (file)
@@ -6,7 +6,7 @@ Build-Depends-Indep: dpkg-dev (>= 1.9.0), libxml-simple-perl,
   libtext-markdown-perl | markdown, 
   libtimedate-perl, libhtml-template-perl,
   libhtml-scrubber-perl, wdg-html-validator,
-  libhtml-parser-perl, liburi-perl, perlmagick
+  libhtml-parser-perl, liburi-perl, perlmagick, po4a
 Maintainer: Joey Hess <joeyh@debian.org>
 Uploaders: Josh Triplett <josh@freedesktop.org>
 Standards-Version: 3.8.1
@@ -35,7 +35,8 @@ Suggests: viewvc | gitweb | viewcvs, libsearch-xapian-perl,
   liblocale-gettext-perl (>= 1.05-1), libtext-typography-perl,
   libtext-csv-perl, libdigest-sha1-perl, graphviz, libnet-amazon-s3-perl,
   sparkline-php, texlive, dvipng, libtext-wikicreole-perl,
-  libsort-naturally-perl, libtext-textile-perl, libhighlight-perl
+  libsort-naturally-perl, libtext-textile-perl, libhighlight-perl,
+  po4a (>= 0.35-1), gettext
 Conflicts: ikiwiki-plugin-table
 Replaces: ikiwiki-plugin-table
 Provides: ikiwiki-plugin-table
index 5fc55f5c5a9b2d1a08551bbcb2e9affd4ac78810..762f9f445997bdc839a476ad1343a14d0eb73fd9 100644 (file)
@@ -4,7 +4,7 @@ License: GPL-2+
  The full text of the GPL is distributed as doc/GPL in ikiwiki's source,
  and is distributed in /usr/share/common-licenses/GPL-2 on Debian systems.
 
-Files: templates/*, underlays/basewiki/*, doc/ikiwiki/directive/*, ikiwiki.setup
+Files: templates/*, underlays/basewiki/*, doc/ikiwiki/directive/*, ikiwiki.setup, po/underlay/*
 Copyright: © 2006-2008 Joey Hess <joey@ikiwiki.info>
 License: other
  Redistribution and use in source and compiled forms, with or without
@@ -128,6 +128,10 @@ Copyright:
  © 2008 Simon McVittie <http://smcv.pseudorandom.co.uk/>
 License: GPL-2+
 
+Files: po.pm
+Copyright: © 2008-2009 intrigeri <intrigeri@boum.org>
+License: GPL-2+
+
 Files: 404.pm
 Copyright: © 2009 Simon McVittie <http://smcv.pseudorandom.co.uk/>
 License: GPL-2+
index a40a454c1dad742a3a14ba702b51d84ac0990974..e4b0fd4482da3fd33fa52af82b1b2e18b943784c 100644 (file)
@@ -67,3 +67,42 @@ Why do they appear two times with conflicting values in the very same hashes?
 >>>> (reported as [[!debbug 437927]] and [[!debbug 437932]]) --[[JeremieKoenig]]
 
 Marking [[done]] since it's not really an ikiwiki bug. --[[Joey]]
+
+----
+
+I'm using boa and getting some odd behaviour if I don't set the `umask`
+option in the config file.  Editing a page through the web interface and
+hitting "Save Page" regenerates the `index.html` file with no world-read
+permissions.  As a result, the server serves a "403 - Forbidden" error page
+instead of the page I was expecting to return to.
+
+There are only two ways I found to work around this: adding a `umask 022`
+option to the config file, or re-compiling the wiki from the command line
+using `ikiwiki --setup`.  Setting up a git back-end and re-running `ikiwiki
+--setup` from inside a hook had no effect; it needed to be at the terminal.
+--Paul
+
+> Since others seem to have gotten ikiwiki working with boa, 
+> I'm guessing that this is not a generic problem with boa, but that
+> your boa was started from a shell that had an unusual umask and inherited
+> that. --[[Joey]] 
+
+>> That's right; once I'd worked out what was wrong, it was clear that any
+>> webserver should have been refusing to serve the page.  I agree about the
+>> inherited umask; I hadn't expected that.  Even if it's unusual, though, it
+>> probably won't be uncommon - this was a stock Ubuntu 9.04 install.  --Paul
+
+(I'm new to wiki etiquette - would it be more polite to leave these details
+on the wiki, or to remove them and only leave a short summary?  Thanks.
+--Paul)
+
+> Well, I just try to keep things understandable and clear, whether than
+> means deleting bad old data or not. That said, this page is a bug report,
+> that was already closed. It's generally better to open a new bug report
+> rather than edit an old closed one. --[[Joey]] 
+                                      
+>> Thanks for the feedback, I've tidied up my comment accordingly.  I see
+>> your point about the bug; sorry for cluttering the page up.  I doubt it's
+>> worth opening a new page at this stage, but will do so if there's a next
+>> time.  The solution seems worth leaving, though, in case anyone else in my
+>> situation picks it up.  --Paul
diff --git a/doc/bugs/Renaming_a_file_via_the_web_is_failing_when_using_subversion.mdwn b/doc/bugs/Renaming_a_file_via_the_web_is_failing_when_using_subversion.mdwn
new file mode 100644 (file)
index 0000000..1a737df
--- /dev/null
@@ -0,0 +1,28 @@
+I'm using ikiwiki 3.12 on Mac OS X (installed via mac ports)
+
+When trying to rename a file via the web interface (using the rename plugin) I get the following error:
+
+Error: Undefined subroutine &IkiWiki::Plugin::svn::dirname called at /opt/local/lib/perl5/vendor_perl/5.8.9/IkiWiki/Plugin/svn.pm line 246.
+
+Applying the following patch fixed it:
+
+    --- IkiWiki/Plugin/svn.pm.orig  2009-07-08 12:25:23.000000000 -0400
+    +++ IkiWiki/Plugin/svn.pm       2009-07-08 12:28:36.000000000 -0400
+    @@ -243,10 +243,10 @@
+     
+            if (-d "$config{srcdir}/.svn") {
+                    # Add parent directory for $dest
+    -               my $parent=dirname($dest);
+    +               my $parent=IkiWiki::dirname($dest);
+                    if (! -d "$config{srcdir}/$parent/.svn") {
+                            while (! -d "$config{srcdir}/$parent/.svn") {
+    -                               $parent=dirname($dest);
+    +                               $parent=Ikiwiki::dirname($dest);
+                            }
+                            if (system("svn", "add", "--quiet", "$config{srcdir}/$parent") != 0) {
+                                    warn("svn add $parent failed\n");
+
+
+> Thank you very much for the patch, which I've applied. I wonder how
+> that snuck in (aside from the obvious, that the svn plugin is not often
+> used and the code was added w/o being tested..). [[done]] --[[Joey]] 
index 02ce4e221093b33bf0d9e82bd32f758c49799186..a9b223a465cabbc5cc9b3820f6ea4d43ec9345fd 100644 (file)
@@ -21,3 +21,10 @@ pagespec, and implicitly add "and !internal()" to it.
 
 Either approach would require fully parsing the pagespec. And consider cases
 like "!(foo and !bar)". Doesn't seem at all easy to solve. --[[Joey]]
+
+> It occurs to me that at least one place in ikiwiki optimizes by assuming
+> that pagespecs not mentioning the word "internal" never match internal
+> pages. I wonder whether this bug could be solved by making that part of
+> the definition of a pagespec, rather than a risky optimization
+> like it is now? That seems strange, though - having this special case
+> would make pagespecs significantly harder to understand. --[[smcv]]
index 09ded91da56c00cad891cfa14f2c12719538c478..783f5e47c3f5a4d85dbc9d58bd86564e801dbeec 100644 (file)
@@ -3,8 +3,15 @@ Some elements of
 safely supported by ikiwiki. There are [several differences between HTML4 and
 HTML5](http://www.w3.org/TR/html5-diff/).
 
+[[!template id=gitbranch branch=hendry/html5 author="[[Kai_Hendry|hendry]]"]]
+
 * [HTML5 branch](http://git.webconverger.org/?p=ikiwiki;h=refs/heads/html5)
 * [ikiwiki instance with HTML5 templates](http://natalian.org)
+* [HTML5 outliner tool](http://gsnedders.html5.org/outliner/) -- to check you have the structure of your markup correct
+
+# htmlscrubber.pm needs to not scrub new HTML5 elements
+
+* [new elements](http://www.w3.org/TR/html5-diff/#new-elements)
 
 # HTML5 Validation and t/html.t
 
@@ -28,9 +35,9 @@ This element is poorly supported by browsers. As a workaround, `style.css` needs
                display: block;
        }
 
-Internet Explorer will display it as a block, though you can't seem to be further control the style.
+Internet Explorer will display it as a block, though you can't seem to be able to further control the style.
 
-# Validator complains with no h1-h6 in header
+# Validator complains about no h1-h6 in header
 
 * [#509](http://bugzilla.validator.nu/show_bug.cgi?id=509)
 
diff --git a/doc/bugs/img_with_alt_has_extra_double_quote.mdwn b/doc/bugs/img_with_alt_has_extra_double_quote.mdwn
new file mode 100644 (file)
index 0000000..81bbe7f
--- /dev/null
@@ -0,0 +1,32 @@
+The [[ikiwiki/directive/img]] directive emits an extra double quote if alt=x is
+specified (as is necessary for valid HTML). This results in malformed HTML,
+like this:
+
+    <img src="U" width="W" height="H"" alt="A" />
+                                     ^
+
+This [[patch]] is available from the img-bugfix branch in my git repository:
+
+    commit a648c439f3467571374daf597e9b3a659ea2008f
+    Author: Simon McVittie <smcv@ http://smcv.pseudorandom.co.uk/>
+    Date:   2009-06-16 17:15:06 +0100
+    
+        img plugin: do not emit a redundant double-quote before alt attribute
+    
+    diff --git a/IkiWiki/Plugin/img.pm b/IkiWiki/Plugin/img.pm
+    index a697fea..a186abd 100644
+    --- a/IkiWiki/Plugin/img.pm
+    +++ b/IkiWiki/Plugin/img.pm
+    @@ -121,7 +121,7 @@ sub preprocess (@) {
+            my $imgtag='<img src="'.$imgurl.
+                    '" width="'.$im->Get("width").
+                    '" height="'.$im->Get("height").'"'.
+    -               (exists $params{alt} ? '" alt="'.$params{alt}.'"' : '').
+    +               (exists $params{alt} ? ' alt="'.$params{alt}.'"' : '').
+                    (exists $params{title} ? ' title="'.$params{title}.'"' : '').
+                    (exists $params{class} ? ' class="'.$params{class}.'"' : '').
+                    (exists $params{id} ? ' id="'.$params{id}.'"' : '').
+
+--[[smcv]]
+
+[[done]] --[[Joey]] 
index b1f8ed2b31cbcc6d08bcfcb40ed45225a8bbe1ea..0a67934aa454404e9820bc463af76c8f3e708146 100644 (file)
@@ -1,3 +1,5 @@
+[[!tag plugins/map patch]]
+
 input:
 
     before.
@@ -13,7 +15,7 @@ Presuming that the pagespec does not match, output:
 
 The UL element is not closed.
 
-Patch[[!tag patch]]:
+Patch:
 
     --- /usr/share/perl5/IkiWiki/Plugin/map.pm  2009-05-06 00:56:55.000000000 +0100
     +++ IkiWiki/Plugin/map.pm   2009-06-15 12:23:54.000000000 +0100
@@ -33,3 +35,59 @@ Patch[[!tag patch]]:
      
 
 -- [[Jon]]
+
+> Strictly speaking, a `<ul>` with no `<li>`s isn't valid HTML either...
+> could `map` instead delay emitting the first `<ul>` until it determines that
+> it will have at least one item? Perhaps refactoring that function into
+> something easier to regression-test would be useful. --[[smcv]]
+
+>> You are right (just checked 4.01 DTD to confirm). I suspect refactoring
+>> the function would be wise. From my brief look at it to formulate the
+>> above I thought it was a bit icky.  I'm not a good judge of what would
+>> be regression-test friendly but I might have a go at reworking it. With
+>> this variety of problem I have a strong inclination to use HOFs like map,
+>> grep. - [[Jon]]
+
+>>> The patch in [[map/discussion|plugins/map/discussion]] has the same
+>>> problem, but does suggest a simpler approach to solving it (bail out
+>>> early if the map has no items at all). --[[smcv]]
+
+>>>> Thanks for pointing out the problem. I guess this patch should solve it.
+>>>> --[[harishcm]]
+
+>>>>> Well, I suppose that's certainly a minimal patch for this bug :-)
+>>>>> I'm not the IkiWiki maintainer, but if I was, I'd apply it, so I've put
+>>>>> it in a git branch for Joey's convenience. Joey, Jon: any opinion?
+>>>>>
+>>>>> If you want to be credited for this patch under a name other than
+>>>>> "harishcm" (e.g. your real name), let me know and I'll amend the branch.
+>>>>> (Or, make a git branch of your own and replace the reference just below,
+>>>>> if you prefer.) --[[smcv]]
+
+>>>>>> The current arrangement looks fine to me. Thanks. --[[harishcm]]
+
+[[!template id=gitbranch author="[[harishcm]]" branch=smcv/ready/harishcm-map-fix]]
+
+Patch:
+
+    --- /usr/local/share/perl/5.8.8/IkiWiki/Plugin/map.pm
+    +++ map.pm
+    @@ -80,7 +80,17 @@
+       my $indent=0;
+       my $openli=0;
+       my $addparent="";
+    -  my $map = "<div class='map'>\n<ul>\n";
+    +  my $map = "<div class='map'>\n";
+    +
+    +  # Return empty div if %mapitems is empty
+    +  if (!scalar(keys %mapitems)) {
+    +          $map .= "</div>\n";
+    +          return $map; 
+    +  } 
+    +  else { # continue populating $map
+    +          $map .= "<ul>\n";
+    +  }
+    +
+       foreach my $item (sort keys %mapitems) {
+               my @linktext = (length $mapitems{$item} ? (linktext => $mapitems{$item}) : ());
+               $item=~s/^\Q$common_prefix\E\///
diff --git a/doc/bugs/nested_raw_included_inlines.mdwn b/doc/bugs/nested_raw_included_inlines.mdwn
new file mode 100644 (file)
index 0000000..33433e2
--- /dev/null
@@ -0,0 +1,34 @@
+I have the following structure:
+
+## page0
+    # Page 0
+    \[[!inline raw="yes" pages="page1"]]
+
+## page1
+    # Page 1
+    \[[!inline pages="page2"]]
+
+## page2
+    # Page 2
+    test
+
+In this situation, a change in page 2 will trigger a rebuild of page1 but not of page0.
+
+    refreshing wiki..
+    scanning page2.mdwn
+    rendering page2.mdwn
+    rendering page1.mdwn, which depends on page2
+    done
+
+In my real world situation, page1 is actually listing all pages that match a certain tag and page0 is the home page.
+Whenever a page got tagged, it will appear on page1 but not on page0.
+
+Am I missing something? Is this a bug or Ikiwiki not supposed to support this use case?
+
+> Perhaps the inline plugin isn't being clever enough about dependencies -
+> strictly speaking, when a page is inlined with full content, the inlining
+> page should probably inherit all the inlined page's dependencies.
+> That might be prohibitively slow in practise due to the way IkiWiki
+> currently merges pagespecs, though - maybe the patches I suggested for
+> [[separating_and_uniquifying_pagespecs|todo/should_optimise_pagespecs]]
+> would help? --[[smcv]]
diff --git a/doc/bugs/openid_no_longer_pretty-prints_OpenIDs.mdwn b/doc/bugs/openid_no_longer_pretty-prints_OpenIDs.mdwn
new file mode 100644 (file)
index 0000000..85a206b
--- /dev/null
@@ -0,0 +1,17 @@
+The git commit (in my `openid` branch) says it all:
+
+    Update IkiWiki::openiduser to work with Net::OpenID 2.x
+    
+    openiduser previously used a constructor that no longer works in 2.x.
+    However, all we actually want is the (undocumented) DisplayOfURL function
+    that is invoked by the display method, so try to use that.
+
+This bug affects ikiwiki.info (my commits show up in [[RecentChanges]] as http://smcv.pseudorandom.co.uk/ rather than smcv [pseudorandom.co.uk]).
+
+> Cherry picked, thanks. --[[Joey]]
+
+Relatedly, the other commit on the same branch would be nice to have
+(edited to add: I've now moved it, and its discussion, to
+[[todo/pretty-print_OpenIDs_even_if_not_enabled]]). --[[smcv]]
+
+[[!tag done]]
index 042d6a20c28e5777c53fc3459885fb640cd7c99d..be14e5126eae8d2d67168741222b6c525bddd5c4 100644 (file)
@@ -1,3 +1,5 @@
+[[!tag patch plugins/inline patch/core]]
+
 The `IkiWiki::pagetitle` function does not respect title changes via `meta.title`. It really should, so that links rendered with `htmllink` get the proper title in the link text.
 
 --[[madduck]]
@@ -5,7 +7,7 @@ The `IkiWiki::pagetitle` function does not respect title changes via `meta.title
 ----
 
 It is possible to set a Page-Title in the meta-plugin, but that one isn't
-reused in parentlinks. This [[patch]] may fix it.
+reused in parentlinks. This patch may fix it.
 
 <ul>
 <li> I give pagetitle the full path to a page.
@@ -132,7 +134,7 @@ diff -c /usr/share/perl5/IkiWiki/Plugin/meta.pm.distrib /usr/share/perl5/IkiWiki
 >
 >> It was actually more complicated than expected. A working prototype is
 >> now in my `meta` branch, see my userpage for the up-to-date url.
->> Thus tagging [[patch]]. --[[intrigeri]]
+>> Thus tagging patch. --[[intrigeri]]
 >>
 >>> Joey, please consider merging my `meta` branch. --[[intrigeri]]
 
diff --git a/doc/bugs/prettydate_with_weekday-date_inconsistency.mdwn b/doc/bugs/prettydate_with_weekday-date_inconsistency.mdwn
new file mode 100644 (file)
index 0000000..430d65a
--- /dev/null
@@ -0,0 +1,32 @@
+Prettydate creates strings like this: _Last edited in the wee hours of Tuesday night, July 1st, 2009_. However, July 1st is a Wednesday, so either date or Weekday should be modified. In the spirit is probably _Tuesday night, June 30th_. --ulrik
+
+> The default prettydate times are fairly idiosyncratic to
+> how [[Joey]] thinks about time. Specifically, it's still
+> Tuesday night until he wakes up Wednesday morning -- which
+> could be in the afternoon. :-P But, Joey also realizes
+> that dates change despite his weird time sense, and so
+> July 1st starts at midnight on Tuesday and continues
+> through Tuesday night and part of Wednesday.
+> 
+> (This might not be as idiosyncratic as I make it out to be..
+> I think that many people would agree that in the wee hours
+> of New Years Eve, when they're staggering home ahead of
+> the burning daylight, the date is already January 1st.)
+> 
+> I think the bug here is that prettydate can't represent
+> all views of time. While the times
+> of day can be configured, and it's possible to configure it
+> to call times after midnight "Wednesday morning, July 1st",
+> it is not possible to configure the date or weekday based
+> on the time of day.
+> 
+> In order to do so, prettydate's timetable would need to be
+> extended to include the "%B %o, %Y" part, and that extended
+> to include "%B-", "%o-", and "%Y-" to refer to the day
+> before.
+> 
+> --[[Joey]]
+
+>> fair enough, I think I can get converted to a warped time perspective. --ulrik
+
+>>> Perhaps we can consider this [[done]], then? --[[smcv]]
index dace2ca1972667166d43579e91252dfbedfd4d0e..08af5fe2caa7a1ff5f3b87fa10e08574ff2b030b 100644 (file)
@@ -11,7 +11,7 @@ It seems like gettext only searches for locale information in /usr/share/locale,
                     return $gettext_obj->get(shift);
             }
 
-[[!tag patch]]
+[[!tag patch patch/core]]
 -- [[ThomasBleher]]
 
 > According to my testing, this patch makes ikiwiki's localisation fail for
diff --git a/doc/forum/Accessing_meta_values_in_pages__63__.mdwn b/doc/forum/Accessing_meta_values_in_pages__63__.mdwn
new file mode 100644 (file)
index 0000000..78594f9
--- /dev/null
@@ -0,0 +1,8 @@
+If I set a meta value on a page (lets say \[[!meta author="Adam Shand"]] is there some way to retrieve the value of author and put it somewhere visible on the page?  Eg. can I write:
+
+author: $author
+
+I know I can update the raw templates but it'd be nice to be able to do this in the pages them selves.
+
+Cheers,
+Adam.
diff --git a/doc/forum/Can_OpenID_users_be_adminusers__63__.mdwn b/doc/forum/Can_OpenID_users_be_adminusers__63__.mdwn
new file mode 100644 (file)
index 0000000..7599e71
--- /dev/null
@@ -0,0 +1,69 @@
+I've just finished an upgrade to 3.141 and am trying to give myself admin rights to play with the new webadmin features.  My login is via OpenID but from reading on the wiki I believe that OpenID users should be able to be granted admin rights.  However I'm obviously doing something wrong as when I click on the "Preferences" link at the top of the page I don't see any admin features.
+
+My login is: http://adam.shand.net/
+
+In .ikiwiki/userdb I see:
+
+> adam@shand.net
+> email <br>
+> password <br>
+> locked_pages <br>
+> banned <br>
+> 1229722296 <br>
+> regdate <br>
+> http://adam.shand.net/ <br>
+
+And in my config file I have:
+
+> adminuser => [qw{http://adam.shand.net/}],
+
+Any pointers to what I'm doing wrong would be much appreciated.
+
+Thanks,
+Adam.
+
+> This is certianly supposed to work. For example, the admin
+> user on my ikiwikis is `http://joey.kitenet.net/`
+> 
+> The only caveat I know of to make it work is that the 
+> adminuser openid url has to exactly match the openid url that
+> ikiwiki sees when you log in. Including any trailing slash,
+> and the `http://`. --[[Joey]] 
+>> Hrm, it's not working.  I'm sure I've made a silly mistake somewhere but
+>> I've looked and looked and just can't find it.  Any suggestions on where
+>> to look for debugging information would be much appreciated. -- [[Adam]]
+
+>>> Well, you could use this patch to add debugging info about admin
+>>> username comparisons:
+
+<pre>
+diff --git a/IkiWiki/UserInfo.pm b/IkiWiki/UserInfo.pm
+index 0bf100a..77b467a 100644
+--- a/IkiWiki/UserInfo.pm
++++ b/IkiWiki/UserInfo.pm
+@@ -71,6 +71,8 @@ sub userinfo_setall ($$) {
+ sub is_admin ($) {
+       my $user_name=shift;
++      print STDERR "is_admin test @{$config{adminuser}} vs $user_name: ".(grep { $_ eq $user_name } @{$config{adminuser}})."\n";
++
+       return grep { $_ eq $user_name } @{$config{adminuser}};
+ }
+</pre>
+
+>>>> After applying that change to what is probably
+>>>> `/usr/share/perl5/IkiWiki/UserInfo.pm` on your system, 
+>>>> when you go to the preferences page it should log in your web server's
+>>>> error.log, something like this:
+
+       [Wed Jul 08 12:54:35 2009] [error] [client 127.0.1.1] is_admin test http://joey.kitenet.net/ vs http://joey.kitenet.net/: 1
+
+>>>> So you can see if the two usernames/openids match. If the end is "0",
+>>>> they don't match. If nothing is logged, you have not enabled the websetup plugin.
+>>>> If the end if "1" you should see the "Wiki Setup" button, if not the
+>>>> problem is not in determining if you're an admin, but elsewhere..
+>>>> --[[Joey]]
+
+I was being incredibly stupid and missed that websetup is a **plugin** and thus needed to be enabled.  Many thanks for your patient assistance, by helping me eliminate the unlikely it eventually led me to the obvious.  Cheers.  -- [[Adam]]
diff --git a/doc/forum/speeding_up_ikiwiki.mdwn b/doc/forum/speeding_up_ikiwiki.mdwn
new file mode 100644 (file)
index 0000000..0b21642
--- /dev/null
@@ -0,0 +1,91 @@
+My website takes a fairly long time to render. It takes a long time to do
+things like add pages, too. I'd like to try and understand what takes the
+time and what I might be able to do to speed things up.
+
+I have 1,234 objects on my site (yikes!). 717 are items under "/log" which
+I think might be the main culprit because there are some complex pagespecs
+operating in that area (e.g. log/YYYY/MM/DD, YYYY/MM and YYYY for YYYY >=
+2003, YYYY <= 2008 which include every page under log/ which was modified
+in the corresponding YYYY or YYYY/MM or YYYY/MM/DD). There is very little
+linking between the world outside of /log and that within it.
+
+I was interested in generating a graphical representation of ikiwiki's idea of
+page inter-dependencies. I started by looking at the '%links' hash using the
+following plugin:
+
+    #!/usr/bin/perl
+    package IkiWiki::Plugin::deps;
+    
+    use warnings;
+    use strict;
+    use IkiWiki 3.00;
+    
+    
+    sub import {
+        hook(type => "format", id => "deps", call => \&fooble);
+    }
+    
+    my $hasrun = 0;
+    
+    sub fooble ($$) {
+        if(0 == $hasrun) {
+            $hasrun = 1;
+            open MYFILE, ">/home/jon/deps.dot";
+            foreach my $key (keys %links) {
+                my $arrref = $links{$key};
+                foreach my $page (@$arrref) {
+                    print MYFILE "$key -> $page;\n";
+                }
+            }
+            close MYFILE;
+        }
+    }
+    
+    1
+
+The resulting file was enormous: 2,734! This turns out to be because of the following code in scan() in Render.pm:
+
+    if ($config{discussion}) {$
+        # Discussion links are a special case since they're
+        # not in the text of the page, but on its template.
+        $links{$page}=[ $page."/".gettext("discussion") ];
+
+Worst case (no existing discussion pages) this will double the number of link
+relationships. Filtering out all of those, the output drops to 1,657. This
+number is still too large to really visualize: the graphviz PNG and PDF output
+engines segfault for me, the PS one works but I can't get any PS software to
+render it without exploding.
+
+Now, the relations in the links hash are not the same thing as IkiWiki's notion of dependencies. Can anyone point me at  that data structure / where I might be able to add some debugging foo to generate a graph of it?
+
+Once I've figured out that I might be able to optimize some pagespecs. I
+understand pagespecs are essentially translated into sequential perl code. I
+might gain some speed if I structure my complex pagespecs so that the tests
+which have the best time complexity vs. "pages ruled out" ratio are performed
+first.
+
+I might also be able to find some dependencies which shouldn't be there and
+remove the dependency.
+
+In general any advice people could offer on profiling ikiwiki would be great.
+I did wonder about invoking the magic profiling arguments to perl via the CGI
+wrapper.
+
+
+-- [[Jon]]
+
+> Dependencies go in the `%IkiWiki::depends` hash, which is not exported. It
+> can also be dumped out as part of the wiki state - see [[tips/inside_dot_ikiwiki]].
+>
+> It's a map from page name to increasingly complex pagespec, although
+> the `optimize-depends` branch in my git repository changes that to a
+> map from a page name to a *list* of pagespecs which are automatically
+> or'd together for use (this at least means duplicates can be weeded out).
+>
+> See [[todo/should_optimise_pagespecs]] for more on that.
+>
+> I've been hoping to speed up IkiWiki too - making a lot of photo albums
+> with my [[plugins/contrib/album]] plugin makes it pretty slow.
+>
+> One thing that I found was a big improvement was to use `quick=yes` on all
+> my `archive=yes` [[ikiwiki/directive/inline]]s. --[[smcv]]
index 9e28f14649b69a48b544e4f442be6da30a701752..18fbd238b27e65868d6f73506cd50b0737927c42 100644 (file)
@@ -42,6 +42,10 @@ into [[Joey]]'s working tree. This is recommended. :-)
 * [[ikipostal|DavidBremner]] `git://pivot.cs.unb.ca/git/ikipostal.git`
 * [[ikimailbox|DavidBremner]] `git://pivot.cs.unb.ca/git/ikimailbox.git`
 * [[ikiplugins|DavidBremner]] `git://pivot.cs.unb.ca/git/ikiplugins.git`
+* [[jonas|JonasSmedegaard]] `git://source.jones.dk/ikiwiki-upstream`
+* [[arpitjain]] `git://github.com/arpitjain11/ikiwiki.git`
+* [[chrysn]] `git://github.com/github076986099/ikiwiki.git`
+* [[simonraven]] `git://github.com/kjikaqawej/ikiwiki-simon.git`
 
 ## branches
 
index 1d1f29bea875102f1c3973cf081ed8ba36f9274f..66efd008e47db04b8c2b8313b3f010a5ef6596e2 100644 (file)
@@ -18,9 +18,9 @@ making the image smaller than the specified size. You can also specify only
 the width or the height, and the other value will be calculated based on
 it: "200x", "x200"
 
-You can also pass `alt`, `title`, `class` and `id` parameters. These are
-passed through unchanged to the html img tag. If you include a `caption`
-parameter, the caption will be displayed centered beneath the image.
+You can also pass `alt`, `title`, `class`, `align` and `id` parameters.
+These are passed through unchanged to the html img tag. If you include a
+`caption` parameter, the caption will be displayed centered beneath the image.
 
 The `link` parameter is used to control whether the scaled down image links
 to the full size version. By default it does; set "link=somepage" to link
index 3f62c276708f865df30081194f2396fb57a7f582..be0665d04da289ee74c3174375266ddce64e7a27 100644 (file)
@@ -56,3 +56,71 @@ to nowhere for 20 bugs.« is shown inlined.
 > 
 > So no, you can't reference template directive parameters inside inline's
 > template, because it's already expanded at that point. --[[Joey]] 
+
+>> Thank you for the explanation. Can you think of another way to accomplish
+>> my goals?
+>>
+>> Right now, I only see the option to edit the title with the
+>> `[[/ikiwiki/directive/meta]]` directive and the field `title`.
+>>
+>> How could a solution look like?
+>>
+>> 1. The possibility to add custom fields to the `meta` directive.
+>> 1. The possibility to specify in a page, how the page should be displayed
+>>    when used by inlined. That could be done by a new directive `cinlined`
+>>    (for »custom inlined«) which is chosen by the `inline` directive to
+>>    display if told to do so.
+>>
+>>    [[!cinlined text="""Text which can also use Parameter, bla blubb …"""]]
+>> --[[PaulePanter]]
+>>> You can make the body of a page change depending on whether it's being
+>>> inlined, with the [[ikiwiki/directive/if]] directive from the
+>>> [[plugins/conditional]] plugin:
+>>>
+>>>     \[[!if test="inlined()"
+>>>       then="""[[!template id=productsummary
+>>>         location="Warehouse 23" price=20
+>>>         ]]"""
+>>>       else="""[[!template id=productdetail
+>>>         location="Warehouse 23" price=20
+>>>         description="Every home should have one"
+>>>         ]]"""
+>>>     ]]
+>>>
+>>> Perhaps that does some of what you want?
+>>>
+>>> If you want to go beyond that, my inclination would be to write
+>>> a simple plugin to deal with whatever it is you want to do (bug
+>>> metadata or product metadata or whatever) rather than prematurely
+>>> generalizing. --[[smcv]]
+
+## meta parameters are not enough
+
+I think I have the same problem as Paule, as I want extra arbitary parameters in my template.
+
+This is what I am doing currently, which makes my skin crawl. In `wgts/foo.mdwn`
+I have resorted to using AUTHORURL as the location of this widgets icon:
+
+       [[!meta authorurl="/ico/aHR0cDovL2JvbmRpLm9tdHAub3JnL3dpZGdldHMvYmF0dGVyeQ==.png" ]]
+
+In templates I have a file called `wgtlist.tmpl`:
+
+       <div class="widget">
+       <TMPL_IF NAME="AUTHORURL">
+       <img src="<TMPL_VAR AUTHORURL>" />
+       </TMPL_IF>
+       <TMPL_IF NAME="PERMALINK">
+       <a href="<TMPL_VAR PERMALINK>"><TMPL_VAR TITLE></a><br />
+       <TMPL_ELSE>
+       <a href="<TMPL_VAR PAGEURL>"><TMPL_VAR TITLE></a><br />
+       </TMPL_IF>
+       Posted <TMPL_VAR CTIME>
+       </div>
+
+My index page has:
+
+       [[!inline pages="./wgts/*" show=5 feeds=no actions=no rootpage="wgts" archive="yes" template=wgtlist]]
+
+Else can you please suggest a smarter way of getting certain data out from pages for a inline index?
+
+--[[hendry]]
index cfb5737a565898bbb31babcfbee8155df38c7ead..426f3e4afdf6aeda4fb782812555ead457b3a3e1 100644 (file)
@@ -12,4 +12,14 @@ And here's how to create a table of all the pages on the wiki:
 
        \[[!pagestats style="table"]]
 
+The optional `among` parameter limits counting to pages that match a
+[[ikiwiki/PageSpec]]. For instance, to display a cloud of tags used on blog
+entries, you could use:
+
+       \[[!pagestats pages="tags/*" among="blog/posts/*"]]
+
+or to display a cloud of tags related to Linux, you could use:
+
+       \[[!pagestats pages="tags/* and not tags/linux" among="tagged(linux)"]]
+
 [[!meta robots="noindex, follow"]]
index b476bde1f0b1385d26db52ed943500a27199f14b..5f0f44e2ebe6cf847bfe2b6c8b73d8e62ad4969b 100644 (file)
@@ -24,17 +24,18 @@ match all pages except for Discussion pages and the SandBox:
 
 Some more elaborate limits can be added to what matches using these functions:
 
-* "`link(page)`" - match only pages that link to a given page (or glob)
-* "`tagged(tag)`" - match pages that are tagged or link to the given tag (or glob)
-* "`backlink(page)`" - match only pages that a given page links to
-* "`creation_month(month)`" - match only pages created on the given month
+* "`link(page)`" - matches only pages that link to a given page (or glob)
+* "`tagged(tag)`" - matches pages that are tagged or link to the given tag (or
+  tags matched by a glob)
+* "`backlink(page)`" - matches only pages that a given page links to
+* "`creation_month(month)`" - matches only pages created on the given month
 * "`creation_day(mday)`" - or day of the month
 * "`creation_year(year)`" - or year
-* "`created_after(page)`" - match only pages created after the given page
+* "`created_after(page)`" - matches only pages created after the given page
   was created
-* "`created_before(page)`" - match only pages created before the given page
+* "`created_before(page)`" - matches only pages created before the given page
   was created
-* "`glob(someglob)`" - match pages that match the given glob. Just writing
+* "`glob(someglob)`" - matches pages that match the given glob. Just writing
   the glob by itself is actually a shorthand for this function.
 * "`internal(glob)`" - like `glob()`, but matches even internal-use 
   pages that globs do not usually match.
index 344a4a734c6308cba4b193987dace2b8a8a95f11..419f00ee4284f3a0bae6305e290a1ef8d5cef95a 100644 (file)
@@ -16,14 +16,14 @@ check all attachments for viruses, something like this could be used:
 The regular [[ikiwiki/PageSpec]] syntax is expanded with the following
 additional tests:
 
-* "`maxsize(size)`" - Tests whether the attachment is no larger than the
+* "`maxsize(size)`" - tests whether the attachment is no larger than the
   specified size. The size defaults to being in bytes, but "kb", "mb", "gb"
   etc can be used to specify the units.
   
-* "`minsize(size)`" - Tests whether the attachment is no smaller than the
+* "`minsize(size)`" - tests whether the attachment is no smaller than the
   specified size.
 
-* "`ispage()`" - Tests whether the attachment will be treated by ikiwiki as a
+* "`ispage()`" - tests whether the attachment will be treated by ikiwiki as a
   wiki page. (Ie, if it has an extension of ".mdwn", or of any other enabled
   page format).
 
@@ -31,7 +31,7 @@ additional tests:
   use `!ispage()` ; if you only want to allow wiki pages to be uploaded
   as attachments, use `ispage()`.
 
-* "`mimetype(foo/bar)`" - This checks the MIME type of the attachment. You can
+* "`mimetype(foo/bar)`" - checks the MIME type of the attachment. You can
   include a glob in the type, for example `mimetype(image/*)`.
 
-* "`virusfree()`" - Checks the attachment with an antiviral program.
+* "`virusfree()`" - checks the attachment with an antiviral program.
diff --git a/doc/ikiwiki/pagespec/po.mdwn b/doc/ikiwiki/pagespec/po.mdwn
new file mode 100644 (file)
index 0000000..e0264dd
--- /dev/null
@@ -0,0 +1,16 @@
+[[!if test="enabled(po)"
+     then="This wiki has po support **enabled**."
+     else="This wiki has po support **disabled**."]]
+
+If the [[!iki plugins/po desc=po]] plugin is enabled, the regular
+[[ikiwiki/PageSpec]] syntax is expanded with the following additional
+tests that can be used to improve user navigation in a multi-lingual
+wiki:
+
+* "`lang(LL)`" - tests whether a page is written in the language
+  specified as a ISO639-1 (two-letter) language code.
+* "`currentlang()`" - tests whether a page is written in the same
+  language as the current page.
+
+Note that every non-po page is considered to be written in
+`po_master_language`, as specified in `ikiwiki.setup`.
index b9fcc71daafe31e65d660c897d63f9fc4f0d7601..72bdbf3d832c9cbf6f0f776873cdc4c7e9823245 100644 (file)
@@ -3,7 +3,6 @@ Projects & Organizations
 
 * [This wiki](http://ikiwiki.info) (of course!)
 * [Planet Debian upstream](http://updo.debian.net/)
-* The [ion window manager homepage](http://modeemi.fi/~tuomov/ion/)
 * [Debian Mentors wiki](http://jameswestby.net/mentors/)
 * The [Sparse wiki](http://kernel.org/pub/linux/kernel/people/josh/sparse).
 * [The BSD Associate Admin Book Project](http://bsdwiki.reedmedia.net/)
@@ -45,6 +44,7 @@ Projects & Organizations
 * [Cosin Homepage](http://cosin.ch) uses an Ikiwiki with a subversion repository.
 * [Bosco Free Orienteering Software](http://bosco.durcheinandertal.ch)
 * The [GNU Hurd](http://www.gnu.org/software/hurd/)'s web pages
+* The [Free Software Foundation](http://fsf.org) uses it for their internal wiki, with subversion.
 
 Personal sites and blogs
 ========================
@@ -118,14 +118,15 @@ Personal sites and blogs
 * [Per Bothner's blog](http://per.bothner.com/blog/)
 * [Bernd Zeimetz (bzed)](http://bzed.de/)
 * [Gaudenz Steinlin](http://gaudenz.durcheinandertal.ch)
-* [Simon Kjika'qawej C.](http://simonraven.kisikew.org/ikiwiki/) Please note it might change location at any time (likely wiki.k.o or under /wiki/ at simonraven.k.o).
+* [Simon Kjika'qawej C.](http://simonraven.kisikew.org/) - several other sites, too.
 * [NeoCarz Wiki](http://www.neocarz.com/wiki/) Yes - its actually Ikiwiki behind that! I'm using Nginx and XSL to transform the ikiwiki renderings thanks to the valid XHTML output of ikiwiki. Great work Joey!!
 * [Natalian - Kai Hendry's personal blog](http://natalian.org/)
 * [Mick Pollard aka \_lunix_ - Personal sysadmin blog and wiki](http://www.lunix.com.au)
+* [tumashu's page](http://tumashu.github.com) This is my personal site in github  created with ikiwiki and only a page,you can get the [source](http://github.com/tumashu/tumashu/tree/master)  
 
 Please feel free to add your own ikiwiki site!
 
-See also: [Debian ikiwiki popcon graph](http://popcon.debian.org/~igloo/popcon-graphs/index.php?packages=ikiwiki)
+See also: [Debian ikiwiki popcon graph](http://qa.debian.org/popcon.php?package=ikiwiki)
 and [google search for ikiwiki powered sites](http://www.google.com/search?q=%22powered%20by%20ikiwiki%22).
 
 While nothing makes me happier than knowing that ikiwiki has happy users, dropping some change in the [[TipJar]] is a nice way to show extra appreciation.
index c1129a4358cc9a9e75364be6c3a837a54e617825..02cdb29c915092bdeb3ac55b0eb32464d73f5f8d 100644 (file)
@@ -228,3 +228,44 @@ For ubuntu 8.04:
 I was just trying to get the latest version.
 
 In any case, thanks for the help, and thanks for the superb software.  I really like it a lot.
+
+---
+
+## Prerequisite modules not found for non-root user
+Hi, I'm a non-root user trying to use IkiWiki on an academic webserver with Perl 5.8.8 but several missing modules, so I grab them from CPAN (edited):
+
+    cd ~; PERL5LIB=`pwd`/ikiwiki:`pwd`/ikiwiki/cpan:`pwd`/lib/perl5 PERL_MM_USE_DEFAULT=1 perl -MCPAN -e 'CPAN::Shell->install("Bundle::IkiWiki")'
+
+That puts a lot of files in ~/.cpan. Then when I go into the directory where I untarred IkiWiki and try to run the Perl makefile:
+
+    cd ~/ikiwiki; perl Makefile.PL PREFIX=$HOME/ikiwiki
+
+I get warnings that all the modules needed were not found:
+
+Warning: prerequisite CGI::FormBuilder  not found.
+Warning: prerequisite CGI::Session 0 not found.
+Warning: prerequisite Date::Parse 0 not found.
+Warning: prerequisite HTML::Scrubber 0 not found.
+Warning: prerequisite HTML::Template 0 not found.
+Warning: prerequisite Mail::Sendmail 0 not found.
+Warning: prerequisite Text::Markdown 0 not found.
+
+CORRECTION 1: I played around with CPAN and got the installation to the point of succeeding with >99% of tests in "make test".
+
+> What was the magic CPAN rune that worked for you? --[[Joey]] 
+
+An attempt of "make install" failed while trying to put files in /etc/IkiWiki but per the output's instructions, I reran "make install" and that seemed to work, until this error, which doesn't seem to be satisfiable:
+
+    Warning: You do not have permissions to install into /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi at /usr/lib/perl5/5.8.8/ExtUtils/Install.pm line 114.
+    Installing /usr/lib/perl5/site_perl/5.8.8/IkiWiki.pm
+    mkdir /usr/lib/perl5/site_perl/5.8.8/IkiWiki: Permission denied at /usr/lib/perl5/5.8.8/ExtUtils/Install.pm line 176
+
+Any suggestions? Whew!
+
+> When you build ikiwiki, try doing it like this to make it
+> install to your home directory. Then you can run `~/bin/ikiwiki`
+> --[[Joey]] 
+
+       perl Makefile.PL INSTALL_BASE=$HOME PREFIX=
+       make
+       make install
diff --git a/doc/news/version_3.11.mdwn b/doc/news/version_3.11.mdwn
deleted file mode 100644 (file)
index 2d1dc70..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-ikiwiki 3.11 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * Avoid using python-support. Closes: #[525086](http://bugs.debian.org/525086)
-   * websetup: Display stderr in browser if ikiwiki setup fails.
-   * blogspam: Load RPC::XML library in checkconfig, so that an
-     error can be printed at that point if it's not available,
-     allowing the admin to see it during wiki setup.
-     Closes: #[520015](http://bugs.debian.org/520015)
-   * websetup: If setup fails, restore old setup file.
-   * relativedate: Deal with clock skew.
-   * Add IkiWiki::ErrorReason objects, and modify pagespecs to return
-     them in cases where they fail to match due to a configuration or syntax
-     error.
-   * pagespec\_match\_list: New API function, matches pages in a list
-     and throws an error if the pagespec is bad.
-   * inline, brokenlinks, calendar, linkmap, map, orphans, pagecount,
-     pagestate, postsparkline: Display a handy error message if the pagespec
-     is erronious.
-   * comments: Add link to comment post form to allow user to sign in
-     if they wish to, if the configuration makes signin optional
-     for commenting.
-   * Updated Danish translation from Jonas Smedegaard. Closes: #[525751](http://bugs.debian.org/525751)
-   * translation.mdwn: Typo fixes. Closes: #[525753](http://bugs.debian.org/525753)"""]]
diff --git a/doc/news/version_3.12.mdwn b/doc/news/version_3.12.mdwn
deleted file mode 100644 (file)
index 1e1862b..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-You may want to run `ikiwiki-transition deduplinks my.setup`
-after upgrading to this version of ikiwiki. This command will
-optimise your wiki's saved state, removing duplicate information
-that can slow ikiwiki down.
-
-ikiwiki 3.12 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-  * Re-enable python-support and add python:Depends to control file.
-  * ikiwiki-makerepo: Avoid using abs_path, as it apparently
-    fails on nonexistant directories with some broken perl
-    versions.
-  * inline: Minor optimisation.
-  * add_link: New function, which plugins should use rather than
-    modifying %links directly, to avoid it accumulating duplicates.
-  * ikiwiki-transition: Add a deduplinks action, that can be used
-    to remove duplicate links and optimise a wiki w/o rebuilding it.
-  * external: Fix pagespec_match and pagespec_match_list.
-    Closes: #527281
-"""]]
diff --git a/doc/news/version_3.13.mdwn b/doc/news/version_3.13.mdwn
deleted file mode 100644 (file)
index 0c8f7ab..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-News for ikiwiki 3.13:
-
-   The `ikiwiki-transition deduplinks` command introduced in the
-   last release was buggy. If you followed the NEWS file instructions
-   and ran it, you should run `ikiwiki -setup` to rebuild your wiki
-   to fix the problem.
-
-ikiwiki 3.13 released with [[!toggle text="these changes"]]
-[[!toggleable text="""
-   * ikiwiki-transition: If passed a nonexistant srcdir, or one not
-     containing .ikiwiki, abort with an error rather than creating it.
-   * Allow underlaydir to be overridden without messing up inclusion
-     of other underlays via add\_underlay.
-   * More friendly display of markdown, textile in edit form selector
-     (jmtd)
-   * Allow curly braces to be used in pagespecs, and avoid a whole class
-     of potential security problems, by avoiding performing any string
-     interpolation on user-supplied data when translating pagespecs.
-   * ikiwiki-transition: Allow setup files to be passed to all subcommands
-     that need a srcdir.
-   * ikiwiki-transition: deduplinks was broken and threw away all
-     metadata stored by plugins in the index. Fix this bug.
-   * listdirectives: Avoid listing \_comment directives and generally
-     assume any directive starting with \_ is likewise internal."""]]
\ No newline at end of file
diff --git a/doc/news/version_3.1415.mdwn b/doc/news/version_3.1415.mdwn
new file mode 100644 (file)
index 0000000..93310bc
--- /dev/null
@@ -0,0 +1,7 @@
+ikiwiki 3.1415 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * img: Fix extra double quote with alt text. (smcv)
+   * Updated French debconf templates translation. Closes: #[535103](http://bugs.debian.org/535103)
+   * openid: Support Net::OpenID 2.x when pretty-printing
+     openids. (smcv)
+   * highlight: Fix utf-8 encoding bug. Closes: #[535028](http://bugs.debian.org/535028)"""]]
\ No newline at end of file
diff --git a/doc/news/version_3.14159.mdwn b/doc/news/version_3.14159.mdwn
new file mode 100644 (file)
index 0000000..21f91fd
--- /dev/null
@@ -0,0 +1,5 @@
+ikiwiki 3.14159 released with [[!toggle text="these changes"]]
+[[!toggleable text="""
+   * svn: Fix rcs\_rename to properly scope call to dirname.
+   * img: Pass the align parameter through to the generated img tag.
+   * Move OpenID pretty-printing from openid plugin to core (smcv)"""]]
\ No newline at end of file
index 4650627366f5118e8c2eb5518cae8512a46e59c3..5c3b4a8d06b5224aebf6bea2b499069310f60f5f 100644 (file)
@@ -1,8 +1,8 @@
 ikiwiki supports adding "History" links to the top of pages to browse the
-revison history of a page. This is enabled by the `historyurl` setting,
+revision history of a page. This is enabled by the `historyurl` setting,
 which is used to specify the URL to a web interface such as [[ViewVC]]
 (for Subversion) or [[Gitweb]]. In that url, "\[[file]]" is replaced with
 the name of the file to view.
 
-The [[plugins/repolist]] plugin can suppliment this information with
+The [[plugins/repolist]] plugin can supplement this information with
 urls to the underlying repository of the wiki.
diff --git a/doc/patch/core.mdwn b/doc/patch/core.mdwn
new file mode 100644 (file)
index 0000000..fcf0bdb
--- /dev/null
@@ -0,0 +1,7 @@
+Some [[patches|patch]] affect the ikiwiki core, rather than just a plugin.
+This tag collects those patches. Please tag such patches with 'patch/core'
+as well as 'patch'.
+
+[[!inline pages="(todo/* or bugs/*) and link(patch/core)
+    and !link(bugs/done) and !link(todo/done) and !*/Discussion"
+  rootpage="todo" archive="yes"]]
index a3fec4d8990d8bb72afd6ea155e3a3d0c66d839e..506657a1c1a16806921b216d842f8bc815adf22c 100644 (file)
@@ -5,8 +5,13 @@ By default, anonymous users cannot edit the wiki. This plugin allows
 anonymous web users, who have not signed in, to edit any page in the wiki
 by default.
 
-The plugin also has a configuration setting, `anonok_pagespec`. This
-[[PageSpec]] can be used to allow anonymous editing of matching pages.
+Please think twice before enabling this plugin. If your wiki is accessible
+to the internet, it *will* be subject to spamming if this plugin is
+enabled. Such spam is not only a pain to deal with, but it bloats the
+revision control history of your wiki.
+
+The plugin has a configuration setting, `anonok_pagespec`. This
+[[ikiwiki/PageSpec]] can be used to allow anonymous editing of matching pages.
 
 If you're using the [[comments]] plugin, you can allow anonymous comments
 to be posted by setting:
index 3d7452b9a87698b54b02b76de7641a62e1cf1c05..396d1f6d4d07ce2f9da9c70e88d269998501fe06 100644 (file)
@@ -161,3 +161,30 @@ Raw HTML was not initially allowed by default (this was configurable).
 >>> all directives will contine to be inexpensive and safe enough that it's
 >>> sensible to allow users to (ab)use them on open wikis.
 >>> --[[Joey]]
+
+----
+
+I have a test ikiwiki setup somewhere to investigate adopting the comments
+plugin. It is setup with no auth enabled and I got hammered with a spam attack
+over the last weekend (predictably).  What surprised me was the scale of the
+attack: ikiwiki eventually triggered OOM and brought the box down. When I got
+it back up, I checked out a copy of the underlying git repository, and it
+measured 280M in size after being packed. Of that, about 300K was data prior
+to the spam attack, so the rest was entirely spam text, compressed via git's
+efficient delta compression.
+
+I had two thoughts about possible improvements to the comments plugin in the
+wake of this:
+
+ * comment pagination - there is a hard-to-define upper limit on the number
+   of comments that can be appended to a wiki page whilst the page remains
+   legible.  It would be useful if comments could be paginated into sub-pages.
+
+ * crude flood control - asides from spam attacks (and I am aware of
+   [[plugins/blogspam]]), people can crap flood or just aggressively flame
+   repeatedly. An interesting prevention measure might be to not let an IP
+   post more than 3 sequential comments to a page, or to the site, without
+   at least one other comment being interleaved. I say 3 rather than 2 since
+   correction follow-ups are common.
+
+-- [[Jon]]
diff --git a/doc/plugins/contrib/album.mdwn b/doc/plugins/contrib/album.mdwn
new file mode 100644 (file)
index 0000000..f550ca6
--- /dev/null
@@ -0,0 +1,101 @@
+[[!template id=plugin name=album author="[[Simon_McVittie|smcv]]"]]
+[[!template id=gitbranch branch=smcv/album author="[[Simon_McVittie|smcv]]"]]
+[[!tag type/chrome]]
+
+Available from [[smcv]]'s git repository, in the `album` branch
+([[users/smcv/gallery|users/smcv/gallery]] contains some older
+thoughts about this plugin).
+
+This plugin formats a collection of images into a photo album,
+in the same way as many websites: good examples include the
+PHP application [Gallery](http://gallery.menalto.com/), Flickr,
+and Facebook's Photos "application". I've called it `album`
+to distinguish it from [[contrib/gallery|plugins/contrib/gallery]],
+although `gallery` might well be a better name for this functionality.
+
+The web UI I'm trying to achieve consists of one
+[HTML page of thumbnails](http://www.pseudorandom.co.uk/2008/2008-03-08-panic-cell-gig/)
+as an entry point to the album, where each thumbnail links to
+[a "viewer" HTML page](http://www.pseudorandom.co.uk/2008/2008-03-08-panic-cell-gig/img_0068/)
+with a full size image, next/previous thumbnail links, and
+[[plugins/comments]].
+
+(The Summer of Code [[plugins/contrib/gallery]] plugin does the
+next/previous UI in Javascript using Lightbox, which means that
+individual photos can't be bookmarked in a meaningful way, and
+the best it can do as a fallback for non-Javascript browsers
+is to provide a direct link to the image.)
+
+## Writing the viewers
+
+    \[[!albumimage image=foo.jpg album=myalbum
+        title=...
+        caption=...
+        copyright=...
+        size=...
+        viewertemplate=...
+    ]]
+
+Each viewer contains one `\[[!albumimage]]` directive. This
+sets the `image` filename, the `album` in which this image appears,
+and an optional `caption`, and can override the `size` at which to
+display the image and the `viewertemplate` to use to display the
+image.
+
+It can also have `title`, `copyright` and `date` parameters, which
+are short-cuts for [[ikiwiki/directive/meta]] directives.
+
+The viewer can also have any other content, but typically the
+directive will be the only thing there.
+
+Eventually, there will be a specialized CGI user interface to
+edit all the photos of an album at once, upload a new photo
+(which will attach the photo but also write out a viewer page
+for it), or mark an already-uploaded photo as a member of an
+album (which is done by writing out a viewer page for it).
+
+The `\[[!albumimage]]` directive is replaced by an
+[[ikiwiki/directive/img]], wrapped in some formatting using a
+template (by default `albumviewer.tmpl`). The template can (and
+should) also include "next photo", "previous photo" and
+"up to gallery" links.
+
+The next/previous links are themselves implemented by
+[[inlining|ikiwiki/directive/inline]] the next or previous
+photo, using a special template (by default `albumnext.tmpl`
+or `albumprev.tmpl`), in `archive`/`quick` mode.
+
+## Writing the album
+
+The album contains one `\[[!album]]` directive. It may also
+contain any number of `\[[!albumsection]]` directives, for
+example the demo album linked above could look like:
+
+    \[[!album]]
+    <!-- replaced with one uncategorized photo -->
+
+    ## Gamarra
+
+    \[[!albumsection filter="link(gamarra)"]]
+    <!-- all the Gamarra photos -->
+
+    ## Smokescreen
+
+    \[[!albumsection filter="link(smokescreen)"]]
+    <!-- all the Smokescreen photos -->
+
+    ...
+
+The `\[[!album]]` directive is replaced by an
+[[ikiwiki/directive/inline]] which automatically includes every
+page that has an `\[[!albumimage]]` directive linking it to this
+album, except those that will appear in an `\[[!albumsection]]`.
+
+The `inline` is in `archive`/`quick` mode, but includes some
+extra information about the images, including file size and a
+thumbnail (again, made using [[ikiwiki/directive/img]]). The
+default template is `albumitem.tmpl`, which takes advantage
+of these things.
+
+Each `\[[!albumsection]]` is replaced by a similar inline, which
+selects a subset of the photos in the album.
index 5e3db3d7c4ddae958c8dd8da7d2e93e1736035fc..b9ad3cc8eb3375a5e3f94b7a69e0045afa6e8b6b 100644 (file)
@@ -39,3 +39,9 @@ I'm missing something terribly obvious? --Peter
 By the way: these need not be *HTML* files; `copyright.mdwn`,
 respectively `license.mdwn`, or every other format supported
 by ikiwiki are likewise fine.  --[[tschwinge]]
+
+> Jon has done something similar in [[todo/allow_site-wide_meta_definitions]];
+> his version has the advantages that it doesn't invent magical page names,
+> and can extend beyond just copyright and license, but has the disadvantage
+> that it doesn't support setting defaults for a given "subdirectory"
+> only. --[[smcv]]
index c0a23254f207634c6b854b1c06624e479c0d64bc..7bf1ba0df218cc86fb2c2fa4aa4f7041375efd59 100644 (file)
@@ -3,3 +3,5 @@
 
 [The Mediawiki plugin](http://u32.net/Mediawiki_Plugin/) allows ikiwiki to
 process pages written using MediaWiki markup.
+
+Available at <http://alcopop.org/~jon/mediawiki.pm>
diff --git a/doc/plugins/contrib/mediawiki/discussion.mdwn b/doc/plugins/contrib/mediawiki/discussion.mdwn
new file mode 100644 (file)
index 0000000..5066d9d
--- /dev/null
@@ -0,0 +1,5 @@
+Anyone know a safe place where this plugin can be found? -- mjr at phonecoop.coop
+
+> I ended up doing a backassward way of doing it, as described at the [convert discussion page](http://ikiwiki.info/tips/convert_mediawiki_to_ikiwiki/discussion/). -[[simonraven]]
+
+>> I've mirrored it at <http://alcopop.org/~jon/mediawiki.pm>. -- [[Jon]]
diff --git a/doc/plugins/contrib/trail.mdwn b/doc/plugins/contrib/trail.mdwn
new file mode 100644 (file)
index 0000000..52dea52
--- /dev/null
@@ -0,0 +1,61 @@
+[[!tag type/chrome patch]]
+[[!template id=gitbranch branch=smcv/trail author="[[smcv]]"]]
+
+Available from [[smcv]]'s git repository, in the `trail` branch. This
+plugin aims to solve [[todo/wikitrails]] in a simpler way.
+
+Joey: what do you think of this plugin? If you like the general approach
+and are likely to include it in ikiwiki, I'll try to modify
+[[plugins/contrib/album]] to be based on it, rather than partially
+reinventing it.
+
+This plugin can benefit from
+[[another_of_my_branches|todo/inline_plugin:_specifying_ordered_page_names]]
+but does not require it.
+
+----
+
+[[!template id=plugin name=trail author="[[Simon_McVittie|smcv]]"]]
+
+It's sometimes useful to have "trails" of pages in a wiki, as a guided
+tour, sequence of chapters etc. In this plugin, a trail is represented
+by a page, and the pages in the trail are indicated by specially marked
+links within that page.
+
+If using the default `page.tmpl`, each page automatically displays the
+trails that it's a member of (if any), with links to the trail and to
+the next and previous members.
+
+The `traillink` [[ikiwiki/directive]] is used to record which pages
+are in a trail, and simultaneously link to them. Alternatively, the
+[[ikiwiki/directive/inline]] directive can be used with `trail=yes`
+to record the inlined pages as part of the trail, in the order in
+which they are inlined.
+
+## Directives
+
+(These will go to the appropriate pages in [[ikiwiki/directive]] if this
+plugin is included in ikiwiki.)
+
+### traillink
+
+The `traillink` directive is supplied by the [[!iki plugins/contrib/trail desc=trail]]
+plugin. This directive appears on the page representing a trail. It acts
+as a visible [[ikiwiki/WikiLink]], but also records the linked page as
+a member of the trail.
+
+Various syntaxes can be used:
+
+    \[[!traillink Badgers]]
+    \[[!traillink How_to_find_mushrooms_using_badgers|badgers]]
+    \[[!traillink badgers text="How to find mushrooms using badgers"]]
+
+### trailoptions
+
+The `trailoptions` directive is supplied by the [[!iki plugins/contrib/trail desc=trail]]
+plugin. This directive appears on the page representing a trail, and
+produces no output.
+
+Currently, the only option supported is `[[!trailoptions circular=yes]]`,
+which adds links between the first and last pages, turning the trail into
+a circle.
index c724a6492c4824a7fd5df96888009d01f9c2e486..2f7b140d6e6859369dd89d3fcf6a59ac63de7bc7 100644 (file)
@@ -18,3 +18,32 @@ We'd also very much like to have an option to display the title of the page inst
 
 There's a patch implementing this in [[!debbug 484510]]. It needs a few fixes
 before I merge it. Now applied. --[[Joey]]
+
+----
+
+I noticed that when the pagespec returns no map items, the map plugin does not close off the ul and div tags. Below is a simple patch 
+that seems to work on the examples I tried. I am a beginner so please help me out here. Thanks. --[[harishcm]]
+
+    --- a/map.pm
+    +++ b/map.pm
+    @@ -81,6 +81,13 @@
+            my $openli=0;
+            my $addparent="";
+            my $map = "<div class='map'>\n<ul>\n";
+    +
+    +       # Return properly closed $map if %mapitems is empty
+    +       if (!scalar(keys %mapitems)) {
+    +               $map .= "</ul>\n</div>\n";
+    +               return $map; 
+    +       }
+    +
+            foreach my $item (sort keys %mapitems) {
+                    my @linktext = (length $mapitems{$item} ? (linktext => $mapitems{$item}) : ());
+                    $item=~s/^\Q$common_prefix\E\///
+    
+> This was also reported as [[bugs/map_fails_to_close_ul_element_for_empty_list]];
+> this patch is simpler than the one there, but has the same problem (it emits
+> `<ul></ul>`, which technically isn't valid HTML either). --[[smcv]]
+
+>> Thanks for the tip, I added another patch addressing the issue at
+>> [[bugs/map_fails_to_close_ul_element_for_empty_list]]. --[[harishcm]]
diff --git a/doc/plugins/po.mdwn b/doc/plugins/po.mdwn
new file mode 100644 (file)
index 0000000..0c81105
--- /dev/null
@@ -0,0 +1,296 @@
+[[!template id=plugin name=po core=0 author="[[intrigeri]]"]]
+[[!tag type/format]]
+
+This plugin adds support for multi-lingual wikis, translated with
+gettext, using [po4a](http://po4a.alioth.debian.org/).
+
+It depends on the Perl `Locale::Po4a::Po` library (`apt-get install po4a`).
+As detailed bellow in the security section, `po4a` is subject to
+denial-of-service attacks before version 0.35.
+
+[[!toc levels=2]]
+
+Introduction
+============
+
+A language is chosen as the "master" one, and any other supported
+language is a "slave" one.
+
+A page written in the "master" language is a "master" page. It can be
+of any page type supported by ikiwiki, except `po`. It does not have to be
+named a special way: migration to this plugin does not imply any page
+renaming work.
+
+Example: `bla/page.mdwn` is a "master" Markdown page written in
+English; if `usedirs` is enabled, it is rendered as
+`bla/page/index.en.html`, else as `bla/page.en.html`.
+
+Any translation of a "master" page into a "slave" language is called
+a "slave" page; it is written in the gettext PO format. `po` is now
+a page type supported by ikiwiki.
+
+Example: `bla/page.fr.po` is the PO "message catalog" used to
+translate `bla/page.mdwn` into French; if `usedirs` is enabled, it is
+rendered as `bla/page/index.fr.html`, else as `bla/page.fr.html`
+
+(In)Compatibility
+=================
+
+This plugin does not support the `indexpages` mode. If you don't know
+what it is, you probably don't care.
+
+
+Configuration
+=============
+
+Supported languages
+-------------------
+
+`po_master_language` is used to set the "master" language in
+`ikiwiki.setup`, such as:
+
+        po_master_language => { 'code' => 'en', 'name' => 'English' }
+
+`po_slave_languages` is used to set the list of supported "slave"
+languages, such as:
+
+        po_slave_languages => { 'fr' => 'Français',
+                                'es' => 'Español',
+                                'de' => 'Deutsch',
+        }
+
+Decide which pages are translatable
+-----------------------------------
+
+The `po_translatable_pages` setting configures what pages are
+translatable. It is a [[ikiwiki/PageSpec]], so you have lots of
+control over what kind of pages are translatable.
+
+The `.po` files are not considered as being translatable, so you don't need to
+worry about excluding them explicitly from this [[ikiwiki/PageSpec]].
+
+Internal links
+--------------
+
+### Links targets
+
+The `po_link_to` option in `ikiwiki.setup` is used to decide how
+internal links should be generated, depending on web server features
+and site-specific preferences.
+
+#### Default linking behavior
+
+If `po_link_to` is unset, or set to `default`, ikiwiki's default
+linking behavior is preserved: `\[[destpage]]` links to the master
+language's page.
+
+#### Link to current language
+
+If `po_link_to` is set to `current`, `\[[destpage]]` links to the
+`destpage`'s version written in the current page's language, if
+available, *i.e.*:
+
+* `foo/destpage/index.LL.html` if `usedirs` is enabled
+* `foo/destpage.LL.html` if `usedirs` is disabled
+
+#### Link to negotiated language
+
+If `po_link_to` is set to `negotiated`, `\[[page]]` links to the
+negotiated preferred language, *i.e.* `foo/page/`.
+
+(In)compatibility notes:
+
+* if `usedirs` is disabled, it does not make sense to set `po_link_to`
+  to `negotiated`; this option combination is neither implemented
+  nor allowed.
+* if the web server does not support Content Negotiation, setting
+  `po_link_to` to `negotiated` will produce a unusable website.
+
+Server support
+==============
+
+Apache
+------
+
+Using Apache `mod_negotiation` makes it really easy to have Apache
+serve any page in the client's preferred language, if available.
+This is the default Debian Apache configuration.
+
+When `usedirs` is enabled, one has to set `DirectoryIndex index` for
+the wiki context.
+
+Setting `DefaultLanguage LL` (replace `LL` with your default MIME
+language code) for the wiki context can help to ensure
+`bla/page/index.en.html` is served as `Content-Language: LL`.
+
+lighttpd
+--------
+
+lighttpd unfortunately does not support content negotiation.
+
+**FIXME**: does `mod_magnet` provide the functionality needed to
+ emulate this?
+
+
+Usage
+=====
+
+Templates
+---------
+
+When `po_link_to` is not set to `negotiated`, one should replace some
+occurrences of `BASEURL` with `HOMEPAGEURL` to get correct links to
+the wiki homepage.
+
+The `ISTRANSLATION` and `ISTRANSLATABLE` variables can be used to
+display things only on translatable or translation pages.
+
+### Display page's versions in other languages
+
+The `OTHERLANGUAGES` loop provides ways to display other languages'
+versions of the same page, and the translations' status.
+
+An example of its use can be found in the default
+`templates/page.tmpl`. In case you want to customize it, the following
+variables are available inside the loop (for every page in):
+
+* `URL` - url to the page
+* `CODE` - two-letters language code
+* `LANGUAGE` - language name (as defined in `po_slave_languages`)
+* `MASTER` - is true (1) if, and only if the page is a "master" page
+* `PERCENT` - for "slave" pages, is set to the translation completeness, in percents
+
+### Display the current translation status
+
+The `PERCENTTRANSLATED` variable is set to the translation
+completeness, expressed in percent, on "slave" pages. It is used by
+the default `templates/page.tmpl`.
+
+Additional PageSpec tests
+-------------------------
+
+This plugin enhances the regular [[ikiwiki/PageSpec]] syntax with some
+additional tests that are documented [[here|ikiwiki/pagespec/po]].
+
+Automatic PO file update
+------------------------
+
+Committing changes to a "master" page:
+
+1. updates the POT file and the PO files for the "slave" languages;
+   the updated PO files are then put under version control;
+2. triggers a refresh of the corresponding HTML slave pages.
+
+Also, when the plugin has just been enabled, or when a page has just
+been declared as being translatable, the needed POT and PO files are
+created, and the PO files are checked into version control.
+
+Discussion pages and other sub-pages
+------------------------------------
+
+Discussion should happen in the language in which the pages are
+written for real, *i.e.* the "master" one. If discussion pages are
+enabled, "slave" pages therefore link to the "master" page's
+discussion page.
+
+Likewise, "slave" pages are not supposed to have sub-pages;
+[[WikiLinks|wikilink]] that appear on a "slave" page therefore link to
+the master page's sub-pages.
+
+Translating
+-----------
+
+One can edit the PO files using ikiwiki's CGI (a message-by-message
+interface could also be implemented at some point).
+
+If [[tips/untrusted_git_push]] is setup, one can edit the PO files in one's
+preferred `$EDITOR`, without needing to be online.
+
+Markup languages support
+------------------------
+
+[[Markdown|mdwn]] is well supported. Some other markup languages supported
+by ikiwiki mostly work, but some pieces of syntax are not rendered
+correctly on the slave pages:
+
+* [[reStructuredText|rst]]: anonymous hyperlinks and internal
+  cross-references
+* [[wikitext]]: conversion of newlines to paragraphs
+* [[creole]]: verbatim text is wrapped, tables are broken
+* [[html]] and LaTeX: not supported yet; the dedicated po4a modules
+  could be used to support them, but they would need a security audit
+* other markup languages have not been tested.
+
+Security
+========
+
+[[po/discussion]] contains a detailed security analysis of this plugin
+and its dependencies.
+
+When using po4a older than 0.35, it is recommended to uninstall
+`Text::WrapI18N` (Debian package `libtext-wrapi18n-perl`), in order to
+avoid a potential denial of service.
+
+TODO
+====
+
+Better links
+------------
+
+Once the fix to
+[[bugs/pagetitle_function_does_not_respect_meta_titles]] from
+[[intrigeri]]'s `meta` branch is merged into ikiwiki upstream, the
+generated links' text will be optionally based on the page titles set
+with the [[meta|plugins/meta]] plugin, and will thus be translatable.
+It will also allow displaying the translation status in links to slave
+pages. Both were implemented, and reverted in commit
+ea753782b222bf4ba2fb4683b6363afdd9055b64, which should be reverted
+once [[intrigeri]]'s `meta` branch is merged.
+
+An integration branch, called `meta-po`, merges [[intrigeri]]'s `po`
+and `meta` branches, and thus has thise additional features.
+
+Self links
+----------
+
+If a page contains a WikiLink to itself, ikiwiki does not normally
+turn that into a hyperlink. However, if a translated page contains a
+WikiLink to itself, a hyperlink is inserted, at least with the default
+`po_link_to` the link points to the English version of the page. Is there a
+good reason for that to be done? --[[Joey]] 
+
+Language display order
+----------------------
+
+Jonas pointed out that one might want to control the order that links to
+other languages are listed, for various reasons. Currently, there is no
+order, as `po_slave_languages` is a hash. It would need to be converted
+to an array to support this. (If twere done, twere best done quickly.)
+--[[Joey]] 
+
+Duplicate %links ?
+------------------
+
+I notice code in the scan hook that seems to assume
+that %links will accumulate duplicate links for a page.
+That used to be so, but the bug was fixed. Does this mean
+that po might be replacing the only link on a page, in error? 
+--[[Joey]] 
+
+Bug when editing underlay file
+------------------------------
+
+While I've gotten translated underlays working, there is a bug
+if the wiki is currently using a page from the underlay, and the master
+language version is edited. This causes the edited page to be saved
+to srcdir.. and all the translations get set to 0% and their
+po files have the translated strings "emptied". What's really going on
+is that these are entirely new po files not based on the old ones
+in the basewiki, and thus lacking translations. --[[Joey]] 
+
+Documentation
+-------------
+
+Maybe write separate documentation depending on the people it targets:
+translators, wiki administrators, hackers. This plugin may be complex
+enough to deserve this.
similarity index 72%
rename from doc/plugins/contrib/po.mdwn
rename to doc/plugins/po/discussion.mdwn
index 665e48343d5dfa1f010fcd26a5fd3bff6005aad2..1c3f0e752ee90b93d07cc68393ea87df87142bcf 100644 (file)
@@ -1,3 +1,216 @@
+[[!toc ]]
+
+----
+
+# Security review
+
+## Probable holes
+
+_(The list of things to fix.)_
+
+### po4a-gettextize
+
+* po4a CVS 2009-01-16
+* Perl 5.10.0
+
+`po4a-gettextize` uses more or less the same po4a features as our
+`refreshpot` function.
+
+Without specifying an input charset, zzuf'ed `po4a-gettextize` quickly
+errors out, complaining it was not able to detect the input charset;
+it leaves no incomplete file on disk. I therefore had to pretend the
+input was in UTF-8, as does the po plugin.
+
+        zzuf -c -s 13 -r 0.1 \
+            po4a-gettextize -f text -o markdown -M utf-8 -L utf-8 \
+             -m GPL-3 -p GPL-3.pot
+
+Crashes with:
+
+        Malformed UTF-8 character (UTF-16 surrogate 0xdfa4) in substitution
+        iterator at /usr/share/perl5/Locale/Po4a/Po.pm line 1449.
+        Malformed UTF-8 character (fatal) at /usr/share/perl5/Locale/Po4a/Po.pm
+        line 1449.
+
+An incomplete pot file is left on disk. Unfortunately Po.pm tells us
+nothing about the place where the crash happens.
+
+> It's fairly standard perl behavior when fed malformed utf-8. As long
+> as it doesn't crash ikiwiki, it's probably acceptable. Ikiwiki can
+> do some similar things itself when fed malformed utf-8 (doesn't
+> crash tho) --[[Joey]]
+
+----
+
+## Potential gotchas
+
+_(Things not to do.)_
+
+
+### Blindly activating more po4a format modules
+
+The format modules we want to use have to be checked, as not all are
+safe (e.g. the LaTeX module's behaviour is changed by commands
+included in the content); they may use regexps generated from
+the content.
+
+----
+
+## Hopefully non-holes
+
+_(AKA, the assumptions that will be the root of most security holes...)_
+
+### PO file features
+
+No [documented](http://www.gnu.org/software/gettext/manual/gettext.html#PO-Files)
+directive that can be put in po files is supposed to cause mischief
+(ie, include other files, run commands, crash gettext, whatever).
+
+### gettext
+
+#### Security history
+
+The only past security issue I could find in GNU gettext is
+[CVE-2004-0966](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0966),
+*i.e.* [Debian bug #278283](http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=278283):
+the autopoint and gettextize scripts in the GNU gettext package (1.14
+and later versions) may allow local users to overwrite files via
+a symlink attack on temporary files.
+
+This plugin would not have allowed to exploit this bug, as it does not
+use, either directly or indirectly, the faulty scripts.
+
+Note: the lack of found security issues can either indicate that there
+are none, or reveal that no-one ever bothered to find or publish them.
+
+#### msgmerge
+
+`refreshpofiles()` runs this external program.
+
+* I was not able to crash it with `zzuf`.
+* I could not find any past security hole.
+
+#### msgfmt
+
+`isvalidpo()` runs this external program.
+
+* I was not able to make it behave badly using zzuf: it exits cleanly
+  when too many errors are detected.
+* I could not find any past security hole.
+
+### po4a
+
+#### Security history
+
+The only past security issue I could find in po4a is
+[CVE-2007-4462](http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-4462):
+`lib/Locale/Po4a/Po.pm` in po4a before 0.32 allowed local users to
+overwrite arbitrary files via a symlink attack on the
+gettextization.failed.po temporary file.
+
+This plugin would not have allowed to exploit this bug, as it does not
+use, either directly or indirectly, the faulty `gettextize` function.
+
+Note: the lack of found security issues can either indicate that there
+are none, or reveal that no-one ever bothered to find or publish them.
+
+#### General feeling
+
+Are there any security issues on running po4a on untrusted content?
+
+To say the least, this issue is not well covered, at least publicly:
+
+* the documentation does not talk about it;
+* grep'ing the source code for `security` or `trust` gives no answer.
+
+On the other hand, a po4a developer answered my questions in
+a convincing manner, stating that processing untrusted content was not
+an initial goal, and analysing in detail the possible issues.
+The following analysis was done with his help.
+
+#### Details
+
+* the core (`Po.pm`, `Transtractor.pm`) should be safe
+* po4a source code was fully checked for other potential symlink
+  attacks, after discovery of one such issue
+* the only external program run by the core is `diff`, in `Po.pm` (in
+  parts of its code we don't use)
+* `Locale::gettext` is only used to display translated error messages
+* Nicolas François "hopes" `DynaLoader` is safe, and has "no reason to
+  think that `Encode` is not safe"
+* Nicolas François has "no reason to think that `Encode::Guess` is not
+  safe". The po plugin nevertheless avoids using it by defining the
+  input charset (`file_in_charset`) before asking `TransTractor` to
+  read any file. NB: this hack depends on po4a internals.
+
+##### Locale::Po4a::Text
+
+* does not run any external program
+* only `do_paragraph()` builds regexp's that expand untrusted
+  variables; according to [[Joey]], this is "Freaky code, but seems ok
+  due to use of `quotementa`".
+
+##### Text::WrapI18N
+
+`Text::WrapI18N` can cause DoS
+([Debian bug #470250](http://bugs.debian.org/470250)).
+It is optional, and we do not need the features it provides.
+
+If a recent enough po4a (>=0.35) is installed, this module's use is
+fully disabled. Else, the wiki administrator is warned about this
+at runtime.
+
+##### Term::ReadKey
+
+`Term::ReadKey` is not a hard dependency in our case, *i.e.* po4a
+works nicely without it. But the po4a Debian package recommends
+`libterm-readkey-perl`, so it will probably be installed on most
+systems using the po plugin.
+
+`Term::ReadKey` has too far reaching implications for us to
+be able to guarantee anything wrt. security.
+
+If a recent enough po4a (>=2009-01-15 CVS, which will probably be
+released as 0.35) is installed, this module's use is fully disabled.
+
+##### Fuzzing input
+
+###### po4a-translate
+
+* po4a CVS 2009-01-16
+* Perl 5.10.0
+
+`po4a-translate` uses more or less the same po4a features as our
+`filter` function.
+
+Without specifying an input charset, same behaviour as
+`po4a-gettextize`, so let's specify UTF-8 as input charset as of now.
+
+`LICENSES` is a 21M file containing 100 concatenated copies of all the
+files in `/usr/share/common-licenses/`; I had no existing PO file or
+translated versions at hand, which renders these tests
+quite incomplete.
+
+        zzuf -cv -s 0:10 -r 0.001:0.3 \
+          po4a-translate -d -f text -o markdown -M utf-8 -L utf-8 \
+            -k 0 -m LICENSES -p LICENSES.fr.po -l test.fr
+
+... seems to lose the fight, at the `readpo(LICENSES.fr.po)` step,
+against some kind of infinite loop, deadlock, or any similar beast.
+
+The root of this bug lies in `Text::WrapI18N`, see the corresponding
+section.
+
+
+----
+
+## Fixed holes
+
+
+----
+
+# original contrib/po page, with old commentary
+
 I've been working on a plugin called "po", that adds support for multi-lingual wikis,
 translated with gettext, using [po4a](http://po4a.alioth.debian.org/).
 
@@ -153,11 +366,13 @@ Any thoughts on this?
 >> basewiki, which seems like it should be pretty easy to do, and would be
 >> a great demo! --[[Joey]]
 >>
->>> I have a complete translation of basewiki into danish, and am working with
+>>> I have a complete translation of basewiki into danish, available merged into
+>>> ikiwiki at git://source.jones.dk/ikiwiki-upstream (branch underlay-da), and am working with
 >>> others on preparing one in german.  For a complete translated user
 >>> experience, however, you will also need templates translated (there are a few
->>> translatable strings there too).  My not-yet-merged po4a Markdown improvements
->>> (see [bug#530574](http://bugs.debian.org/530574)) correctly handles multiple
+>>> translatable strings there too).  My most recent po4a Markdown improvements
+>>> adopted upstream but not yet in Debian (see
+>>> [bug#530574](http://bugs.debian.org/530574)) correctly handles multiple
 >>> files in a single PO which might be relevant for template translation handling.
 >>> --[[JonasSmedegaard]]
 >>
@@ -452,3 +667,35 @@ daring a timid "please pull"... or rather, please review again :)
    secondary parameter overriding the default locale (for messages like "N/A" as
    percentage in po plugin).  Alternatively (with above mentioned template support)
    all such strings could be externalized as templates that can then be localized.
+
+# Robustness tests
+
+### Enabling/disabling the plugin
+
+* enabling the plugin with `po_translatable_pages` set to blacklist: **OK**
+* enabling the plugin with `po_translatable_pages` set to whitelist: **OK**
+* enabling the plugin without `po_translatable_pages` set: **OK**
+* disabling the plugin: **OK**
+
+### Changing the plugin config
+
+* adding existing pages to `po_translatable_pages`: **OK**
+* removing existing pages from `po_translatable_pages`: **OK**
+* adding a language to `po_slave_languages`: **OK**
+* removing a language from `po_slave_languages`: **OK**
+* changing `po_master_language`: **OK**
+* replacing `po_master_language` with a language previously part of
+  `po_slave_languages`: needs two rebuilds, but **OK** (this is quite
+  a perverse test actually)
+
+### Creating/deleting/renaming pages
+
+All cases of master/slave page creation/deletion/rename, both via RCS
+and via CGI, have been tested.
+
+### Misc
+
+* general test with `usedirs` disabled: **OK**
+* general test with `indexpages` enabled: **not OK**
+* general test with `po_link_to=default` with `userdirs` enabled: **OK**
+* general test with `po_link_to=default` with `userdirs` disabled: **OK**
index a792b670f7cf0fd63008804e40aef95c6a4df460..9909784d54ca2ce092841fe9ea0413fec75de911 100644 (file)
@@ -29,4 +29,15 @@ An exhaustive list of differences between prest and "standard" reST follows:
 * csv directive doesn't require csv.py
 * references directive doesn't allow options
 
-There may be a few others; my eyes glazed over. --Ethan
\ No newline at end of file
+There may be a few others; my eyes glazed over. --Ethan
+
+rst support for ikiwiki seems to be on hold. rst is much more elegant
+than markdown in my opinion, so I tried it out in ikiwiki. I found out
+in other places that some directives work just fine, like [[meta]] and
+[[tag]], others work fine if you wrap them in `.. raw::`, like [[inline]].
+
+But to make a wiki we need [[WikiLinks]]; they can't be escape-inserted or
+such since they are inline elements in the text.. But images work fine in
+rst's syntax.. what about using rst syntax for wikilinks as well?
+Is it possible to inject something into the parser to turn unmached links
+``WikiLink`_` into ikiwiki links? --ulrik
index d0f6a09e1ac9127efed521713c5b1be7182ba4d2..3976f9adf5a74b504b66efa8478e4d0acc2ebd6e 100644 (file)
@@ -330,6 +330,26 @@ This hook should avoid directly redirecting the user to a signin page,
 since it's sometimes used to test to see which pages in a set of pages a
 user can edit.
 
+### canremove
+
+       hook(type => "canremove", id => "foo", call => \&canremove);
+
+This hook can be used to implement arbitrary access methods to control
+when a page can be removed using the web interface (commits from
+revision control bypass it). It works exactly like the `canedit` hook,
+but is passed the named parameters `cgi` (a CGI object), `session`
+(a session object) and `page` (the page subject to deletion).
+
+### canrename
+
+       hook(type => "canrename", id => "foo", call => \&canrename);
+
+This hook can be used to implement arbitrary access methods to control when
+a page can be renamed using the web interface (commits from revision control
+bypass it). It works exactly like the `canedit` hook,
+but is passed the named parameters `cgi` (a CGI object), `session` (a
+session object), `src`, `srcfile`, `dest` and `destfile`.
+
 ### checkcontent
        
        hook(type => "checkcontent", id => "foo", call => \&checkcontent);
@@ -342,8 +362,9 @@ the content the user has entered is a comment, it may also be passed some
 additional parameters: `author`, `url`, and `subject`. The `subject`
 parameter may also be filled with the user's comment about the change.
 
-Note: When the user edits an existing wiki page, the passed `content` will
-include only the lines that they added to the page, or modified.
+Note: When the user edits an existing wiki page, this hook is also
+passed a `diff` named parameter, which will include only the lines
+that they added to the page, or modified.
 
 The hook should return `undef` on success. If the content is disallowed, it
 should return a message stating what the problem is, or a function
@@ -394,9 +415,28 @@ they're saved, etc.
        hook(type => "renamepage", id => "foo", call => \&renamepage);
 
 This hook is called by the [[plugins/rename]] plugin when it renames
-something. The hook is passed named parameters: `page`, `oldpage`,
-`newpage`, and `content`, and should try to modify the content to reflect
-the name change. For example, by converting links to point to the new page.
+something, once per page linking to the renamed page's old location.
+The hook is passed named parameters: `page`, `oldpage`, `newpage`, and
+`content`, and should try to modify the content of `page` to reflect
+the name change. For example, by converting links to point to the
+new page.
+
+### rename
+
+       hook(type => "rename", id => "foo", call => \&rename);
+
+When a page or set of pages is renamed, the referenced function is
+called for every page, and is passed named parameters:
+
+* `torename`: a reference to a hash with keys: `src`, `srcfile`,
+  `dest`, `destfile`, `required`.
+* `cgi`: a CGI object
+* `session`: a session object.
+
+Such a hook function returns any additional rename hashes it wants to
+add. This hook is applied recursively to returned additional rename
+hashes, so that it handles the case where two plugins use the hook:
+plugin A would see when plugin B adds a new file to be renamed.
 
 ### getsetup
 
@@ -601,7 +641,7 @@ pages, as described in [[ikiwiki/SubPage/LinkingRules]].
 
 Many plugins need to generate html links and add them to a page. This is
 done by using the `htmllink` function. The usual way to call
-`htmlllink` is:
+`htmllink` is:
 
        htmllink($page, $page, $link)
 
@@ -810,7 +850,7 @@ of the page with the rcs's conflict markers on failure.
 Passed a message, user, and ip address. Should commit all staged changes.
 Returns undef on success, and an error message on failure.
 
-Changes can be staged by calls to `rcs_add, `rcs_remove`, and
+Changes can be staged by calls to `rcs_add`, `rcs_remove`, and
 `rcs_rename`.
 
 #### `rcs_add($)`
index 31347a614b9e52f3dcaa8fc0c69b72d5d82183d5..bbe52910693c1bb4379ee2ac3bc7fa3bded2f41f 100644 (file)
@@ -45,3 +45,18 @@ Thanks
 > Yes, ikiwiki does expect you to use your revision control system to check
 > in changes. Otherwise, recentchanges cannot work right, since it uses the
 > commit history from your revision control system. --[[Joey]]
+
+-----
+
+I'm working on an [[rcs]] plugin for CVS, adapted from `svn.pm`, in order to integrate ikiwiki at sites where that's all they've got. What's working so far: web commit (post-commit hook and all), diff, add (under certain conditions), and remove. What's not working: with rcs_add(), iff any of the new page's parent dirs aren't already under CVS control and the post-commit hook is enabled, the browser and ikiwiki stall for several seconds trying to add it, then time out. (If I kill ikiwiki when this is happening, it cvs adds the topmost parent that needed adding; if I wait for timeout, it doesn't. I think.) If I disable the post-commit hook and do the same kind of thing, the page is created and saved.
+
+In case you're lucky enough not to know, cvs adds on directories are weird -- they operate immediately against the repository, unlike file adds:
+
+    $ cvs add randomdir
+    Directory /Users/schmonz/Documents/cvswiki/repository/ikiwiki/randomdir added to the repository
+
+I was able to work out that when I'm seeing this page save misbehavior, my plugin is somewhere inside `system("cvs", "-Q", "add", "$file")`, which was never returning. If I changed it to anything other than cvs it iterated correctly over all the parent dirs which needed to be added to CVS, in the proper order. (cvs add isn't recursive, sadly.)
+
+Can you offer an educated guess what's going wrong here? --[[Schmonz]]
+
+> Got `rcs_recentchanges` working, believe it or not, thanks to [cvsps](http://www.cobite.com/cvsps/). If I can figure out this interaction between the post-commit hook and `cvs add` on directories, the CVS plugin is mostly done. Could it be a locking issue? Where should I be looking? Any suggestions appreciated. --[[Schmonz]]
index bb486bd2cd440c3c20aaa8be5963a8af44f302d5..6730dd146847b9a8a2c464702d4b33360778e8ce 100644 (file)
@@ -1,5 +1,19 @@
 This is the [[SandBox]], a page anyone can edit to try out ikiwiki (version [[!version  ]]).
 
+----
+2009/7/13 Monday Blue...\\
+While working on [[http://eoffice.im.fju.edu.tw/phpbb/viewtopic.php?p=27199|[97] Phpbb 與 Dokuwiki 之間的往來]] (External Link to //http://eoffice.im.fju.edu.tw/phpbb/viewtopic.php?p=27199// not working?), surf Internet for Wikis supporting //Creole V1.0//, found this site.
+
+<<<<<<< HEAD:doc/sandbox.mdwn
+* I thought that creole markup is used by ikiwiki...
+* Thought about using //SVN/CVS// server, however with different idea
+* Kinda curious why **Tcl** does not show her face in this Wiki arena
+=======
+* Thought about using //SVN/CVS// server, however with different idea
+* Kinda curious why **Tcl** does not show her face in this Wiki arena
+* It looks like that I was wrong, from Wikipedia Creole page it mention that ikiwiki is also adopting Creole markup.
+>>>>>>> 55c1a37cce91d4fd01bf80fcaeeaf56535218a5c:doc/sandbox.mdwn
+
 ----
 
 Testing OpenID some more..
@@ -92,7 +106,56 @@ But, of course, rsync is better.
 
 Let's see what happens... ~~
 
-測試的啦
+#中文标题一
+##中文标题二
+###中文标题三
+...
+######中文标题六
+
+###正文:
+
+君不见,黄河之水天上来,奔流到海不复回。
+
+君不见,高堂明镜悲白发,朝如青丝暮成雪。
+
+人生得意须尽欢,莫使金樽空对月。
+
+天生我材必有用,千金散尽还复来。
+
+###列表:
+
+* 天空
+
+   1. 蓝色的
+   2. 好高啊
+
+* 海洋
+
+   1. 有鱼
+       
+       * 鲸鱼
+       * 鲨鱼
+           
+
+* 大地
+
+###链接:
+
+[谷歌](http://www.google.com)
+
+###引用:
+
+> 一级引用
+>
+> 一级引用
+>
+> > 二级引用
+>
+>> 没有空格也可以
+>>> 三级引用
+>
+> 回到一级引用
+
 
 ----
 
@@ -101,3 +164,5 @@ testing
 
 --
 [[!toc  levels=2]]
+
+[[Mamma Mia]]
diff --git a/doc/templates/gitbranch.mdwn b/doc/templates/gitbranch.mdwn
new file mode 100644 (file)
index 0000000..fcce925
--- /dev/null
@@ -0,0 +1,18 @@
+<span class="infobox">
+Available in a [[!taglink /git]] repository.<br />
+Branch: <TMPL_VAR branch><br />
+Author: <TMPL_VAR author><br />
+</span>
+<TMPL_UNLESS NAME="branch">
+This template is used to create an infobox for a git branch. It uses
+these parameters:
+
+<ul>
+<li>branch - the name of the branch, prefixed with the name of one of the
+  remotes listed on the [[/git]] page and provided by the gitremotes script
+  (e.g. github/master)</li>
+<li>author - the author of the branch</li>
+</ul>
+
+It also automatically tags the branch with `/git`.
+</TMPL_UNLESS>
index e678053bb0127962cb32765b12f5c06c94723e0a..787df9bf7d973cb03d50180a5270da164bac55c9 100644 (file)
@@ -12,6 +12,7 @@ Thanks to the following people for their kind contributions:
 * Adam Shand
 * Martin Krafft
 * Paweł Tęcza
+* Mick Pollard
 
 (Note that this page is locked to prevent anyone from tampering with the PayPal button.
 If you prefer your donation *not* be listed here, let [[Joey]] know.)
index 8ecdf36d0e765c2f996fbd4ce07b1f04533b1bc4..e5ac391c3ab1c41ffb9f23347228ab03a56b368b 100644 (file)
@@ -83,4 +83,4 @@ regenerate this one against that).
        -- 
        1.5.2.2
 
-[[!tag patch]]
+[[!tag patch patch/core plugins/inline]]
index 40a334032fad8119df98934f680385fcb9edae8f..536980ea8e9cd4e44e5e8ad6b98f50473d91c56b 100644 (file)
@@ -8,6 +8,11 @@ This [[patch]] adds a space before the forward-slash in the the parent links. Th
 
 >>> Yes, please.  This seems to be something a lot of people want to customize.  (I certainly do -- a forward slash only looks natural to Unix users)  --[[sabr]]
 
+>> Joey, would I be right to summarize your position on this as "people who
+>> want to change the text of the templates should maintain their own version
+>> of the `.tmpl` files"? It's not clear to me how this todo item could be
+>> closed in a way acceptable to you, except perhaps as WONTFIX. --[[smcv]]
+
 Before:
 
     ikiwiki/ todo/ Add space before slash in parent links
@@ -56,3 +61,23 @@ Patch:
     +<TMPL_VAR INDEXLINK> / <TMPL_VAR TITLE>
      </span>
      </div>
+
+----
+
+It's almost implicit in some of the discussion above but this can be achieved locally if you fork your templates directory from ikiwiki's, with an ammendment such as
+
+    <h1><TMPL_LOOP NAME="PARENTLINKS"><a
+        href="<TMPL_VAR NAME=URL>"><TMPL_VAR NAME=PAGE></a>
+        &rarr;
+        </TMPL_LOOP><TMPL_VAR TITLE></h1>
+
+This is what I do on my site for example. -- [[Jon]]
+
+> You don't actually need to fork the whole directory, "only" `page.tmpl` -
+> put `templatedir => "/foo/templates"` in your setup file, copy `page.tmpl`
+> to that directory, and modify it there. IkiWiki will look in `templatedir`
+> first, then fall back to its default templates if any are missing from
+> `templatedir`.
+>
+> (Admittedly, `page.tmpl` is the hardest to maintain a fork of, because it
+> tends to change whenever a new plugin is added...) --[[smcv]]
index 95c38f794a281760dc90fcb87af8d0774fcc20eb..bf8de16cda05ec12ebae9b2de7a42748f865d920 100644 (file)
@@ -1,5 +1,8 @@
 This patch adds function bestdir() which returns best directory from the directory structure. This is in addition to the bestlink() function which is there in IkiWiki.pm 
 
+> Um, what is this for? :-) It would probably be a lot easier to review if it
+> had documentation, and/or a plugin that used it. --[[smcv]]
+
 -------
 
     Index: IkiWiki.pm
@@ -45,4 +48,4 @@ This patch adds function bestdir() which returns best directory from the directo
 ---- 
 -[[users/arpitjain]]
 
-[[!tag patch]]
+[[!tag patch patch/core]]
index bc1d5bea470320345e1630dae55b4ebac5b3add1..f41980333fc19d9b0b773eaddf8f1551df7ac555 100644 (file)
@@ -1,3 +1,5 @@
+[[!template id=gitbranch branch=origin/gallery author="[[arpitjain]]"]]
+
 New Version of gallery is available now. Few more features have been added like support for multiple pages, sorting and resizing of images etc.
 
 Gallery repo is now available at  <http://github.com/joeyh/ikiwiki/tree/gallery>
index e4f94174392a0513c6d66a14fd04ad29aa5143b5..fd64074c2a1bda8c924a361aa8c532d7f5af93a8 100644 (file)
@@ -10,4 +10,8 @@ The configuration setting for Mercurial could be something like this:
 > Not that I'm opposed to the idea of a plugin that adds a Raw link
 > --[[Joey]]
 
+>> In [[todo/source_link]], Will does this via the CGI instead of delegating
+>> to gitweb/etc. I think Will's patch is a good approach, and have improved
+>> on it a bit in a git branch.
+
 [[!tag wishlist]]
index 89167c084ea64e6fbde3167ed3aeca46cace3dd1..4bc828e6ee703e1cfc3c933ea72610e91f757210 100644 (file)
@@ -1,4 +1,4 @@
-[[!tag patch]]
+[[!tag patch plugins/calendar]]
 
 Here's my next version of the patch - still a work in progress.
 
index c651b0a457ca99e739ef0ae79381d0f40666c165..0fb14bafeae7f2537cfa78a07dd8d373df09a551 100644 (file)
@@ -21,4 +21,6 @@ that we're at the root of a (sub-)hierarchy.
 > 
 > IMHO, what you really want is [[Moving_pages]]. :-) --[[Joey]]
 
+>> This sounds like WONTFIX to me? --[[smcv]]
+
 [[!tag wishlist]]
index 9055c8a13e7fd6812ad32e7c2861e85a3d0f7775..61f311b8c5218e5e7247784d39c3fcc3e10a7865 100644 (file)
@@ -8,4 +8,6 @@ From the [apache documentation](http://httpd.apache.org/docs/2.2/custom-error.ht
 
 > Nice idea, I'll try to find time to add a plugin doing this. --[[Joey]]
 
+>> [[done]] some time ago, as the [[plugins/404]] plugin --[[smcv]]
+
 [[wishlist]]
index 97515a3122a983eef2bd420bb88fe7c9ca8bf955..70ccc2b682d207bea9c316236ca9a6aef48244e4 100644 (file)
@@ -1,8 +1,11 @@
+[[!tag plugins/meta patch]]
+[[!template id=gitbranch branch=jon/defaultmeta author="[[Jon]]"]]
+
 I'd like to define [[plugins/meta]] values to apply across all pages
 site-wide unless the pages define their own: default values for meta
 definitions essentially.
 
-Here's a patch[[!tag patch]] to achieve this (also in the "defaultmeta" branch of
+Here's a patch to achieve this (also in the "defaultmeta" branch of
 my github ikiwiki fork):
 
     diff --git a/IkiWiki/Plugin/meta.pm b/IkiWiki/Plugin/meta.pm
@@ -52,3 +55,20 @@ my github ikiwiki fork):
      * title
 
 -- [[Jon]]
+
+> This doesn't support multiple-argument meta directives like
+> `link=x rel=y`, or meta directives with special side-effects like
+> `updated`.
+>
+> The first could be solved (if you care) by a syntax like this:
+>
+>     meta_defaults => [
+>         { copyright => "© me" },
+>         { link => "about:blank", rel => "silly", },
+>     ]
+>
+> The second could perhaps be solved by invoking `meta::preprocess` from within
+> `scan` (which might be a simplification anyway), although this is complicated
+> by the fact that some (but not all!) meta headers are idempotent.
+> 
+> --[[smcv]]
index 56b2249ea4a892d9e8dcbe63ec365d41c8acb78d..600c6cf7be58c043361d2d62c22222b9b07986e2 100644 (file)
@@ -11,4 +11,12 @@ nice to add:
   srcdir. This would allow the admin to review them, and manually
   add/delete them before they bloat history.
 
+> I'd be inclined to implement that one by writing them to a nominated
+> underlay, I think, rather than having them in the srcdir but not in
+> the VCS. My [[plugins/contrib/album]] plugin could benefit from this
+> functionality, although in that case the photos should probably just
+> stay in the underlay forever (I already use an underlay on my own
+> websites for photos and software releases, which are too big to want
+> them in the VCS permanently.) --[[smcv]]
+
 [[!tag wishlist]]
index f60fc3d6e31a934dd70af9452aa40683d79b3457..f1d33114ff7518b6e0eab6af2601cbfa8930da99 100644 (file)
@@ -4,7 +4,7 @@ Tags are mainly specific to the object to which they’re stuck. However, I ofte
 
 Also see: <http://madduck.net/blog/2008.01.06:new-blog/> and <http://users.itk.ppke.hu/~cstamas/code/ikiwiki/autocreatetagpage/>
 
-[[!tag wishlist]]
+[[!tag wishlist plugins/tag patch]]
 
 I would love to see this as well. -- dato
 
diff --git a/doc/todo/backlinks_result_is_lossy.mdwn b/doc/todo/backlinks_result_is_lossy.mdwn
new file mode 100644 (file)
index 0000000..11b5fbc
--- /dev/null
@@ -0,0 +1,13 @@
+[[!tag patch patch/core]]
+[[!template id=gitbranch branch=smcv/ready/among author="[[smcv]]"]]
+
+IkiWiki::backlinks returns a form of $backlinks{$page} that has undergone a
+lossy transformation (to get it in the form that page templates want), making
+it more difficult to use in other contexts (like pagestats).
+
+A commit on my `among` branch splits it into IkiWiki::backlink_pages
+(which returns the keys of $backlinks{$page}, and might be suitable for
+exporting) and IkiWiki::backlinks (which calls backlink_pages, then performs
+the same lossy transformation as before on the result).
+
+[[done]] --[[Joey]]
index bb91ffd02a299f6cb6e44e2ab241854338237515..69df27271a1bfe57caededcd631727a94c32000c 100644 (file)
@@ -153,4 +153,4 @@ Index: IkiWiki.pm
  our $version='unknown'; # VERSION_AUTOREPLACE done by Makefile, DNE
 </pre>
 
-[[!tag patch]]
+[[!tag patch patch/core]]
index 5cf80b0a8ea397248531978a2f11b844ff3f068d..3c39484bc477da6cb9e45e70c2bec24606c8f8a4 100644 (file)
@@ -30,3 +30,6 @@ What's your opinion, Joey? I hope it's also useful for another ikiwiki lovers :)
 > like to have traditional `inline` functionality too.  This would work great if there were a way to change the `do`
 > parameter in the `blogpost` template's form; if I could change it to `datedblog` instead of `blog` then I could hook
 > my datedblog module in nicely, without having to override anything.  What would be the right way to do that? --[[neale]]
+
+> This is basically the same request as
+> [[todo/inline_postform_autotitles]]. --[[smcv]]
index e3b295123484183dcdc8be1e5c184ae8b448b816..e302a49ed1a75dfefd6c7dd3f8b5de9c68310c71 100644 (file)
@@ -12,7 +12,7 @@
                     qr/(^|\/).svn\//, qr/.arch-ids\//, qr/{arch}\//],
            wiki_link_regexp => qr/\[\[(?:([^\]\|]+)\|)?([^\s\]#]+)(?:#([^\s\]]+))?\]\]/,
 
-[[!tag patch]]
+[[!tag patch patch/core]]
 
 This lets the site administrator have a `.htaccess` file in their underlay
 directory, say, then get it copied over when the wiki is built. Without
@@ -39,6 +39,13 @@ access and such .htaccess files should not be accessible through wiki cgi. Of co
 
 > See [[!debbug 447267]] for a patch for this.
 
+>> It looks to me as though this functionality won't be included in ikiwiki
+>> unless someone who wants it takes responsibility for updating the patch
+>> from that Debian bug to be applicable to current versions, so that there's a
+>> setup file parameter for extra filenames to allow, defaulting to none
+>> (i.e. a less simplistic patch than the one at the top of this page).
+>> Joey, is this an accurate summary? --[[smcv]]
+
 ---
 
 bump! I would like to see some form of this functionality included in ikiwiki. I use a patched version, but
@@ -47,4 +54,8 @@ but I use ikiwiki with a very small group of people collaborating so svn/web acc
 and htaccess is for limiting access to some areas of wiki.   
 It should be off by default of course. --Max
 
-[[!tag patch]]
+---
++1 I want `.htaccess` so I can rewrite some old Wordpress URLs to make feeds work again. --[[hendry]]
+
+---
++1 for various purposes (but sometimes the filename isn't `.htaccess`, so please make it configurable) --[[schmonz]]
index 574883d1b0f3f8e81ac8f935133e2c2076403f40..762f16646f5e195a63aa8c9b6376b45906e7b50c 100644 (file)
@@ -97,7 +97,7 @@ I've created an updated [patch](http://www.idletheme.org/code/patches/ikiwiki-fo
 --Ryan Koppenhaver
 
 ## Original patch
-[[!tag patch]]
+[[!tag patch patch/core plugins/rst]]
 
 <pre>
 Index: debian/changelog
diff --git a/doc/todo/generated_po_stuff_not_ignored_by_git.mdwn b/doc/todo/generated_po_stuff_not_ignored_by_git.mdwn
new file mode 100644 (file)
index 0000000..1d24fd3
--- /dev/null
@@ -0,0 +1,7 @@
+[[!template id=gitbranch branch=smcv/gitignore author="[[smcv]]"]]
+[[!tag patch]]
+
+The recent merge of the po branch didn't come with a .gitignore.
+It eventually annoyed me enough to fix it :-) --[[smcv]]
+
+[[done]]
index cb07e5e0c48349e9588a31435e3c3a2053e5d386..65658d7c4291d9a0a8e450d6fcb483ce016e1162 100644 (file)
@@ -3,3 +3,5 @@ and search/sort pages by distance to a given location, as well as
 showing page locations on a map (Google Map, OpenStreetMap, etc). -- [[users/vibrog]]
 
 [[!tag wishlist]]
+
+> [[!cpan Geo::Coordinates::UTM]] would probably be useful. --[[smcv]]
index a6a6ec1e15d9821f74bb4ab9d5b5e803c2e2b87a..7cf37fbb9e96e7e81429766c4fc512019c5ccd21 100644 (file)
@@ -12,7 +12,7 @@ while the default stays as it is now.
 > INSTALLMAN1DIR (though MakeMaker lacks one for man8). I'd prefer not
 > adding new variables where MakeMaker already has them. --[[Joey]]
 
-[[!tag patch]]
+[[!tag patch patch/core]]
 
 <pre>
 
diff --git a/doc/todo/inline_plugin:_specifying_ordered_page_names.mdwn b/doc/todo/inline_plugin:_specifying_ordered_page_names.mdwn
new file mode 100644 (file)
index 0000000..457b478
--- /dev/null
@@ -0,0 +1,16 @@
+[[!template id=gitbranch branch=smcv/ready/inline-pagenames author="[[smcv]]"]]
+
+A [[!taglink patch]] in my git repository (the inline-pagenames branch) adds
+the following parameter to the [[ikiwiki/directive/inline]] directive:
+
+> * `pagenames` - If given instead of `pages`, this is interpreted as a
+>    space-separated list of links to pages (with the same
+>   [[ikiwiki/SubPage/LinkingRules]] as in a [[ikiwiki/WikiLink]]), and they are inlined
+>   in exactly the order given: the `sort` and `pages` parameters cannot be used
+>   in conjunction with this one.
+
+This is on my [[wishlist]] for my [[plugins/contrib/album]] plugin, which currently
+uses it internally (as it has already collected the pages in order). It could also
+be useful for other things, like [[todo/wikitrails]]. --[[smcv]]
+
+[[!tag plugins/inline]]
index 5005208be418b5226784ca2c156bdb77172b4a5d..39713eb5f473a6d4bdffe7bb00e8d820e74c5a06 100644 (file)
@@ -1,5 +1,5 @@
-[[!tag wishlist]]
-[[!tag patch]]
+[[!tag wishlist patch plugins/inline]]
+[[!template id=gitbranch branch=chrysn/patches author="[[chrysn]]"]]
 
 for postforms in inlines of pages which follow a certain scheme, it might not
 be required to set the title for each individual post, but to automatically set
@@ -17,6 +17,21 @@ resulting in ascending numeric page titles to be created.
 
 the second patch is actually a one-liner, filtering the title through strftime.
 
+> Something similar was requested in [[todo/more_customisable_titlepage_function]],
+> in which [[Joey]] outlined a similar solution.
+>
+> What's your use-case for not prompting for the title at all? I can see
+> [[madduck]]'s requirement for the title he typed in (say, "foo")
+> being transformed into 2009/07/26/foo or something (I name blog posts
+> like that myself), but I can't quite see the use for *entirely* automatic
+> titles.
+>
+> However, if that's really what you want, I suspect your code could be
+> extended so it also solves madduck's second request on
+> [[todo/more_customisable_titlepage_function]].
+>
+> --[[smcv]]
+
 ### potential user interaction issues
 
 this has two side effects which have to be considered: first, the empty page
index f777a33dfdc76145917c0e14ed87c4ceb63ab86b..bba1034947ccc822d93933151e795f75cd8062f0 100644 (file)
@@ -96,4 +96,6 @@ For example use, here's how to roll out a clone of the [Redpill support site](ht
 > ikiwiki tree, that adds the po4a stuff needed to generate the pot files for the
 > basewiki and template content, as well as the stuff that generates the
 > translated versions of those from the po files.
+>
+> The now merged po plugin also handles some of this.
 > --[[Joey]]
index 4ac4e2e2546271628ffe8597e67ab1d6554a0e23..90bfbef3b49ca6532e9cdc0351fb154e3a27fa17 100644 (file)
@@ -81,4 +81,21 @@ This may be useful for sites with a few pages in different languages, but no ful
 > Please resolve lang somewhere reusable rather than within meta plugin: It is certainly usable outside
 > the scope of the meta plugin as well. --[[JonasSmedegaard]]
 
+>> I don't see any problem with having this in meta? meta is on by default, and
+>> other plugins are free to use it or even depend on it (e.g. inline does).
+>>
+>> My only comments on this patch beyond what Joey said are that the page
+>> language could usefully go into `$pagestate{$page}{meta}{lang}` for other
+>> plugins to be able to see it (is that what you meant?), and that
+>> restricting to 2 characters is too restrictive (HTML 4.01 mentions
+>> `en`, `en-US` and `i-navajo` as possible language codes).
+>> This slightly complicates parsing the locale to get the default language:
+>> it'll need `tr/_/-/` after the optional `.encoding` is removed.
+>> --[[smcv]]
+
+>>> Now that po has been merged, this patch should probably also be adapted
+>>> so that the po plugin forces the meta::lang of every page to what po
+>>> thinks it should be. Perhaps [[the_special_po_pagespecs|ikiwiki/pagespec/po]]
+>>> should also work with meta-assigned languages? --[[smcv]]
+
 [[!tag wishlist patch plugins/meta translation]]
index 158edea6e5cd6cd334dcb05412e1b04c2c1f5bd5..9e112317f01fe4f2466d9b9652d18f04133fedb3 100644 (file)
@@ -1,4 +1,4 @@
-The following patch adds an 'rcsid' parameter to the Meta plugin, to allow inclusion 
+The following patch adds an 'rcsid' parameter to the [[!taglink plugins/Meta]] plugin, to allow inclusion 
 of CVS/SVN-style keywords (like '$Id$', etc.) from the source file in the page template.
 
 > So the idea is you'd write something like:
index c5f2ab535c080c7f47a910e1e8b2addc5957b81c..cecac7a94010dec37e9caf6b4eec4c414c426d4a 100644 (file)
@@ -258,4 +258,4 @@ Index: IkiWiki.pm
        my $page=shift;
 </pre>
 
-[[!tag patch]]
+[[!tag patch patch/core]]
index 4712c12b3ccaaf55ad2b1f40bc8374286340ca8e..cace27d63a4c70973f75aecff60e8122be77a3f3 100644 (file)
@@ -15,6 +15,8 @@ Here's the one-liner:
 
 > applied --[[Joey]]
 
+----
+
 The following adds a div element with class="trailer" around the meta-information
 added after an inlined page (namely: the post date, the tags, and the actions):
 
@@ -42,7 +44,7 @@ added after an inlined page (namely: the post date, the tags, and the actions):
 > gets confused by these nested div's and puts p's around one of them, generating
 > broken html. If you can come up with a way to put in the div that passes
 > the test suite, or a fix to markdown, I will accept it, but the above patch
-> fails the test suite. --[[Joey]] 
+> fails the test suite. --[[Joey]]
 
 >> Just a note...  This discrepancy doesn't exist in [pandoc](http://code.google.com/p/pandoc/) as
 >> demonstrated in the relevant [page](http://code.google.com/p/pandoc/wiki/PandocVsMarkdownPl).
@@ -64,6 +66,16 @@ added after an inlined page (namely: the post date, the tags, and the actions):
 >>>> to at least get into debian testing before I make ikiwiki depend on it
 >>>> though. --[[Joey]]
 
+>> This Markdown issue seems to have been worked around by the optimization
+>> in which \[[!inline]] is replaced with a placeholder, and the
+>> placeholder is later replaced by the HTML. Meanwhile, this patch
+>> has been obsoleted by applying a similar one (wrapping things in a div
+>> with class inlinefooter). That was the last remaining unapplied patch
+>> on this page, so I think this whole page can be considered [[done]].
+>> --[[smcv]]
+
+----
+
 I'd like a class attribute on the `<span>` tag surrounding wikilinks
 that refer to non-existent pages, in Ikiwiki.pm:htmllink, so that such
 broken links can be styled more dramatically with CSS. --Jamey
index 51b5607465f0c74f1306ca8592ebb49b0988f36f..97fefbafc761ae7b9e163eddd7520c60b67ec223 100644 (file)
@@ -2,7 +2,9 @@ I understand the `IkiWiki::titlepage` function is used to generate filenames fro
 
 I imagine two things: a lookup hash and a template.
 
-Since `IkiWiki::titlepage` basically translates characters, it would be cool to be able to define a lookup hash in the configuration, which would be consulted before falling back to the generic `__xx__` `ord()` representation of a letter. For instance, in German, I might prefer to have 'Ã\83¤' become 'ae' instead of something illegible.
+Since `IkiWiki::titlepage` basically translates characters, it would be cool to be able to define a lookup hash in the configuration, which would be consulted before falling back to the generic `__xx__` `ord()` representation of a letter. For instance, in German, I might prefer to have 'ä' become 'ae' instead of something illegible.
+
+> This is [[todo/unaccent_url_instead_of_encoding]]. --[[smcv]]
 
 Second, maybe a template could be honoured. The template could have a slot `%s` where the calculated title goes, and it could contain `strftime` symbols as well as variables, which get interpolated on use.
 
@@ -10,6 +12,11 @@ Another option would be a function I could define in the setup file, or an exter
 
 -- [[madduck]]
 
+> This somewhat resembles [[todo/inline_postform_autotitles]].
+> Another way to do this, suggested in that todo, would be to
+> pre-fill the title field with YYYY/MM/DD/ using Javascript.
+> --[[smcv]]
+
 I don't think that changing titlepage is a good idea, there are
 compatability problems.
 
@@ -28,4 +35,8 @@ is that having the directive appear in the edit box for a new page could
 confuse the user. The title could be passed on in a hidden field, and
 prepended to the page when it's saved..
 
+--[[Joey]]
+
+> I'll pass on these comments to the two similar todo items. --[[smcv]]
+
 [[wishlist]]
index 1122203944f5542406271cf526cf535f0cee5ee0..bc8bc08097591380e0b5256a27d8c8afb3541f3a 100644 (file)
@@ -12,3 +12,7 @@ the post form and stuck it inside a [[plugins/toggle]].
 logical first step towards doing comment-like things with inlined pages).
 
 -- [[Jon]]
+
+> Perhaps what we need is a `postform` plugin/directive that inline depends
+> on (automatically enables); its preprocess method could automatically be
+> invoked from preprocess_inline when needed. --[[smcv]]
index b123340afc513340df09f1b1f7642ac2b8404dd4..e3cec4a9b1597f3de58347418ae092cacf8ffa1d 100644 (file)
@@ -61,7 +61,7 @@ would solve my problem. Hmmm? --[[intrigeri]]
 >>> not be broken. I will thus keep the existing `renamepage` as it
 >>> is, and call `rename` the global hook I need. --[[intrigeri]]
 
->>>> Done in my `po` branch. --[[intrigeri]]
+>>>> [[Done]] in my `po` branch. --[[intrigeri]]
 
 I think I see a problem in the rename hook. The hook is called
 before the plugin adds any subpages to the set of pages to rename.
diff --git a/doc/todo/pagestats_among_a_subset_of_pages.mdwn b/doc/todo/pagestats_among_a_subset_of_pages.mdwn
new file mode 100644 (file)
index 0000000..fd15d6a
--- /dev/null
@@ -0,0 +1,29 @@
+[[!tag patch plugins/pagestats]]
+[[!template id=gitbranch branch=smcv/ready/among author="[[smcv]]"]]
+
+My `among` branch fixes [[todo/backlinks_result_is_lossy]], then uses that
+to provide pagestats for links from a subset of pages. From the docs included
+in the patch:
+
+> The optional `among` parameter limits counting to pages that match a
+> [[ikiwiki/PageSpec]]. For instance, to display a cloud of tags used on blog
+> entries, you could use:
+>
+>     \[[!pagestats pages="tags/*" among="blog/posts/*"]]
+>
+> or to display a cloud of tags related to Linux, you could use:
+> 
+>     \[[!pagestats pages="tags/* and not tags/linux" among="tagged(linux)"]]
+
+I use this on my tag pages on one site, with the following template:
+
+    \[[!pagestats pages="tags/* and !tags/<TMPL_VAR raw_tag>
+        and !tags/photogallery"
+      among="tagged(<TMPL_VAR raw_tag>)"]]
+
+    \[[!inline pages="tagged(<TMPL_VAR raw_tag>)"
+      archive="yes" quick="yes" reverse="yes" timeformat="%x"]]
+
+--[[smcv]]
+
+> [[merged|done]] thanks --[[Joey]] 
index 9598af234206ea54bc0b73398eb202c986173f35..29f28ca3246a853ee585beddc6348246c43b24fa 100644 (file)
@@ -1,4 +1,4 @@
-[[!tag wishlist]]
+[[!tag wishlist plugins/passwordauth]]
 
 For sending out password reminder emails, the [[plugins/passwordauth]] plugin currently uses
 the *[Mail::Sendmail](http://search.cpan.org/perldoc?Mail::Sendmail)* module.
@@ -52,3 +52,10 @@ Remaining TODOs:
 > lost it. --[[Joey]]
 
 Resent.  --[[tschwinge]]
+
+> Debian now has Mail::Sender, Mail::SendEasy, and Email::Sender
+> (which, according to its dpkg description, "replaces the old and sometimes
+> problematic Email::Send library, which did a decent job at handling very
+> simple email sending tasks, but was not suitable for serious use, for a
+> variety of reasons"). Are any of those any better? It's unfortunate that
+> there doesn't seem to be a clear "best practice"... --[[smcv]]
diff --git a/doc/todo/pretty-print_OpenIDs_even_if_not_enabled.mdwn b/doc/todo/pretty-print_OpenIDs_even_if_not_enabled.mdwn
new file mode 100644 (file)
index 0000000..3d4338a
--- /dev/null
@@ -0,0 +1,29 @@
+A feature I originally requested on
+[[a_related_bug|bugs/openid_no_longer_pretty-prints_OpenIDs]]:
+
+    Allow the openid plugin to be loaded but disabled, for its side-effect of defining IkiWiki::openiduser
+    
+    On various sites I have two IkiWiki instances running from the same
+    repository: one accessible via http and only accepting openid logins,
+    and one accessible via authenticated https and only accepting httpauth.
+    Ideally, the https version should still pretty-print OpenIDs seen in
+    git history.
+
+--[[smcv]]
+
+> I wonder if an option is the best approach. Maybe it would be better to
+> simply move `openiduser` into `userlink`, and thus always support openid
+> usernames whether the plugin is enabled or not. --[[Joey]]
+
+>> OK, implemented that as 'smcv/always-openid'; if you don't think that's
+>> bloating the IkiWiki core too much, please consider merging. The poll on
+>> [[news/openid]] indicates fairly strong support for *only* accepting OpenID
+>> logins, so I think recognising OpenIDs can reasonably be considered core
+>> functionality! --[[smcv]]
+
+>>> That seemed easier than expected, [[done]].
+>>> (I do wonder if the call to openiduser still needs to be evaled --
+>>> it was probably only evaled before in case it was not available, but
+>>> I have not carefully checked it to make sure it doesn't ever die. --[[Joey]] 
+
+[[!tag patch]]
index 0ef8a7847b01c6e2a514cb8a1ac738d3e78c6bcd..3ccef62fe57542e3603f64ac479c0cbf1e63d759 100644 (file)
@@ -79,4 +79,30 @@ I can think about reducung the size of my wiki source and making it available on
 > 
 > --[[Joey]]
 
-[[!tag wishlist]]
+[[!template id=gitbranch branch=smcv/ready/optimize-depends author="[[smcv]]"]]
+
+>> I've been looking at optimizing ikiwiki for a site using
+>> [[plugins/contrib/album]] (which produces a lot of pages) and it seems
+>> that checking which pages depend on which pages does take a significant
+>> amount of time. The optimize-depends branch in my git repository
+>> avoids using `pagespec_merge()` for this (indeed it's no longer used
+>> at all), and instead represents dependencies as a list of pagespecs
+>> rather than a single pagespec. This does turn out to be faster, although
+>> not as much as I'd like. --[[smcv]]
+
+>>> I just wanted to note that there is a whole long discussion of dependencies and pagespecs on the [[todo/tracking_bugs_with_dependencies]] page. -- [[Will]]
+
+>>>> Yeah, I had a look at that (as the only other mention of `pagespec_merge`).
+>>>> I think I might have solved some of the problems mentioned there,
+>>>> actually - `pagespec_merge` no longer needs to exist in my branch (although
+>>>> I haven't actually deleted it), because the "or" operation is now done in
+>>>> the Perl code, rather than by merging pagespecs and translating. --[[smcv]]
+
+[[!template id=gitbranch branch=smcv/ready/remove-pagespec-merge author="[[smcv]]"]]
+
+>>>>> I've now added a patch to the end of that branch that deletes
+>>>>> `pagespec_merge` almost entirely (we do need to keep a copy around, in
+>>>>> ikiwiki-transition, but that copy doesn't have to be optimal or support
+>>>>> future features like [[tracking_bugs_with_dependencies]]). --[[smcv]]
+
+[[!tag wishlist patch patch/core]]
index b051361a8486db732d34e3ec99625a9f566b5619..ce8c9d1719b74bce453cbad2d1cbaddb4357edc2 100644 (file)
@@ -4,6 +4,34 @@ How about a direct link from the page header to the source of the latest version
 
 I just implemented this.  There is one [[patch]] to the default page template, and a new plugin.  -- [[Will]]
 
+> The use of sessioncgi here seems undesirable: on wikis where anonymity is
+> not allowed, you'll be asked to log in. Couldn't you achieve the same thing
+> by loading the index with IkiWiki::loadindex, like [[plugins/goto]] does?
+> --[[smcv]]
+
+[[!template id=gitbranch branch=smcv/ready/getsource
+  author="[[Will]]/[[smcv]]"]]
+
+>> I've applied the patch below in a git branch, fixed my earlier criticism,
+>> and also fixed a couple of other issues I noticed:
+>>
+>> * missing pages could be presented better as a real 404 page
+>> * the default Content-type should probably be UTF-8 since the rest of
+>>   IkiWiki tends to assume that
+>> * emitting attachments (images, etc.) as text/plain isn't going to work :-)
+>>
+>> Any opinions on my branch? I think it's ready for merge, if Joey approves.
+>>
+>> --[[smcv]]
+
+>>> I need a copyright&license statement, so debian/copyright can be updated for
+>>> the plugin, before I can merge this. Otherwise ready. --[[Joey]]
+
+>>> That looks like a nice set of fixes.  One more that might be worthwhile: instead of reading the page source into a var, and then writing it out later, it might be nice to just
+>>>  `print readfile(srcfile(pagesources{$page}));` at the appropriate point. -- [[Will]]
+
+>>>> OK, I've committed that. --[[smcv]]
+
 ----
 
     diff --git a/templates/page.tmpl b/templates/page.tmpl
index 644cf23aaffbc42ef5d8cd4abada1fbacd712cd3..2fe819682253efb6632f0d4204663f5bea6b0394 100644 (file)
@@ -2,6 +2,29 @@ A simple plugin to allow per-page customization of a template by passing paramat
 
 [[!tag patch]]
 
+> The implementation looks fine to me (assuming it works with current ikiwiki),
+> apart from the "XXX" already noted in the patch. The design could reasonably
+> be considered premature generalization, though - how often do you actually
+> need to define new tmplvars?
+>
+> As for the page/destpage/preview thing, it would be good if the preprocess
+> hook could distinguish between software-supplied and user-supplied
+> parameters (the [[plugins/tag]] plugin could benefit from this too). Perhaps
+> the IkiWiki core could be modified so that
+> `hook(type => "preprocess", splitparams => 1, ...)` would invoke preprocess
+> with { page => "foo", destpage => "bar", ... } as a special first argument,
+> and the user-supplied parameters as subsequent arguments? Then plugins like
+> tag could use:
+>
+>     my $ikiparams = shift;
+>     my %params = @_;
+>
+>     add_tags($ikiparams->{page}, keys %params);
+>
+> --[[smcv]]
+
+----
+
     #!/usr/bin/perl
     package IkiWiki::Plugin::tmplvars;
 
index 3a761731bd93325e4db0e6b4c0cfffaf7f188770..a198530fcd03ad8189fd77244cecc841e6291d1c 100644 (file)
@@ -1,3 +1,5 @@
+[[!tag patch patch/core]]
+
 I like the idea of [[tips/integrated_issue_tracking_with_ikiwiki]], and I do so on several wikis.  However, as far as I can tell, ikiwiki has no functionality which can represent dependencies between bugs and allow pagespecs to select based on dependencies.  For instance, I can't write a pagespec which selects all bugs with no dependencies on bugs not marked as done.  --[[JoshTriplett]]
 
 > I started having a think about this.  I'm going to start with the idea that expanding
@@ -408,6 +410,9 @@ account all comments above (which doesn't mean it is above reproach :) ).  --[[W
 >>>>> then the last definition (baz) takes precedence.
 >>>>> In the process of writing this I think I've come up with a way to change this back the way it was, still using closures. -- [[Will]]
 
+>>> Alternatively, my [[remove-pagespec-merge|should_optimise_pagespecs]]
+>>> branch solves this, in a Gordian knot sort of way :-) --[[smcv]]
+
 >>  Secondly, it seems that there are two types of dependency, and ikiwiki
 >>  currently only handles one of them.  The first type is "Rebuild this
 >>  page when any of these other pages changes" - ikiwiki handles this.
index 1be150a829aaaadc16ee9161e555793c31d61232..e5ad34335b630f6dbc4d0c65cb2443e28b68b832 100644 (file)
@@ -4,6 +4,21 @@ This works right from a technical point of view, but the URLs will become ugly.
 So I made a patch which unaccent chars: <http://users.itk.ppke.hu/~cstamas/code/ikiwiki/unaccentpagetitlenames/>
 This is a one liner change, but requires a bit of reordering in the code.
 
-[[cstamas]]
+--[[cstamas]]
 
-[[!tag wishlist patch]]
+> This was previously requested in [[todo/more_customisable_titlepage_function]],
+> in which [[Joey]] said "I don't think that changing titlepage is a good idea,
+> there are compatability problems".
+>
+> The problem is that altering titlepage changes the meaning of your wiki,
+> by resolving all wiki links to different page names. That means that:
+>
+> * unaccenting can't be automatic, it has to be a configuration option
+>   (so you don't accidentally get different behaviour by installing
+>   Text::Unaccent)
+> * upgrading Text::Unaccent becomes risky, as I doubt it guarantees to
+>   have stable rules for how to transliterate into ASCII!
+>
+> --[[smcv]]
+
+[[!tag wishlist patch patch/core]]
index b28469993864708a54e16520440a64ba8dfc271b..d292a1184892132e880365370900f8c71fc0243c 100644 (file)
@@ -33,6 +33,12 @@ ManojSrivastava
 > > directory,  which is not very easy for a plain ol' user.  Not everyone is the
 > >  sysadmin of their own machines with access to system dirs. --ManojSrivastava
 
+>>> It seems worth mentioning here that the `libdir` configuration parameter
+>>> lets you install additional plugins in a user-controlled directory
+>>> (*libdir*`/IkiWiki/Plugin`), avoiding needing root; indeed, a full local
+>>> ikiwiki installation without any involvement from the sysadmin is
+>>> [[possible|tips/DreamHost]]. --[[smcv]]
+
 <pre>
                 varioki => {'motto'    => '"Manoj\'s musings"',
                         'arrayvar' => '[0, 1, 2, 3]',
index 327e61491245a2bd0ca9373e9233ba405656b1d6..9dbbb6bc8af7fa3d1d733c13e5dbbb5d55c2421f 100644 (file)
@@ -1,9 +1,3 @@
-This sounds like a more general version of what I want for
-one-photo-per-page galleries, where each page has previous|up|next links
-(like this plugin) and the index page has a list or grid of thumbnails
-(\[[!inline]] with a specially modified template perhaps). I'll watch this
-with interest! --[[smcv]]
-
 This is a nice idea, I do have my gripes about the imeplementation.
 
 Assuming that the index's list is in mdwn format is not ideal. I guess the
@@ -22,3 +16,65 @@ breadcrums to be automatically inserted at the top of every page on the
 trail. (You'd have to use a directive to define the index for that to work.)
 
 --[[Joey]]
+
+----
+
+Revisiting this, after effectively reimplementing a small version of it
+in [[plugins/contrib/album]]: it occurs to me that might be a more
+"ikiwiki-like" way we could get this functionality.
+
+In the index page, you either want an [[ikiwiki/directive/inline]], or
+a list of links. In the former case, maybe we could extend inline like
+this:
+
+    \[[!inline ... blah blah ... trail=yes]]
+
+to make it remember the pages it inlined, in order, in the pagestate;
+in the latter case, we could replace the wikilinks with a directive,
+an operation something like this in diff notation:
+
+    - \[[one]] - the unit
+    - \[[two]] - the base of binary
+    - \[[three|3]] - is a crowd
+    + \[[!trailitem one]] - the unit
+    + \[[!trailitem two]] - the base of binary
+    + \[[!trailitem three|3]] - is a crowd
+
+and have that directive remember the pages in order.
+
+In both cases, a scan() hook could clear the list before starting to
+scan, then the inline or trailitem preprocessor directive could run in
+the scan stage as well as the render stage (in the case of inline,
+there'd be a very early return if trail=yes was not given, and
+an early return after collecting and sorting the pages if not
+actually rendering).
+
+This would mean that the contents of the trail, and a list of
+trails in which each page can be found, would already be in
+the pagestate by the time any page was rendered, so we'd be able
+to use them for output, either in a pagetemplate() hook or
+a \[[!trail]] preprocessor directive.
+
+This way, my album plugin could be turned inside out: instead
+of precomputing the pages to be inlined, then using
+[[pagenames|todo/inline plugin: specifying ordered page names]]
+to get them into the inline, it could just do the inline, then
+incorporate the output of \[[!trail]] into the template rendered
+for \[[!albumimage]] on each viewer page. (Also, the viewers
+wouldn't necessarily need to reference the album, only the other
+way round.)
+
+Using a pagetemplate() hook to stuff the next/previous links
+into page.tmpl would actually be a bit unfortunate for \[[!album]],
+because that plugin definitely wants to style the next/previous
+links as a thumbnail, which means there'd have to be a way to
+affect the style - perhaps by arranging for album's pagetemplate
+hook to run *after* trail's, or perhaps by having trail's
+pagetemplate hook disable itself for pages that contain
+a \[[!trail]] directive.
+
+I have now implemented this at [[plugins/contrib/trail]].
+What do you think? I'm still not sure how it would relate
+to [[plugins/contrib/album]], but if trail is reviewed
+and approved in principle, I'll try to adapt album as
+outlined above. --[[smcv]]
index e3e458ce7487ecfcd058207ded6ff0dc018dd030..459f47eb5eb31db734e05b71506098ebf0fec48f 100644 (file)
@@ -22,11 +22,21 @@ essentially three pieces needed for a complete translation:
    * The names and values of parameters, both to the program, in the setup
      file, and in preprocessor directives.
 
+1. The [[basewiki]] needs to be translated. The
+   [[plugins/contrib/po]] ikiwiki plugin will allow translating
+   wikis using po files and can be used for this.
+
+   To generate the po and pot files for translating the basewiki,
+   get ikiwiki's source, edit the `po/underlay.setup` file,
+   adding your language. Then run 'make -C po underlays`.
+   This will generate many po files under `po/underlays`. The first
+   ones you'll want to translate are in the `po/underlays/basewiki` directory,
+   which is really not very large, just a few thousand words.
+   After that is done, you can tackle those under
+   `po/underlays/directives`, which are a much larger (tens of
+   thousands of words).
+
 1. The templates also need to be translated. Some work has been done on an
    infrastructure for maintaining translated templates, as documented in
    [[todo/l10n]], but until that's complete, you'd need to copy and
    translate the templates by hand.
-
-1. The [[basewiki]] itself needs to be translated. The
-   [[plugins/contrib/po]] ikiwiki plugin will allow translating
-   wikis using po files and can be used for this.
index 26097b5559dbcd48ebea1a20c6eddd256ed90276..35e8fd0542be20f994507d098d8610c44412cf44 100644 (file)
@@ -17,15 +17,8 @@ updating my PO file? Should I send it to you for every ikiwiki issue?
 Maybe you should give write access to ikiwiki repository for translators
 of PO files?
 
-  > I recently set up a git repository mirroring the main svn repository (see
-  > [[download]]) and one idea is that perhaps translators can use that for a
-  > distributed revision control system that I can merge back from into svn.
-  > I can set up accounts for svn, but as it's on my own personal server and
-  > not a sourceforge/alioth like thing, it's a bit of a pain and maintenance
-  > burden for me.
-
-  >> OK, I've picked up Subversion for your ikiwiki, so I can get into
-  >> Git now ;)
+  > We use git now, so you can clone my repo, commit to your clone, and
+  > use git to mail me patches. --[[Joey]] 
 
 3. What is the best way to update my PO file when you do some changes in
 `ikiwiki.pot` file? Should I translate my PO file from scratch or
@@ -94,4 +87,4 @@ translators. Thank you! :) --[[Paweł|ptecza]]
 > size limits. This is generally done by adding comments in the pot file,
 > and I've turned that on, and added a few. --[[Joey]]
 
->> Thank you very much! It also will be a big help for me. --[[Paweł|ptecza]]
\ No newline at end of file
+>> Thank you very much! It also will be a big help for me. --[[Paweł|ptecza]]
diff --git a/doc/users/harishcm.mdwn b/doc/users/harishcm.mdwn
new file mode 100644 (file)
index 0000000..47f28c8
--- /dev/null
@@ -0,0 +1 @@
+Using ikiwiki for my yet to be publish personal website :)
index 0706859aa526a249b3cbddf1b5337d5458a1075c..5fc24711e4bc7e19f5c09a7e58b4769ce3dd488f 100644 (file)
@@ -1,3 +1,8 @@
-New ikiwiki site at my personal site under /ikiwiki/ . This might move to /wiki/ or be on wiki.k.o depending on if I can import my MediaWiki stuff to it.
+## personal/site info
+
+New ikiwiki site at my web site, blog, kisikew.org home site, for indigenews, and our indigenous-centric wiki (mostly East Coast/Woodlands area). Mediawiki stuff was imported successfully (as noted on this web site).
+
+## ikiwiki branch at github
+
+Maintain my own branch, partly to learn about VCS, git, ikiwiki, Debian packaging, and Perl. I don't recommend anyone pull from it, as I use third-party plugins included on this site that people may not want in a default installation of ikiwiki. This is why I don't push to Joey's -- so it's nothing personal, I just don't want to mess things up for other people, from my mistakes and stumbles.
 
-Thought I'd try it out again and it grew on me.
index b6b8de79fee92a90b7e8f10467353c77476e969a..d80fc3ba1ad518ed76a9fd91deda21cc0b6971f3 100644 (file)
@@ -1,8 +1,5 @@
-[[!template id=plugin name=smcvgallery author="[[Simon_McVittie|smcv]]"]]
-[[!tag type/chrome]]
-
-This plugin has not yet been written; this page is an experiment in
-design-by-documentation :-)
+This plugin has now been implemented as [[plugins/contrib/album]]; this
+page has older thoughts about it.
 
 ## Requirements
 
@@ -124,6 +121,8 @@ an option!)
 
 ### Synthesize source pages for viewers
 
+(Edited to add: this is what [[plugins/contrib/album]] implements. --[[smcv]])
+
 Another is to synthesize source pages for the viewers. This means they can have
 tags and metadata, but trying to arrange for them to be scanned etc. correctly
 without needing another refresh run is somewhat terrifying.
@@ -145,6 +144,10 @@ in that directory during the refresh hook. The source pages could be in the
 underlay until they are edited (e.g. tagged), at which point they would be
 copied into the source-code-controlled version in the usual way.
 
+> Coming back to this: a specialized web UI to mark attachments as part of
+> the gallery would make this easy too - you'd put the photos in the
+> underlay, then go to the CGI and say "add all". --[[smcv]]
+
 The synthetic source pages can be very simple, using the same trick as my
 [[plugins/comments]] plugin (a dedicated [[directive|ikiwiki/directives]]
 encapsulating everything the plugin needs). If the plugin automatically
@@ -153,6 +156,9 @@ only the human-edited information and a filename reference need to be present
 in the source page; with some clever lookup rules based on the filename of
 the source page, not even the photo's filename is necessarily needed.
 
+> Coming back to this later: the clever lookup rules make dependency tracking
+> hard, though. --[[smcv]]
+
     \[[!meta title="..."]]
     \[[!meta date="..."]]
     \[[!meta copyright="..."]]
index c1c37443b3002b45c08dc248640430e5e04d8210..d67c3a4ffac84247dc033ba85baa2665ebdbf1ee 100644 (file)
@@ -5,16 +5,26 @@ POTFILES=$(sort $(shell find ../IkiWiki -type f -name \*.pm)) \
 POFILES=$(wildcard *.po)
 MOFILES=$(POFILES:.po=.mo)
 
-all: ikiwiki.pot mo
+all: ikiwiki.pot mo ../underlays/locale
 
 mo: $(MOFILES)
 
 install: all
+       # Normal mo files for program translation.
        for file in $(MOFILES); do \
                lang=`echo $$file | sed 's/\.mo//'`; \
                install -d $(DESTDIR)$(PREFIX)/share/locale/$$lang/LC_MESSAGES/; \
                install -m 0644 $$file $(DESTDIR)$(PREFIX)/share/locale/$$lang/LC_MESSAGES/ikiwiki.mo; \
        done
+       
+       # Underlay translation via po files that go in special per-language
+       # underlays.
+       for file in `cd underlays && find . -type f -name \*.po`; do \
+               lang=`echo $$file | sed -e 's/.po$$//' -e 's/.*\\.//'`; \
+               dir=`dirname "$(DESTDIR)$(PREFIX)/share/ikiwiki/po/$$lang/$$file"`; \
+               install -d $$dir; \
+               install -m 0644 underlays/$$file $$dir; \
+       done
 
 ikiwiki.pot: $(POTFILES)
        @if perl -e '($$ver)=`xgettext -V | head -n 1`=~/.*\s+([0-9]+\.[0-9]+)/; die "gettext $$ver too old, not updating the pot file\n" if $$ver < 0.16'; then \
@@ -23,7 +33,9 @@ ikiwiki.pot: $(POTFILES)
        fi
 
 clean:
-       rm -f $(MOFILES) messages messages.mo
+       rm -f $(MOFILES) messages messages.mo *_stamp
+       rm -rf html underlays/.ikiwiki ../underlays/locale
+       find underlays -name \*.mdwn -or -name \*.pot | xargs rm -f
 
 %.mo: %.po
        msgfmt -o $@ $<
@@ -46,3 +58,34 @@ check:
                printf "$$lang: "; \
                msgfmt -o /dev/null -c -v --statistics $$lang.po;\
        done
+
+underlays_copy_stamp:
+       # copy all the files we want to translate into a srcdir
+       for file in `cd ..; find underlays -follow -name \*.mdwn`; do \
+               install -d $$(dirname $$file); \
+               cp -aL ../$$file $$file 2>/dev/null || \
+               install -m 644 ../$$file $$file; \
+       done
+       install -d underlays/directives/ikiwiki/directive
+       for file in `cd ..; find doc/ikiwiki/directive/ -maxdepth 1 -type f`; do \
+               cp -a ../$$file underlays/directives/ikiwiki/directive ||  \
+               install -m 644 ../$$file underlays/directives/ikiwiki/directive; \
+       done
+       install -d underlays/empty
+       touch $@
+
+underlays: ../ikiwiki.out underlays_copy_stamp
+       ../ikiwiki.out -libdir .. -setup underlay.setup -refresh
+
+../ikiwiki.out: ../Makefile
+       make -C .. ikiwiki.out
+
+../Makefile: ../Makefile.PL
+       cd .. && ./Makefile.PL
+
+../underlays/locale: po2wiki_stamp
+po2wiki_stamp: po2wiki underlays_copy_stamp
+       PERL5LIB=.. ./po2wiki underlay.setup
+       touch $@
+
+.PHONY: underlays
index d1dfe69251ca508bb01e033314a21444bdaf382a..9c03e3b87d0277c97aab11954734446b4c11dc40 100644 (file)
--- 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: 2009-06-12 19:52-0400\n"
+"POT-Creation-Date: 2009-07-20 06:45+0200\n"
 "PO-Revision-Date: 2007-01-12 01:19+0200\n"
 "Last-Translator: Damyan Ivanov <dam@modsodtsys.com>\n"
 "Language-Team: Bulgarian <dict@fsa-bg.org>\n"
@@ -55,7 +55,7 @@ msgstr "Предпочитанията са запазени."
 msgid "You are banned."
 msgstr "Достъпът ви е забранен."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1253
 msgid "Error"
 msgstr "Грешка"
 
@@ -190,6 +190,7 @@ msgstr ""
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
 #: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
 #: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Plugin/po.pm:283 ../IkiWiki/Plugin/po.pm:286
 #: ../IkiWiki/Render.pm:80 ../IkiWiki/Render.pm:84 ../IkiWiki/Render.pm:150
 msgid "Discussion"
 msgstr "Дискусия"
@@ -349,9 +350,10 @@ msgstr ""
 msgid "you are not allowed to change file modes"
 msgstr ""
 
-#: ../IkiWiki/Plugin/google.pm:27
+#: ../IkiWiki/Plugin/google.pm:27 ../IkiWiki/Plugin/po.pm:124
+#: ../IkiWiki/Plugin/search.pm:36
 #, fuzzy, perl-format
-msgid "Must specify %s when using the google search plugin"
+msgid "Must specify %s when using the %s plugin"
 msgstr "При използване на приеставката „search” е необходимо е да се укаже %s"
 
 #: ../IkiWiki/Plugin/google.pm:31
@@ -377,17 +379,17 @@ msgstr "приставката „linkmap”: грешка при изпълне
 msgid "prog not a valid graphviz program"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:46
+#: ../IkiWiki/Plugin/highlight.pm:47
 #, perl-format
 msgid "tohighlight contains unknown file type '%s'"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:57
+#: ../IkiWiki/Plugin/highlight.pm:58
 #, perl-format
 msgid "Source code: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:122
+#: ../IkiWiki/Plugin/highlight.pm:123
 msgid ""
 "warning: highlight perl module not available; falling back to pass through"
 msgstr ""
@@ -399,7 +401,7 @@ msgstr "не е инсталиран polygen"
 
 #: ../IkiWiki/Plugin/img.pm:69
 #, perl-format
-msgid "bad size \"%s\""
+msgid "wrong size format \"%s\" (should be WxH)"
 msgstr ""
 
 #: ../IkiWiki/Plugin/img.pm:80 ../IkiWiki/Plugin/img.pm:84
@@ -576,6 +578,103 @@ msgstr ""
 msgid "LWP not found, not pinging"
 msgstr "модулът „RPC::XML::Client” не е намерен; източникът не е проверен"
 
+#: ../IkiWiki/Plugin/po.pm:130
+msgid ""
+"At least one slave language must be defined in po_slave_languages when using "
+"the po plugin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:136
+#, perl-format
+msgid "%s is not a valid language code"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:148
+#, perl-format
+msgid ""
+"%s is not a valid value for po_link_to, falling back to po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:153
+msgid ""
+"po_link_to=negotiated requires usedirs to be enabled, falling back to "
+"po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:276
+msgid "discussion"
+msgstr "дискусия"
+
+#: ../IkiWiki/Plugin/po.pm:373
+#, perl-format
+msgid "re-rendering all pages to fix meta titles"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:377 ../IkiWiki/Render.pm:415
+#, perl-format
+msgid "rendering %s"
+msgstr "обновяване на страницата „%s”"
+
+#: ../IkiWiki/Plugin/po.pm:410
+msgid "updated PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:434
+msgid ""
+"Can not remove a translation. Removing the master page, though, removes its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:454
+msgid ""
+"Can not rename a translation. Renaming the master page, though, renames its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:816
+#, perl-format
+msgid "POT file (%s) does not exist"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:824
+#, fuzzy, perl-format
+msgid "failed to update %s"
+msgstr "крешка при компилиране на файла %s"
+
+#: ../IkiWiki/Plugin/po.pm:830
+#, fuzzy, perl-format
+msgid "failed to copy the POT file to %s"
+msgstr "крешка при компилиране на файла %s"
+
+#: ../IkiWiki/Plugin/po.pm:866
+msgid "N/A"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:879
+#, fuzzy, perl-format
+msgid "failed to translate %s"
+msgstr "грешка при запис на файла „%s”: %s"
+
+#: ../IkiWiki/Plugin/po.pm:955
+msgid "removed obsolete PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:1018 ../IkiWiki/Plugin/po.pm:1032
+#: ../IkiWiki/Plugin/po.pm:1072
+#, fuzzy, perl-format
+msgid "failed to write %s"
+msgstr "грешка при запис на файла „%s”: %s"
+
+#: ../IkiWiki/Plugin/po.pm:1030
+#, fuzzy
+msgid "failed to translate"
+msgstr "приставката „linkmap”: грешка при изпълнение на „dot”"
+
+#: ../IkiWiki/Plugin/po.pm:1035
+#, fuzzy, perl-format
+msgid "failed to read %s"
+msgstr "грешка при запис на файла „%s”: %s"
+
 #: ../IkiWiki/Plugin/poll.pm:69
 msgid "vote"
 msgstr "гласуване"
@@ -694,16 +793,16 @@ msgstr ""
 msgid "%s is not a file"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:115
+#: ../IkiWiki/Plugin/remove.pm:134
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:152
+#: ../IkiWiki/Plugin/remove.pm:171
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:192
+#: ../IkiWiki/Plugin/remove.pm:211
 msgid "removed"
 msgstr ""
 
@@ -732,38 +831,33 @@ msgstr ""
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:101
+#: ../IkiWiki/Plugin/rename.pm:122
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "обновяване на страницата „%s”"
 
-#: ../IkiWiki/Plugin/rename.pm:140
+#: ../IkiWiki/Plugin/rename.pm:161
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:226
+#: ../IkiWiki/Plugin/rename.pm:247
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:229
+#: ../IkiWiki/Plugin/rename.pm:250
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:340
+#: ../IkiWiki/Plugin/rename.pm:347
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:495
+#: ../IkiWiki/Plugin/rename.pm:571
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "обновяване на страниците от уики „%s”: %s от потребител „%s”"
 
-#: ../IkiWiki/Plugin/search.pm:36
-#, perl-format
-msgid "Must specify %s when using the search plugin"
-msgstr "При използване на приеставката „search” е необходимо е да се укаже %s"
-
 #: ../IkiWiki/Plugin/search.pm:182
 #, perl-format
 msgid "need Digest::SHA1 to index %s"
@@ -802,11 +896,11 @@ msgid "parse error"
 msgstr "приставката „linkmap”: грешка при изпълнение на „dot”"
 
 #: ../IkiWiki/Plugin/sparkline.pm:78
-msgid "bad featurepoint diameter"
+msgid "invalid featurepoint diameter"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:88
-msgid "bad featurepoint location"
+msgid "invalid featurepoint location"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:99
@@ -815,7 +909,7 @@ msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:104
 #, fuzzy
-msgid "bad height value"
+msgid "invalid height value"
 msgstr "приставката „linkmap”: грешка при изпълнение на „dot”"
 
 #: ../IkiWiki/Plugin/sparkline.pm:111
@@ -825,7 +919,7 @@ msgstr "липсващ параметър „id” на шаблона"
 
 #: ../IkiWiki/Plugin/sparkline.pm:115
 #, fuzzy
-msgid "bad width value"
+msgid "invalid width value"
 msgstr "приставката „linkmap”: грешка при изпълнение на „dot”"
 
 #: ../IkiWiki/Plugin/sparkline.pm:153
@@ -936,52 +1030,47 @@ msgid ""
 "allow this"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:278 ../IkiWiki/Render.pm:303
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "пропускане на невалидното име на файл „%s”"
 
-#: ../IkiWiki/Render.pm:285
+#: ../IkiWiki/Render.pm:284
 #, perl-format
 msgid "%s has multiple possible source pages"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:361
+#: ../IkiWiki/Render.pm:370
 #, perl-format
 msgid "removing old page %s"
 msgstr "премахване на старата страница „%s”"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:410
 #, perl-format
 msgid "scanning %s"
 msgstr "сканиране на „%s”"
 
-#: ../IkiWiki/Render.pm:406
-#, perl-format
-msgid "rendering %s"
-msgstr "обновяване на страницата „%s”"
-
-#: ../IkiWiki/Render.pm:427
+#: ../IkiWiki/Render.pm:436
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "обновяване на страницата „%s”, съдържаща препратки към „%s”"
 
-#: ../IkiWiki/Render.pm:448
+#: ../IkiWiki/Render.pm:457
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "обновяване на страницата „%s”, зависеща от „%s”"
 
-#: ../IkiWiki/Render.pm:487
+#: ../IkiWiki/Render.pm:496
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "обновяване на „%s” и осъвременяване на обратните връзки"
 
-#: ../IkiWiki/Render.pm:499
+#: ../IkiWiki/Render.pm:508
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "премахване на „%s” понеже не се генерира от „%s”"
 
-#: ../IkiWiki/Render.pm:523
+#: ../IkiWiki/Render.pm:532
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: неуспех при обновяване на страницата „%s”"
@@ -1075,16 +1164,16 @@ msgstr ""
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1201
+#: ../IkiWiki.pm:1236
 #, fuzzy, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "открита е циклична завидимост при %s на „%s” на дълбочина %i"
 
-#: ../IkiWiki.pm:1741
+#: ../IkiWiki.pm:1776
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1873
+#: ../IkiWiki.pm:1908
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "грешка при четене на „%s”: %s"
@@ -1109,11 +1198,10 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
-#~ msgid "discussion"
-#~ msgstr "дискусия"
-
-#~ msgid "failed to write %s: %s"
-#~ msgstr "грешка при запис на файла „%s”: %s"
+#, fuzzy
+#~ msgid "Must specify %s when using the google search plugin"
+#~ msgstr ""
+#~ "При използване на приеставката „search” е необходимо е да се укаже %s"
 
 #, fuzzy
 #~ msgid "failed to find url in html"
index 22d90462d6c05d1daf868b9fbfaa118771a3f255..b629e20a90dec3df7a05d2087b63b8d9ca151b7b 100644 (file)
--- 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: 2009-06-12 19:52-0400\n"
+"POT-Creation-Date: 2009-07-20 06:45+0200\n"
 "PO-Revision-Date: 2007-05-09 21:21+0200\n"
 "Last-Translator: Miroslav Kure <kurem@debian.cz>\n"
 "Language-Team: Czech <debian-l10n-czech@lists.debian.org>\n"
@@ -53,7 +53,7 @@ msgstr "Nastavení uloženo."
 msgid "You are banned."
 msgstr "Jste vyhoštěni."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1253
 msgid "Error"
 msgstr "Chyba"
 
@@ -187,6 +187,7 @@ msgstr ""
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
 #: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
 #: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Plugin/po.pm:283 ../IkiWiki/Plugin/po.pm:286
 #: ../IkiWiki/Render.pm:80 ../IkiWiki/Render.pm:84 ../IkiWiki/Render.pm:150
 msgid "Discussion"
 msgstr "Diskuse"
@@ -346,9 +347,10 @@ msgstr ""
 msgid "you are not allowed to change file modes"
 msgstr ""
 
-#: ../IkiWiki/Plugin/google.pm:27
+#: ../IkiWiki/Plugin/google.pm:27 ../IkiWiki/Plugin/po.pm:124
+#: ../IkiWiki/Plugin/search.pm:36
 #, fuzzy, perl-format
-msgid "Must specify %s when using the google search plugin"
+msgid "Must specify %s when using the %s plugin"
 msgstr "Při používání vyhledávacího modulu musíte zadat %s"
 
 #: ../IkiWiki/Plugin/google.pm:31
@@ -373,17 +375,17 @@ msgstr "nepodařilo se spustit graphviz"
 msgid "prog not a valid graphviz program"
 msgstr "program není platným programem graphviz"
 
-#: ../IkiWiki/Plugin/highlight.pm:46
+#: ../IkiWiki/Plugin/highlight.pm:47
 #, perl-format
 msgid "tohighlight contains unknown file type '%s'"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:57
+#: ../IkiWiki/Plugin/highlight.pm:58
 #, perl-format
 msgid "Source code: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:122
+#: ../IkiWiki/Plugin/highlight.pm:123
 msgid ""
 "warning: highlight perl module not available; falling back to pass through"
 msgstr ""
@@ -395,8 +397,8 @@ msgstr "polygen není nainstalován"
 
 #: ../IkiWiki/Plugin/img.pm:69
 #, perl-format
-msgid "bad size \"%s\""
-msgstr "chybná velikost \"%s\""
+msgid "wrong size format \"%s\" (should be WxH)"
+msgstr ""
 
 #: ../IkiWiki/Plugin/img.pm:80 ../IkiWiki/Plugin/img.pm:84
 #: ../IkiWiki/Plugin/img.pm:101
@@ -566,6 +568,103 @@ msgstr ""
 msgid "LWP not found, not pinging"
 msgstr "RPC::XML::Client nebyl nalezen, nepinkám"
 
+#: ../IkiWiki/Plugin/po.pm:130
+msgid ""
+"At least one slave language must be defined in po_slave_languages when using "
+"the po plugin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:136
+#, fuzzy, perl-format
+msgid "%s is not a valid language code"
+msgstr "%s není editovatelná stránka"
+
+#: ../IkiWiki/Plugin/po.pm:148
+#, perl-format
+msgid ""
+"%s is not a valid value for po_link_to, falling back to po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:153
+msgid ""
+"po_link_to=negotiated requires usedirs to be enabled, falling back to "
+"po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:276
+msgid "discussion"
+msgstr "diskuse"
+
+#: ../IkiWiki/Plugin/po.pm:373
+#, perl-format
+msgid "re-rendering all pages to fix meta titles"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:377 ../IkiWiki/Render.pm:415
+#, perl-format
+msgid "rendering %s"
+msgstr "zpracovávám %s"
+
+#: ../IkiWiki/Plugin/po.pm:410
+msgid "updated PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:434
+msgid ""
+"Can not remove a translation. Removing the master page, though, removes its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:454
+msgid ""
+"Can not rename a translation. Renaming the master page, though, renames its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:816
+#, perl-format
+msgid "POT file (%s) does not exist"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:824
+#, fuzzy, perl-format
+msgid "failed to update %s"
+msgstr "nelze zkompilovat %s"
+
+#: ../IkiWiki/Plugin/po.pm:830
+#, fuzzy, perl-format
+msgid "failed to copy the POT file to %s"
+msgstr "nelze zkompilovat %s"
+
+#: ../IkiWiki/Plugin/po.pm:866
+msgid "N/A"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:879
+#, fuzzy, perl-format
+msgid "failed to translate %s"
+msgstr "nelze změnit velikost: %s"
+
+#: ../IkiWiki/Plugin/po.pm:955
+msgid "removed obsolete PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:1018 ../IkiWiki/Plugin/po.pm:1032
+#: ../IkiWiki/Plugin/po.pm:1072
+#, fuzzy, perl-format
+msgid "failed to write %s"
+msgstr "nelze zapsat %s: %s"
+
+#: ../IkiWiki/Plugin/po.pm:1030
+#, fuzzy
+msgid "failed to translate"
+msgstr "nepodařilo se spustit dot"
+
+#: ../IkiWiki/Plugin/po.pm:1035
+#, fuzzy, perl-format
+msgid "failed to read %s"
+msgstr "nelze číst %s: %s"
+
 #: ../IkiWiki/Plugin/poll.pm:69
 msgid "vote"
 msgstr "hlasovat"
@@ -683,16 +782,16 @@ msgstr "Stránka %s je zamknutá uživatelem %s a nelze ji měnit"
 msgid "%s is not a file"
 msgstr "%s není editovatelná stránka"
 
-#: ../IkiWiki/Plugin/remove.pm:115
+#: ../IkiWiki/Plugin/remove.pm:134
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:152
+#: ../IkiWiki/Plugin/remove.pm:171
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:192
+#: ../IkiWiki/Plugin/remove.pm:211
 msgid "removed"
 msgstr ""
 
@@ -721,38 +820,33 @@ msgstr ""
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:101
+#: ../IkiWiki/Plugin/rename.pm:122
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "zpracovávám %s"
 
-#: ../IkiWiki/Plugin/rename.pm:140
+#: ../IkiWiki/Plugin/rename.pm:161
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:226
+#: ../IkiWiki/Plugin/rename.pm:247
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:229
+#: ../IkiWiki/Plugin/rename.pm:250
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:340
+#: ../IkiWiki/Plugin/rename.pm:347
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:495
+#: ../IkiWiki/Plugin/rename.pm:571
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "aktualizace %s (%s) uživatelem %s"
 
-#: ../IkiWiki/Plugin/search.pm:36
-#, perl-format
-msgid "Must specify %s when using the search plugin"
-msgstr "Při používání vyhledávacího modulu musíte zadat %s"
-
 #: ../IkiWiki/Plugin/search.pm:182
 #, perl-format
 msgid "need Digest::SHA1 to index %s"
@@ -788,11 +882,13 @@ msgid "parse error"
 msgstr "chyba rozpoznávání"
 
 #: ../IkiWiki/Plugin/sparkline.pm:78
-msgid "bad featurepoint diameter"
+#, fuzzy
+msgid "invalid featurepoint diameter"
 msgstr "chybný průměr zvýrazněného bodu (featurepoint)"
 
 #: ../IkiWiki/Plugin/sparkline.pm:88
-msgid "bad featurepoint location"
+#, fuzzy
+msgid "invalid featurepoint location"
 msgstr "chybné umístění zvýrazněného bodu (featurepoint)"
 
 #: ../IkiWiki/Plugin/sparkline.pm:99
@@ -800,7 +896,8 @@ msgid "missing values"
 msgstr "chybí hodnoty"
 
 #: ../IkiWiki/Plugin/sparkline.pm:104
-msgid "bad height value"
+#, fuzzy
+msgid "invalid height value"
 msgstr "chybná výška"
 
 #: ../IkiWiki/Plugin/sparkline.pm:111
@@ -808,7 +905,8 @@ msgid "missing width parameter"
 msgstr "chybí parametr šířka (width)"
 
 #: ../IkiWiki/Plugin/sparkline.pm:115
-msgid "bad width value"
+#, fuzzy
+msgid "invalid width value"
 msgstr "chybná šířka"
 
 #: ../IkiWiki/Plugin/sparkline.pm:153
@@ -918,52 +1016,47 @@ msgid ""
 "allow this"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:278 ../IkiWiki/Render.pm:303
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "přeskakuji chybné jméno souboru %s"
 
-#: ../IkiWiki/Render.pm:285
+#: ../IkiWiki/Render.pm:284
 #, perl-format
 msgid "%s has multiple possible source pages"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:361
+#: ../IkiWiki/Render.pm:370
 #, perl-format
 msgid "removing old page %s"
 msgstr "odstraňuji starou stránku %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:410
 #, perl-format
 msgid "scanning %s"
 msgstr "prohledávám %s"
 
-#: ../IkiWiki/Render.pm:406
-#, perl-format
-msgid "rendering %s"
-msgstr "zpracovávám %s"
-
-#: ../IkiWiki/Render.pm:427
+#: ../IkiWiki/Render.pm:436
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "zpracovávám %s, která odkazuje na %s"
 
-#: ../IkiWiki/Render.pm:448
+#: ../IkiWiki/Render.pm:457
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "zpracovávám %s, která závisí na %s"
 
-#: ../IkiWiki/Render.pm:487
+#: ../IkiWiki/Render.pm:496
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "zpracovávám %s, aby se aktualizovaly zpětné odkazy"
 
-#: ../IkiWiki/Render.pm:499
+#: ../IkiWiki/Render.pm:508
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "odstraňuji %s, již není zpracovávána %s"
 
-#: ../IkiWiki/Render.pm:523
+#: ../IkiWiki/Render.pm:532
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: nelze zpracovat %s"
@@ -1055,16 +1148,16 @@ msgstr ""
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1201
+#: ../IkiWiki.pm:1236
 #, fuzzy, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "Byla rozpoznána smyčka direktivy %s na %s v hloubce %i"
 
-#: ../IkiWiki.pm:1741
+#: ../IkiWiki.pm:1776
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1873
+#: ../IkiWiki.pm:1908
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "nemohu číst %s: %s"
@@ -1089,11 +1182,12 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
-#~ msgid "discussion"
-#~ msgstr "diskuse"
+#, fuzzy
+#~ msgid "Must specify %s when using the google search plugin"
+#~ msgstr "Při používání vyhledávacího modulu musíte zadat %s"
 
-#~ msgid "failed to write %s: %s"
-#~ msgstr "nelze zapsat %s: %s"
+#~ msgid "bad size \"%s\""
+#~ msgstr "chybná velikost \"%s\""
 
 #~ msgid "failed to find url in html"
 #~ msgstr "v html se nepodařilo nalézt url"
index e2bbc0b1bf91cc3b762b5d7f963c07997ce2fec3..b0f5d7a5f4c31766fd74d0394e84e72ca0cf28c1 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -5,10 +5,10 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: ikiwiki\n"
+"Project-Id-Version: ikiwiki 3.14159\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-12 19:52-0400\n"
-"PO-Revision-Date: 2009-05-28 14:58+0200\n"
+"POT-Creation-Date: 2009-07-23 01:01+0200\n"
+"PO-Revision-Date: 2009-07-23 01:07+0200\n"
 "Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
 "Language-Team: None\n"
 "MIME-Version: 1.0\n"
@@ -25,7 +25,7 @@ msgstr "Du skal først logge på."
 
 #: ../IkiWiki/CGI.pm:146
 msgid ""
-"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"probable misconfiguration: sslcookie is set, but you are attempting to login "
 "via http, not https"
 msgstr ""
 "mulig opsætningsfejl: sslcookie er sat, men du forsøger at logge på via "
@@ -59,7 +59,7 @@ msgstr "Indstillinger gemt"
 msgid "You are banned."
 msgstr "Du er banlyst."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1253
 msgid "Error"
 msgstr "Fejl"
 
@@ -150,15 +150,15 @@ msgid "Must specify %s"
 msgstr "Skal angive %s"
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:136
-msgid "Failed to create bucket in S3: "
+msgid "Failed to create bucket inside S3: "
 msgstr "Oprettelse af bundt i S3 mislykkedes: "
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:221
-msgid "Failed to save file to S3: "
+msgid "Failed to save file into S3: "
 msgstr "Arkivering af fil i S3 mislykkedes: "
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:243
-msgid "Failed to delete file from S3: "
+msgid "Failed to delete file inside S3: "
 msgstr "Sletning af fil fra S3 mislykkedes: "
 
 #: ../IkiWiki/Plugin/attachment.pm:49
@@ -193,6 +193,7 @@ msgstr ""
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
 #: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
 #: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Plugin/po.pm:289 ../IkiWiki/Plugin/po.pm:292
 #: ../IkiWiki/Render.pm:80 ../IkiWiki/Render.pm:84 ../IkiWiki/Render.pm:150
 msgid "Discussion"
 msgstr "Diskussion"
@@ -349,10 +350,11 @@ msgstr "du kan ikke påvirke en fil med modus %s"
 msgid "you are not allowed to change file modes"
 msgstr "du har ikke lov til at ændre modus for filer"
 
-#: ../IkiWiki/Plugin/google.pm:27
+#: ../IkiWiki/Plugin/google.pm:27 ../IkiWiki/Plugin/po.pm:124
+#: ../IkiWiki/Plugin/search.pm:36
 #, perl-format
-msgid "Must specify %s when using the google search plugin"
-msgstr "Skal angive %s når google søgeudvidelsen bruges"
+msgid "Must specify %s when using the %s plugin"
+msgstr "Skal angive %s når udvidelsen %s bruges"
 
 #: ../IkiWiki/Plugin/google.pm:31
 msgid "Failed to parse url, cannot determine domain name"
@@ -375,17 +377,17 @@ msgstr "graphviz-kørsel mislykkedes"
 msgid "prog not a valid graphviz program"
 msgstr "prog er ikke et gyldigt graphviz-program"
 
-#: ../IkiWiki/Plugin/highlight.pm:46
+#: ../IkiWiki/Plugin/highlight.pm:47
 #, perl-format
 msgid "tohighlight contains unknown file type '%s'"
 msgstr "tohighlight indeholder ukendt filtype '%s'"
 
-#: ../IkiWiki/Plugin/highlight.pm:57
+#: ../IkiWiki/Plugin/highlight.pm:58
 #, perl-format
 msgid "Source code: %s"
 msgstr "Kildekode: %s"
 
-#: ../IkiWiki/Plugin/highlight.pm:122
+#: ../IkiWiki/Plugin/highlight.pm:123
 msgid ""
 "warning: highlight perl module not available; falling back to pass through"
 msgstr ""
@@ -398,8 +400,8 @@ msgstr "Image::Magick ikke installeret"
 
 #: ../IkiWiki/Plugin/img.pm:69
 #, perl-format
-msgid "bad size \"%s\""
-msgstr "forkert størrelse \"%s\""
+msgid "wrong size format \"%s\" (should be WxH)"
+msgstr "forkert størrelsesformat \"%s\" (burde være WxH)"
 
 #: ../IkiWiki/Plugin/img.pm:80 ../IkiWiki/Plugin/img.pm:84
 #: ../IkiWiki/Plugin/img.pm:101
@@ -415,7 +417,7 @@ msgstr "Ændring af størrelse mislykkedes: %s"
 #: ../IkiWiki/Plugin/img.pm:118
 #, perl-format
 msgid "failed to determine size of image %s"
-msgstr "Vurdering af størrelse på billede mislykkedes: %s"
+msgstr "Vurdering af billedstørrelse mislykkedes: %s"
 
 #: ../IkiWiki/Plugin/inline.pm:92
 msgid "Must specify url to wiki with --url when using --rss or --atom"
@@ -509,8 +511,8 @@ msgid "Get an OpenID"
 msgstr "Skaf en OpenID"
 
 #: ../IkiWiki/Plugin/orphans.pm:52
-msgid "All pages are linked to by other pages."
-msgstr "Alle sider henvises til fra andre sider."
+msgid "All pages have other pages linking to them."
+msgstr "Alle sider har henvisninger fra andre sider."
 
 #: ../IkiWiki/Plugin/pagetemplate.pm:30
 msgid "bad or missing template"
@@ -567,6 +569,109 @@ msgstr "ignorerer ping-direktiv for wiki %s (denne wiki er %s)"
 msgid "LWP not found, not pinging"
 msgstr "LWP ikke fundet, pinger ikke"
 
+#: ../IkiWiki/Plugin/po.pm:131
+#, perl-format
+msgid "%s is not a valid language code"
+msgstr "%s er ikke en gyldig sprogkode"
+
+#: ../IkiWiki/Plugin/po.pm:143
+#, perl-format
+msgid ""
+"%s is not a valid value for po_link_to, falling back to po_link_to=default"
+msgstr ""
+"%s er ikke en gyldig værdi for po_link_to, falder tilbage til "
+"po_link_to=default"
+
+#: ../IkiWiki/Plugin/po.pm:148
+msgid ""
+"po_link_to=negotiated requires usedirs to be enabled, falling back to "
+"po_link_to=default"
+msgstr ""
+"po_link_to=negotiated kræver at usedirs er aktiveret, falder tilbage til "
+"po_link_to=default"
+
+#: ../IkiWiki/Plugin/po.pm:282
+msgid "discussion"
+msgstr "diskussion"
+
+#: ../IkiWiki/Plugin/po.pm:379
+#, perl-format
+msgid "rebuilding all pages to fix meta titles"
+msgstr "gendanner alle sider for at korrigere meta titler"
+
+#: ../IkiWiki/Plugin/po.pm:383 ../IkiWiki/Render.pm:415
+#, perl-format
+msgid "building %s"
+msgstr "danner %s"
+
+#: ../IkiWiki/Plugin/po.pm:420
+msgid "updated PO files"
+msgstr "opdaterer PO-filer"
+
+#: ../IkiWiki/Plugin/po.pm:444
+msgid ""
+"Can not remove a translation. If the master page is removed, however, its "
+"translations will be removed as well."
+msgstr ""
+"Kan ikke fjerne en oversættelse. Fjern i stedet hovedsiden, så fjernes dens "
+"oversættelser også."
+
+#: ../IkiWiki/Plugin/po.pm:464
+msgid ""
+"Can not rename a translation. If the master page is renamed, however, its "
+"translations will be renamed as well."
+msgstr ""
+"Kan ikke omdøbe en oversættelse. Omdøb i stedet hovedsiden, så omdøbes dens "
+"oversættelser også."
+
+#: ../IkiWiki/Plugin/po.pm:825
+#, perl-format
+msgid "POT file (%s) does not exist"
+msgstr "POT-filen %s eksisterer ikke"
+
+#: ../IkiWiki/Plugin/po.pm:833
+#, perl-format
+msgid "failed to update %s"
+msgstr "opdatering af %s mislykkedes"
+
+#: ../IkiWiki/Plugin/po.pm:839
+#, perl-format
+msgid "failed to copy the POT file to %s"
+msgstr "kopiering af POT-filen til %s mislykkedes"
+
+#: ../IkiWiki/Plugin/po.pm:875
+msgid "N/A"
+msgstr "N/A"
+
+#: ../IkiWiki/Plugin/po.pm:888
+#, perl-format
+msgid "failed to translate %s"
+msgstr "oversættelse af %s mislykkedes"
+
+#: ../IkiWiki/Plugin/po.pm:964
+msgid "removed obsolete PO files"
+msgstr "forældede PO filer fjernet"
+
+#: ../IkiWiki/Plugin/po.pm:1027 ../IkiWiki/Plugin/po.pm:1041
+#: ../IkiWiki/Plugin/po.pm:1081
+#, perl-format
+msgid "failed to write %s"
+msgstr "skrivning af %s mislykkedes"
+
+#: ../IkiWiki/Plugin/po.pm:1039
+msgid "failed to translate"
+msgstr "oversættelse mislykkedes"
+
+#: ../IkiWiki/Plugin/po.pm:1044
+#, perl-format
+msgid "failed to read %s"
+msgstr "læsning af %s mislykkedes"
+
+#: ../IkiWiki/Plugin/po.pm:1093
+msgid "invalid gettext data, go back to previous page to continue edit"
+msgstr ""
+"forkert gettext-data, gå tilbage til forrige side og fortsæt redigering"
+
 #: ../IkiWiki/Plugin/poll.pm:69
 msgid "vote"
 msgstr "stem"
@@ -658,7 +763,7 @@ msgstr "midt på dagen %A"
 #: ../IkiWiki/Plugin/progress.pm:34
 #, perl-format
 msgid "illegal percent value %s"
-msgstr "ugyldigt procentværdi %s"
+msgstr "ugyldig procentværdi %s"
 
 #: ../IkiWiki/Plugin/progress.pm:59
 msgid "need either `percent` or `totalpages` and `donepages` parameters"
@@ -683,16 +788,16 @@ msgstr "%s er ikke i srcdir, så kan ikke blive slettet"
 msgid "%s is not a file"
 msgstr "%s er ikke en fil"
 
-#: ../IkiWiki/Plugin/remove.pm:115
+#: ../IkiWiki/Plugin/remove.pm:134
 #, perl-format
 msgid "confirm removal of %s"
 msgstr "bekræft at %s bliver fjernet"
 
-#: ../IkiWiki/Plugin/remove.pm:152
+#: ../IkiWiki/Plugin/remove.pm:171
 msgid "Please select the attachments to remove."
 msgstr "Vælg vedhæftning der skal slettes."
 
-#: ../IkiWiki/Plugin/remove.pm:192
+#: ../IkiWiki/Plugin/remove.pm:211
 msgid "removed"
 msgstr "fjernet"
 
@@ -720,38 +825,33 @@ msgstr "%s eksisterer allerede"
 msgid "%s already exists on disk"
 msgstr "%s eksisterer allerede på disken"
 
-#: ../IkiWiki/Plugin/rename.pm:101
+#: ../IkiWiki/Plugin/rename.pm:122
 #, perl-format
 msgid "rename %s"
 msgstr "omdøb %s"
 
-#: ../IkiWiki/Plugin/rename.pm:140
+#: ../IkiWiki/Plugin/rename.pm:161
 msgid "Also rename SubPages and attachments"
 msgstr "Omdøb også UnderSider og vedhæftninger"
 
-#: ../IkiWiki/Plugin/rename.pm:226
+#: ../IkiWiki/Plugin/rename.pm:247
 msgid "Only one attachment can be renamed at a time."
 msgstr "Kun en vedhæftning kan blive omdøbt ad gangen."
 
-#: ../IkiWiki/Plugin/rename.pm:229
+#: ../IkiWiki/Plugin/rename.pm:250
 msgid "Please select the attachment to rename."
 msgstr "Vælg vedhæftningen som skal omdøbes."
 
-#: ../IkiWiki/Plugin/rename.pm:340
+#: ../IkiWiki/Plugin/rename.pm:347
 #, perl-format
 msgid "rename %s to %s"
 msgstr "omdøb %s til %s"
 
-#: ../IkiWiki/Plugin/rename.pm:495
+#: ../IkiWiki/Plugin/rename.pm:571
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr "opdatering til omdøbning af %s til %s"
 
-#: ../IkiWiki/Plugin/search.pm:36
-#, perl-format
-msgid "Must specify %s when using the search plugin"
-msgstr "Skal angive %s når søgeudvidelsen bruges"
-
 #: ../IkiWiki/Plugin/search.pm:182
 #, perl-format
 msgid "need Digest::SHA1 to index %s"
@@ -787,19 +887,19 @@ msgid "parse error"
 msgstr "afkodningsfejl"
 
 #: ../IkiWiki/Plugin/sparkline.pm:78
-msgid "bad featurepoint diameter"
-msgstr "dårlig featurepoint-parameter diameter"
+msgid "invalid featurepoint diameter"
+msgstr "forkert featurepoint-parameter diameter"
 
 #: ../IkiWiki/Plugin/sparkline.pm:88
-msgid "bad featurepoint location"
-msgstr "dårlig featurepoint-parameter location"
+msgid "invalid featurepoint location"
+msgstr "forkert featurepoint-parameter location"
 
 #: ../IkiWiki/Plugin/sparkline.pm:99
 msgid "missing values"
 msgstr "manglende værdier"
 
 #: ../IkiWiki/Plugin/sparkline.pm:104
-msgid "bad height value"
+msgid "invalid height value"
 msgstr "forkert højdeværdi"
 
 #: ../IkiWiki/Plugin/sparkline.pm:111
@@ -807,7 +907,7 @@ msgid "missing width parameter"
 msgstr "manglende breddeparameter"
 
 #: ../IkiWiki/Plugin/sparkline.pm:115
-msgid "bad width value"
+msgid "invalid width value"
 msgstr "forkert breddeværdi"
 
 #: ../IkiWiki/Plugin/sparkline.pm:153
@@ -920,54 +1020,49 @@ msgstr ""
 "symbolsk lænke fundet i srcdir-sti (%s) -- sæt allow_symlinks_before_srcdir "
 "for at tillade dette"
 
-#: ../IkiWiki/Render.pm:278 ../IkiWiki/Render.pm:303
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "udelader forkert filnavn %s"
 
-#: ../IkiWiki/Render.pm:285
+#: ../IkiWiki/Render.pm:284
 #, perl-format
 msgid "%s has multiple possible source pages"
 msgstr "%s har flere mulige kildesider"
 
-#: ../IkiWiki/Render.pm:361
+#: ../IkiWiki/Render.pm:370
 #, perl-format
 msgid "removing old page %s"
 msgstr "fjerner gammel side %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:410
 #, perl-format
 msgid "scanning %s"
 msgstr "gennemlæser %s"
 
-#: ../IkiWiki/Render.pm:406
-#, perl-format
-msgid "rendering %s"
-msgstr "danner %s"
-
-#: ../IkiWiki/Render.pm:427
+#: ../IkiWiki/Render.pm:436
 #, perl-format
-msgid "rendering %s, which links to %s"
+msgid "building %s, which links to %s"
 msgstr "danner %s, som henviser til %s"
 
-#: ../IkiWiki/Render.pm:448
+#: ../IkiWiki/Render.pm:457
 #, perl-format
-msgid "rendering %s, which depends on %s"
+msgid "building %s, which depends on %s"
 msgstr "danner %s, som afhænger af %s"
 
-#: ../IkiWiki/Render.pm:487
+#: ../IkiWiki/Render.pm:496
 #, perl-format
-msgid "rendering %s, to update its backlinks"
+msgid "building %s, to update its backlinks"
 msgstr "danner %s, for at opdatere dens krydshenvisninger (backlinks)"
 
-#: ../IkiWiki/Render.pm:499
+#: ../IkiWiki/Render.pm:508
 #, perl-format
-msgid "removing %s, no longer rendered by %s"
+msgid "removing %s, no longer built by %s"
 msgstr "fjerner %s, ikke længere dannet af %s"
 
-#: ../IkiWiki/Render.pm:523
+#: ../IkiWiki/Render.pm:532
 #, perl-format
-msgid "ikiwiki: cannot render %s"
+msgid "ikiwiki: cannot build %s"
 msgstr "ikiwiki: kan ikke danne %s"
 
 #. translators: The first parameter is a filename, and the second
@@ -993,7 +1088,7 @@ msgstr "opsætning af depotet med ikiwiki-makerepo mislykkedes"
 #: ../IkiWiki/Setup/Automator.pm:115
 #, perl-format
 msgid "** Disabling plugin %s, since it is failing with this message:"
-msgstr ""
+msgstr "** Deaktiverer udvidelse %s, da den fejler med denne besked:"
 
 #: ../IkiWiki/Wrapper.pm:16
 #, perl-format
@@ -1058,16 +1153,16 @@ msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 "indlæsning af ekstern udvidelse krævet af udvidelsen %s mislykkedes: %s"
 
-#: ../IkiWiki.pm:1201
+#: ../IkiWiki.pm:1236
 #, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "forudberegningssløkke fundet på %s ved dybde %i"
 
-#: ../IkiWiki.pm:1741
+#: ../IkiWiki.pm:1776
 msgid "yes"
 msgstr "ja"
 
-#: ../IkiWiki.pm:1873
+#: ../IkiWiki.pm:1908
 #, perl-format
 msgid "cannot match pages: %s"
 msgstr "kan ikke få sider til at passe sammen: %s"
@@ -1085,24 +1180,9 @@ msgid "What revision control system to use?"
 msgstr "Hvilket revisionskontrolsystem skal bruges?"
 
 #: ../auto.setup:20
-msgid "What wiki user (or openid) will be admin?"
-msgstr "Hvilken wiki bruger (eller openid) skal være administrator?"
+msgid "Which user (wiki account or openid) will be admin?"
+msgstr "Hvilken bruger (wiki konto eller openid) skal være administrator?"
 
 #: ../auto.setup:23
 msgid "What is the domain name of the web server?"
-msgstr "Hvad er domænenavnet på webserveren?"
-
-#~ msgid "discussion"
-#~ msgstr "diskussion"
-
-#~ msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
-#~ msgstr "<p class=\"error\">Fejl: %s sluttede med fejl (%s)"
-
-#~ msgid "failed to write %s: %s"
-#~ msgstr "skrivning ad %s mislykkedes: %s"
-
-#~ msgid "failed to find url in html"
-#~ msgstr "lokalisering af url i html mislykkedes"
-
-#~ msgid "processed ok at %s"
-#~ msgstr "korrekt dannet ved %s"
+msgstr "Hvad er webserverens domænenavn?"
index f4e7950942dba24be1af6d8ffebd7f5abcd18557..b5c7c9ec2dc87bb0012487ae2b54138fb1c6f108 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -1,14 +1,15 @@
 # German translation of the ikiwiki language file resulting in de.po
-# Copyright © 2008-2009 Kai Wasserbäch <debian@carbon-project.org>
+# Copyright © 2008 Kai Wasserbäch <debian@carbon-project.org>
+# Copyright © 2008-2009 Kurt Gramlich <kurt@skolelinux.de>
 # This file is distributed under the same license as the ikiwiki package.
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: ikiwiki 3.06\n"
+"Project-Id-Version: ikiwiki 3.14159\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-12 19:52-0400\n"
-"PO-Revision-Date: 2009-03-02 15:39+0100\n"
-"Last-Translator: Kai Wasserbäch <debian@carbon-project.org>\n"
+"POT-Creation-Date: 2009-07-23 01:01+0200\n"
+"PO-Revision-Date: 2009-07-23 01:07+0100\n"
+"Last-Translator: Kurt Gramlich <kurt@skolelinux.de>\n"
 "Language-Team: German <debian-l10n-german@lists.debian.org>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
@@ -20,11 +21,11 @@ msgstr "Sie müssen sich zuerst anmelden."
 
 #: ../IkiWiki/CGI.pm:146
 msgid ""
-"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"probable misconfiguration: sslcookie is set, but you are attempting to login "
 "via http, not https"
 msgstr ""
-"mögliche Fehlkonfiguration: »sslcookie« ist gesetzt, aber Sie versuchen sich "
-"mittels HTTP und nicht HTTPS anzumelden"
+"vermutliche Fehlkonfiguration: sslcookie ist gesetzt, aber Sie versuchen "
+"sich via http anzumelden, nicht https"
 
 #: ../IkiWiki/CGI.pm:149
 msgid "login failed, perhaps you need to turn on cookies?"
@@ -33,7 +34,7 @@ msgstr ""
 
 #: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
 msgid "Your login session has expired."
-msgstr "Ihre Anmeldung für die aktuelle Sitzung ist abgelaufen."
+msgstr "Ihre Anmeldezeit ist abgelaufen."
 
 #: ../IkiWiki/CGI.pm:189
 msgid "Login"
@@ -55,17 +56,17 @@ msgstr "Einstellungen gespeichert."
 msgid "You are banned."
 msgstr "Sie sind ausgeschlossen worden."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1253
 msgid "Error"
 msgstr "Fehler"
 
 #: ../IkiWiki/Plugin/aggregate.pm:84
 msgid "Aggregation triggered via web."
-msgstr "Feed-Erstellung wurde über das Web ausgelöst."
+msgstr "Das Web löst die Zusammenstellung aus"
 
 #: ../IkiWiki/Plugin/aggregate.pm:93
 msgid "Nothing to do right now, all feeds are up-to-date!"
-msgstr "Derzeit nichts zu tun, alle Feeds sind auf dem neusten Stand!"
+msgstr "Es gibt nichts zu tun, alle Vorlagen (feeds) sind aktuell!"
 
 #: ../IkiWiki/Plugin/aggregate.pm:220
 #, perl-format
@@ -74,7 +75,7 @@ msgstr "Parameter %s fehlt"
 
 #: ../IkiWiki/Plugin/aggregate.pm:255
 msgid "new feed"
-msgstr "neuer Feed"
+msgstr "neue Vorlage (feed)"
 
 #: ../IkiWiki/Plugin/aggregate.pm:269
 msgid "posts"
@@ -97,35 +98,35 @@ msgstr "%s läuft aus"
 #: ../IkiWiki/Plugin/aggregate.pm:475
 #, perl-format
 msgid "last checked %s"
-msgstr "zuletzt überprüft am %s"
+msgstr "zuletzt geprüft %s"
 
 #: ../IkiWiki/Plugin/aggregate.pm:479
 #, perl-format
 msgid "checking feed %s ..."
-msgstr "überprüfe Feed %s ..."
+msgstr "überprüfe Vorlage (feed) %s ..."
 
 #: ../IkiWiki/Plugin/aggregate.pm:484
 #, perl-format
 msgid "could not find feed at %s"
-msgstr "konnte Feed unter %s nicht finden"
+msgstr "konnte Vorlage (feed) unter %s nicht finden"
 
 #: ../IkiWiki/Plugin/aggregate.pm:503
 msgid "feed not found"
-msgstr "Feed nicht gefunden"
+msgstr "Vorlage (feed) nicht gefunden"
 
 #: ../IkiWiki/Plugin/aggregate.pm:514
 #, perl-format
 msgid "(invalid UTF-8 stripped from feed)"
-msgstr "(ungültiges UTF-8-Zeichen wurde aus dem Feed entfernt)"
+msgstr "(ungültiges UTF-8 wurde aus der Vorlage (feed) entfernt)"
 
 #: ../IkiWiki/Plugin/aggregate.pm:522
 #, perl-format
 msgid "(feed entities escaped)"
-msgstr "(Feed-Entitäten maskiert)"
+msgstr "(Einträge in der Vorlage (feed) wurden maskiert)"
 
 #: ../IkiWiki/Plugin/aggregate.pm:530
 msgid "feed crashed XML::Feed!"
-msgstr "Feed führte zum Absturz von XML::Feed!"
+msgstr "Vorlage (feed) führte zum Absturz von XML::Feed!"
 
 #: ../IkiWiki/Plugin/aggregate.pm:616
 #, perl-format
@@ -134,7 +135,7 @@ msgstr "erstelle neue Seite %s"
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:31
 msgid "deleting bucket.."
-msgstr "Lösche Bucket..."
+msgstr "lösche Behälter (bucket)..."
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:38 ../ikiwiki.in:210
 msgid "done"
@@ -146,16 +147,16 @@ msgid "Must specify %s"
 msgstr "%s muss angegeben werden"
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:136
-msgid "Failed to create bucket in S3: "
-msgstr "Konnte keinen Bucket in S3 erstellen: "
+msgid "Failed to create bucket inside S3: "
+msgstr "Konnte Behälter (bucket) in S3 nicht anlegen: "
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:221
-msgid "Failed to save file to S3: "
-msgstr "Konnte Datei nicht bei S3 speichern: "
+msgid "Failed to save file into S3: "
+msgstr "Konnte die Datei nicht in S3 speichern: "
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:243
-msgid "Failed to delete file from S3: "
-msgstr "Konnte Datei nicht bei S3 löschen: "
+msgid "Failed to delete file inside S3: "
+msgstr "Konnte die Datei nicht in S3 löschen: "
 
 #: ../IkiWiki/Plugin/attachment.pm:49
 #, perl-format
@@ -189,6 +190,7 @@ msgstr ""
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
 #: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
 #: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Plugin/po.pm:289 ../IkiWiki/Plugin/po.pm:292
 #: ../IkiWiki/Render.pm:80 ../IkiWiki/Render.pm:84 ../IkiWiki/Render.pm:150
 msgid "Discussion"
 msgstr "Diskussion"
@@ -200,7 +202,7 @@ msgstr "%s von %s"
 
 #: ../IkiWiki/Plugin/brokenlinks.pm:55
 msgid "There are no broken links!"
-msgstr "Es gibt keine ungültigen Links!"
+msgstr "Es gibt keine ungültigen Verweise!"
 
 #: ../IkiWiki/Plugin/comments.pm:124 ../IkiWiki/Plugin/format.pm:38
 #, perl-format
@@ -209,11 +211,11 @@ msgstr "nicht unterstütztes Seitenformat %s"
 
 #: ../IkiWiki/Plugin/comments.pm:129
 msgid "comment must have content"
-msgstr "Kommentare dürfen nicht leer sein."
+msgstr "ein Kommentar sollte Inhalt haben"
 
 #: ../IkiWiki/Plugin/comments.pm:185
 msgid "Anonymous"
-msgstr "Anonymer Benutzer"
+msgstr "Anonym"
 
 #: ../IkiWiki/Plugin/comments.pm:340 ../IkiWiki/Plugin/editpage.pm:97
 msgid "bad page name"
@@ -228,26 +230,24 @@ msgstr "kommentiere %s"
 #, perl-format
 msgid "page '%s' doesn't exist, so you can't comment"
 msgstr ""
-"Die Seite »%s« existiert nicht, deshalb können Sie sie nicht kommentieren."
+"Seite %s existiert nicht, Sie können sie deshalb auch nicht kommentieren"
 
 #: ../IkiWiki/Plugin/comments.pm:370
 #, perl-format
 msgid "comments on page '%s' are closed"
-msgstr ""
-"Es können keine weiteren Kommentare für die Seite »%s« abgegeben werden."
+msgstr "Kommentare zur Seite %s sind gesperrt"
 
 #: ../IkiWiki/Plugin/comments.pm:464
 msgid "comment stored for moderation"
-msgstr "Kommentar wurde gespeichert und erwartet Freischaltung."
+msgstr "Der Kommentar wurde zur Moderation gespeichert"
 
 #: ../IkiWiki/Plugin/comments.pm:466
 msgid "Your comment will be posted after moderator review"
-msgstr ""
-"Ihr Kommentar wird freigegeben, nachdem ein Moderator ihn überprüft hat."
+msgstr "Ihr Kommentar wird nach Moderation verschickt"
 
 #: ../IkiWiki/Plugin/comments.pm:479
 msgid "Added a comment"
-msgstr "Kommentar hinzugefügt."
+msgstr "Kommentar hinzugefügt"
 
 #: ../IkiWiki/Plugin/comments.pm:483
 #, perl-format
@@ -260,11 +260,11 @@ msgstr "Sie sind nicht als Administrator angemeldet"
 
 #: ../IkiWiki/Plugin/comments.pm:576
 msgid "Comment moderation"
-msgstr "Kommentarmoderation"
+msgstr "Kommentar-Moderation"
 
 #: ../IkiWiki/Plugin/comments.pm:615
 msgid "comment moderation"
-msgstr "Kommentarmoderation"
+msgstr "Kommentar-Moderation"
 
 #: ../IkiWiki/Plugin/comments.pm:766
 msgid "Comments"
@@ -284,7 +284,7 @@ msgstr "es wurde kein Text in diese Seite kopiert"
 #: ../IkiWiki/Plugin/cutpaste.pm:69
 #, perl-format
 msgid "no text was copied in this page with id %s"
-msgstr "es wurde kein Text in die Seite mit der ID %s kopiert"
+msgstr "es wurde kein Text in diese Seite mit der id %s kopiert"
 
 #: ../IkiWiki/Plugin/editpage.pm:40
 #, perl-format
@@ -294,7 +294,7 @@ msgstr "entferne alte Vorschau %s"
 #: ../IkiWiki/Plugin/editpage.pm:113
 #, perl-format
 msgid "%s is not an editable page"
-msgstr "Die Seite %s kann nicht bearbeitet werden"
+msgstr "Seite %s kann nicht bearbeitet werden"
 
 #: ../IkiWiki/Plugin/editpage.pm:291
 #, perl-format
@@ -319,11 +319,11 @@ msgstr "Übereinstimmung nicht angegeben"
 #: ../IkiWiki/Plugin/edittemplate.pm:62
 #, perl-format
 msgid "edittemplate %s registered for %s"
-msgstr "»edittemplate« %s für %s registriert."
+msgstr "edittemplate %s für %s registriert"
 
 #: ../IkiWiki/Plugin/edittemplate.pm:133
 msgid "failed to process"
-msgstr "Verarbeitung fehlgeschlagen"
+msgstr "Ablauf fehlgeschlagen"
 
 #: ../IkiWiki/Plugin/format.pm:20
 msgid "must specify format and text"
@@ -331,33 +331,32 @@ msgstr "Format und Text müssen spezifiziert werden"
 
 #: ../IkiWiki/Plugin/fortune.pm:27
 msgid "fortune failed"
-msgstr "»fortune« fehlgeschlagen"
+msgstr "fortune fehlgeschlagen"
 
 #: ../IkiWiki/Plugin/git.pm:626 ../IkiWiki/Plugin/git.pm:644
 #: ../IkiWiki/Receive.pm:129
 #, perl-format
 msgid "you are not allowed to change %s"
-msgstr "es ist Ihnen nicht erlaubt, %s zu ändern"
+msgstr "Sie dürfen %s nicht verändern"
 
 #: ../IkiWiki/Plugin/git.pm:666
 #, perl-format
 msgid "you cannot act on a file with mode %s"
-msgstr "Sie können Dateien mit den Zugriffsrechten %s nicht verändern"
+msgstr "Sie können eine Datei mit den Zugriffsrechten %s nicht nutzen"
 
 #: ../IkiWiki/Plugin/git.pm:670
 msgid "you are not allowed to change file modes"
-msgstr "Es ist Ihnen nicht erlaubt, Dateizugriffsrechte zu ändern"
+msgstr "Sie dürfen die Zugriffsrechte der Datei nicht ändern"
 
-#: ../IkiWiki/Plugin/google.pm:27
+#: ../IkiWiki/Plugin/google.pm:27 ../IkiWiki/Plugin/po.pm:124
+#: ../IkiWiki/Plugin/search.pm:36
 #, perl-format
-msgid "Must specify %s when using the google search plugin"
-msgstr ""
-"%s muss angegeben werden, wenn die Google-Sucherweiterung verwandt wird"
+msgid "Must specify %s when using the %s plugin"
+msgstr "%s muss angegeben werden, wenn die %s Erweiterung verwandt wird"
 
 #: ../IkiWiki/Plugin/google.pm:31
 msgid "Failed to parse url, cannot determine domain name"
-msgstr ""
-"Verarbeiten der URL fehlgeschlagen, konnte Domainnamen nicht feststellen"
+msgstr "auswerten der URL fehlgeschlagen, konnte Domainnamen nicht feststellen"
 
 #: ../IkiWiki/Plugin/goto.pm:55
 msgid "missing page"
@@ -376,20 +375,22 @@ msgstr "graphviz konnte nicht ausgeführt werden"
 msgid "prog not a valid graphviz program"
 msgstr "prog ist kein gültiges graphviz-Programm"
 
-#: ../IkiWiki/Plugin/highlight.pm:46
+#: ../IkiWiki/Plugin/highlight.pm:47
 #, perl-format
 msgid "tohighlight contains unknown file type '%s'"
-msgstr ""
+msgstr "tohighlight enteilt unbekannten Dateityp '%s'"
 
-#: ../IkiWiki/Plugin/highlight.pm:57
+#: ../IkiWiki/Plugin/highlight.pm:58
 #, perl-format
 msgid "Source code: %s"
-msgstr ""
+msgstr "Quellcode: %s"
 
-#: ../IkiWiki/Plugin/highlight.pm:122
+#: ../IkiWiki/Plugin/highlight.pm:123
 msgid ""
 "warning: highlight perl module not available; falling back to pass through"
 msgstr ""
+"Warnung: das highlight Perlmodul ist nicht verfügbar; greife zurück auf pass "
+"through"
 
 #: ../IkiWiki/Plugin/img.pm:62
 msgid "Image::Magick is not installed"
@@ -397,8 +398,8 @@ msgstr "Image::Magick ist nicht installiert"
 
 #: ../IkiWiki/Plugin/img.pm:69
 #, perl-format
-msgid "bad size \"%s\""
-msgstr "falsche Größe »%s«"
+msgid "wrong size format \"%s\" (should be WxH)"
+msgstr "falsches Format in \"%s\" für size (sollte BxH sein)"
 
 #: ../IkiWiki/Plugin/img.pm:80 ../IkiWiki/Plugin/img.pm:84
 #: ../IkiWiki/Plugin/img.pm:101
@@ -424,15 +425,15 @@ msgstr ""
 
 #: ../IkiWiki/Plugin/inline.pm:138
 msgid "page editing not allowed"
-msgstr "Seitenbearbeitungen sind nicht erlaubt"
+msgstr "bearbeiten der Seiten nicht erlaubt"
 
 #: ../IkiWiki/Plugin/inline.pm:155
 msgid "missing pages parameter"
-msgstr "Fehlender Seitenparameter"
+msgstr "fehlender Seitenparameter"
 
 #: ../IkiWiki/Plugin/inline.pm:196
 msgid "Sort::Naturally needed for title_natural sort"
-msgstr ""
+msgstr "Sort::Naturally wird benötigt für title_natural sort"
 
 #: ../IkiWiki/Plugin/inline.pm:207
 #, perl-format
@@ -459,18 +460,19 @@ msgstr "dot konnte nicht ausgeführt werden"
 #: ../IkiWiki/Plugin/lockedit.pm:47
 #, perl-format
 msgid "%s is locked and cannot be edited"
-msgstr "%s wurde gesperrt und kann nicht bearbeitet werden"
+msgstr "%s ist gesperrt und kann nicht bearbeitet werden"
 
 #: ../IkiWiki/Plugin/mdwn.pm:44
 msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed"
 msgstr ""
-"»multimarkdown« ist aktiviert, aber Text::MultiMarkdown ist nicht installiert"
+"multimarkdown ist eingeschaltet, aber Text::MultiMarkdown ist nicht "
+"installiert"
 
 #: ../IkiWiki/Plugin/mdwn.pm:67
 #, perl-format
 msgid "failed to load Markdown.pm perl module (%s) or /usr/bin/markdown (%s)"
 msgstr ""
-"Laden des Perl-Moduls »Markdown.pm« (%s) oder »/usr/bin/markdown« (%s) "
+"laden des Perlmoduls Markdown.pm (%s) oder /usr/bin/markdown (%s) "
 "fehlgeschlagen"
 
 #: ../IkiWiki/Plugin/meta.pm:158
@@ -510,8 +512,9 @@ msgid "Get an OpenID"
 msgstr "Eine OpenID anfordern"
 
 #: ../IkiWiki/Plugin/orphans.pm:52
-msgid "All pages are linked to by other pages."
-msgstr "Alle Seiten sind von anderen Seiten aus verlinkt."
+#, fuzzy
+msgid "All pages have other pages linking to them."
+msgstr "Alle Seiten haben mindenstens einen Verweis von einer anderen Seite."
 
 #: ../IkiWiki/Plugin/pagetemplate.pm:30
 msgid "bad or missing template"
@@ -528,8 +531,8 @@ msgstr "Konto konnte nicht erstellt werden."
 #: ../IkiWiki/Plugin/passwordauth.pm:258
 msgid "No email address, so cannot email password reset instructions."
 msgstr ""
-"Keine E-Mail-Adresse angegeben; deshalb können keine Anweisungen zum "
-"Zurücksetzen des Passworts via E-Mail versandt werden."
+"es gibt keine E-Mail Adresse, deshalb kann keine Anweisung zum Zurücksetzen "
+"des Passwortes zugeschickt werden."
 
 #: ../IkiWiki/Plugin/passwordauth.pm:292
 msgid "Failed to send mail"
@@ -541,11 +544,11 @@ msgstr "Ihnen wurden Anweisungen zum Zurücksetzen des Passworts zugesandt."
 
 #: ../IkiWiki/Plugin/passwordauth.pm:329
 msgid "incorrect password reset url"
-msgstr "Fehlerhafte URL zum Zurücksetzen des Passworts"
+msgstr "fehlerhafte URL zum Zurücksetzen des Passworts"
 
 #: ../IkiWiki/Plugin/passwordauth.pm:332
 msgid "password reset denied"
-msgstr "Zurücksetzen des Passworts abgelehnt"
+msgstr "zurücksetzen des Passworts abgelehnt"
 
 #: ../IkiWiki/Plugin/pingee.pm:30
 msgid "Ping received."
@@ -553,22 +556,126 @@ msgstr "Ping empfangen."
 
 #: ../IkiWiki/Plugin/pinger.pm:53
 msgid "requires 'from' and 'to' parameters"
-msgstr "erfordert die Parameter »from« und »to«"
+msgstr "erfordert die Parameter 'from' und 'to'"
 
 #: ../IkiWiki/Plugin/pinger.pm:58
 #, perl-format
 msgid "Will ping %s"
-msgstr "Werde Ping an %s senden"
+msgstr "werde Ping an %s senden"
 
 #: ../IkiWiki/Plugin/pinger.pm:61
 #, perl-format
 msgid "Ignoring ping directive for wiki %s (this wiki is %s)"
-msgstr "Ignoriere Ping-Direktiven für Wiki %s (dies ist Wiki %s)"
+msgstr "Ignoriere die ping Anweisung für das Wiki %s (dieses Wiki ist %s)"
 
 #: ../IkiWiki/Plugin/pinger.pm:77
 msgid "LWP not found, not pinging"
 msgstr "LWP nicht gefunden, führe Ping nicht aus"
 
+#: ../IkiWiki/Plugin/po.pm:131
+#, perl-format
+msgid "%s is not a valid language code"
+msgstr "%s ist keine gültige Sprachkodierung"
+
+#: ../IkiWiki/Plugin/po.pm:143
+#, perl-format
+msgid ""
+"%s is not a valid value for po_link_to, falling back to po_link_to=default"
+msgstr ""
+"%s ist kein gültiger Wert für po_link_to, greife zurück auf "
+"po_link_to=default"
+
+#: ../IkiWiki/Plugin/po.pm:148
+msgid ""
+"po_link_to=negotiated requires usedirs to be enabled, falling back to "
+"po_link_to=default"
+msgstr ""
+"po_link_to=negotiated benötigt usedirs eingeschaltet, greife zurück auf "
+"po_link_to=default"
+
+#: ../IkiWiki/Plugin/po.pm:282
+msgid "discussion"
+msgstr "Diskussion"
+
+#: ../IkiWiki/Plugin/po.pm:379
+#, perl-format
+msgid "rebuilding all pages to fix meta titles"
+msgstr "um die meta-titeln zu reparieren werden alle Seiten neu erstellt"
+
+#: ../IkiWiki/Plugin/po.pm:383 ../IkiWiki/Render.pm:415
+#, perl-format
+msgid "building %s"
+msgstr "erzeuge %s"
+
+#: ../IkiWiki/Plugin/po.pm:420
+msgid "updated PO files"
+msgstr "PO-Dateien aktualisiert"
+
+#: ../IkiWiki/Plugin/po.pm:444
+msgid ""
+"Can not remove a translation. If the master page is removed, however, its "
+"translations will be removed as well."
+msgstr ""
+"Übersetzung kann nicht entfernt werden. Wenn die Master Seite entfernt wird, "
+"werden auch ihre Übersetzungen entfernt."
+
+#: ../IkiWiki/Plugin/po.pm:464
+msgid ""
+"Can not rename a translation. If the master page is renamed, however, its "
+"translations will be renamed as well."
+msgstr ""
+"Eine Übersetzung kann nicht umbenannt werden. Wenn die Master Seite "
+"unbenannt wird, werden auch ihre Übersetzungen unbenannt."
+
+#: ../IkiWiki/Plugin/po.pm:825
+#, perl-format
+msgid "POT file (%s) does not exist"
+msgstr "POT-Datei (%s) existiert nicht"
+
+#: ../IkiWiki/Plugin/po.pm:833
+#, perl-format
+msgid "failed to update %s"
+msgstr "aktualisieren von %s fehlgeschlagen"
+
+#: ../IkiWiki/Plugin/po.pm:839
+#, perl-format
+msgid "failed to copy the POT file to %s"
+msgstr "kopieren der POT-Datei nach %s fehlgeschlagen"
+
+#: ../IkiWiki/Plugin/po.pm:875
+msgid "N/A"
+msgstr "N/A"
+
+#: ../IkiWiki/Plugin/po.pm:888
+#, perl-format
+msgid "failed to translate %s"
+msgstr "übersetzen von %s fehlgeschlagen"
+
+#: ../IkiWiki/Plugin/po.pm:964
+msgid "removed obsolete PO files"
+msgstr "überflüssige PO-Dateien wurden entfernt"
+
+#: ../IkiWiki/Plugin/po.pm:1027 ../IkiWiki/Plugin/po.pm:1041
+#: ../IkiWiki/Plugin/po.pm:1081
+#, perl-format
+msgid "failed to write %s"
+msgstr "schreiben von %s fehlgeschlagen"
+
+#: ../IkiWiki/Plugin/po.pm:1039
+msgid "failed to translate"
+msgstr "übersetzen fehlgeschlagen"
+
+#: ../IkiWiki/Plugin/po.pm:1044
+#, perl-format
+msgid "failed to read %s"
+msgstr "lesen von %s fehlgeschlagen"
+
+#: ../IkiWiki/Plugin/po.pm:1093
+msgid "invalid gettext data, go back to previous page to continue edit"
+msgstr ""
+"ungültige gettext Datei, gehe zurück zur vorherigen Seite um weiter zu "
+"arbeiten"
+
 #: ../IkiWiki/Plugin/poll.pm:69
 msgid "vote"
 msgstr "abstimmen"
@@ -627,7 +734,7 @@ msgstr "zur Mittagszeit am %A"
 
 #: ../IkiWiki/Plugin/prettydate.pm:29
 msgid "%A afternoon"
-msgstr "am %A Nachmittag"
+msgstr "%A am Nachmittag"
 
 #: ../IkiWiki/Plugin/prettydate.pm:32
 msgid "late %A afternoon"
@@ -655,22 +762,22 @@ msgstr "um Mitternacht"
 
 #: ../IkiWiki/Plugin/prettydate.pm:108
 msgid "at noon on %A"
-msgstr "%A am Nachmittag"
+msgstr "am Nachmittag des %A"
 
 #: ../IkiWiki/Plugin/progress.pm:34
 #, perl-format
 msgid "illegal percent value %s"
-msgstr "Unzulässiger Prozentwert (%s)"
+msgstr "unzulässiger Prozentwert %s"
 
 #: ../IkiWiki/Plugin/progress.pm:59
 msgid "need either `percent` or `totalpages` and `donepages` parameters"
 msgstr ""
-"Es werden entweder »percent«- oder »totalpages«- und »donepages«-Parameter "
+"es werden entweder `percent` oder `totalpages` und `donepages` Parameter "
 "benötigt"
 
 #: ../IkiWiki/Plugin/recentchangesdiff.pm:37
 msgid "(Diff truncated)"
-msgstr "(Diff verkürzt)"
+msgstr "(Diff wurde gekürzt)"
 
 #: ../IkiWiki/Plugin/remove.pm:31 ../IkiWiki/Plugin/rename.pm:36
 #, perl-format
@@ -680,36 +787,34 @@ msgstr "%s existiert nicht"
 #: ../IkiWiki/Plugin/remove.pm:38
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be deleted"
-msgstr ""
-"%s ist nicht im Quellverzeichnis und kann deshalb nicht gelöscht werden"
+msgstr "%s ist nicht im srcdir und kann deshalb nicht gelöscht werden"
 
 #: ../IkiWiki/Plugin/remove.pm:41 ../IkiWiki/Plugin/rename.pm:45
 #, perl-format
 msgid "%s is not a file"
 msgstr "%s ist keine Datei"
 
-#: ../IkiWiki/Plugin/remove.pm:115
+#: ../IkiWiki/Plugin/remove.pm:134
 #, perl-format
 msgid "confirm removal of %s"
-msgstr "Bestätigen Sie die Entfernung von %s"
+msgstr "bestätigen Sie die Entfernung von %s"
 
-#: ../IkiWiki/Plugin/remove.pm:152
+#: ../IkiWiki/Plugin/remove.pm:171
 msgid "Please select the attachments to remove."
 msgstr "Bitte wählen Sie die zu entfernenden Anhänge aus."
 
-#: ../IkiWiki/Plugin/remove.pm:192
+#: ../IkiWiki/Plugin/remove.pm:211
 msgid "removed"
 msgstr "entfernt"
 
 #: ../IkiWiki/Plugin/rename.pm:42
 #, perl-format
 msgid "%s is not in the srcdir, so it cannot be renamed"
-msgstr ""
-"%s ist nicht im Quellverzeichnis und kann deshalb nicht umbenannt werden"
+msgstr "%s ist nicht im srcdir und kann deshalb nicht umbenannt werden"
 
 #: ../IkiWiki/Plugin/rename.pm:62
 msgid "no change to the file name was specified"
-msgstr "Es wurde keine Änderung des Dateinames angegeben"
+msgstr "es wurde keine Änderung des Dateinamens angegeben"
 
 #: ../IkiWiki/Plugin/rename.pm:68
 #, perl-format
@@ -726,42 +831,37 @@ msgstr "%s existiert bereits"
 msgid "%s already exists on disk"
 msgstr "%s existiert bereits auf der Festplatte"
 
-#: ../IkiWiki/Plugin/rename.pm:101
+#: ../IkiWiki/Plugin/rename.pm:122
 #, perl-format
 msgid "rename %s"
 msgstr "benenne %s um"
 
-#: ../IkiWiki/Plugin/rename.pm:140
+#: ../IkiWiki/Plugin/rename.pm:161
 msgid "Also rename SubPages and attachments"
-msgstr "Auch Unterseiten und Anhänge umbenennen"
+msgstr "Auch Unterseiten (SubPages) und Anhänge umbenennen"
 
-#: ../IkiWiki/Plugin/rename.pm:226
+#: ../IkiWiki/Plugin/rename.pm:247
 msgid "Only one attachment can be renamed at a time."
 msgstr "Es kann immer nur ein Anhang gleichzeitig umbenannt werden."
 
-#: ../IkiWiki/Plugin/rename.pm:229
+#: ../IkiWiki/Plugin/rename.pm:250
 msgid "Please select the attachment to rename."
-msgstr "Bitte wählen Sie den umzubenennenden Anhang aus."
+msgstr "Bitte wählen Sie den Anhang aus, der umbenannt werden soll."
 
-#: ../IkiWiki/Plugin/rename.pm:340
+#: ../IkiWiki/Plugin/rename.pm:347
 #, perl-format
 msgid "rename %s to %s"
-msgstr "Benenne %s in %s um"
+msgstr "benenne %s in %s um"
 
-#: ../IkiWiki/Plugin/rename.pm:495
+#: ../IkiWiki/Plugin/rename.pm:571
 #, perl-format
 msgid "update for rename of %s to %s"
-msgstr "Aktualisierung für Umbenennung von %s in %s"
-
-#: ../IkiWiki/Plugin/search.pm:36
-#, perl-format
-msgid "Must specify %s when using the search plugin"
-msgstr "%s muss angegeben werden, wenn die Sucherweiterung verwandt wird"
+msgstr "aktualisiert zum Umbenennen von %s nach %s"
 
 #: ../IkiWiki/Plugin/search.pm:182
 #, perl-format
 msgid "need Digest::SHA1 to index %s"
-msgstr "Benötige Digest::SHA1, um %s zu indexieren"
+msgstr "benötige Digest::SHA1 um einen Index von %s zu erstellen"
 
 #: ../IkiWiki/Plugin/search.pm:217
 msgid "search"
@@ -770,7 +870,7 @@ msgstr "suchen"
 #: ../IkiWiki/Plugin/shortcut.pm:31
 #, perl-format
 msgid "shortcut plugin will not work without %s"
-msgstr "die »shortcut«-Erweiterung funktioniert nicht ohne %s"
+msgstr "die shortcut Erweiterung wird ohne %s nicht funktionieren"
 
 #: ../IkiWiki/Plugin/shortcut.pm:44
 msgid "missing name or url parameter"
@@ -782,47 +882,47 @@ msgstr "fehlender Name oder URL-Parameter"
 #: ../IkiWiki/Plugin/shortcut.pm:54
 #, perl-format
 msgid "shortcut %s points to <i>%s</i>"
-msgstr "Tastenkürzel %s verweist auf <i>%s</i>"
+msgstr "Tastenkürzel %s verweist nach <i>%s</i>"
 
 #: ../IkiWiki/Plugin/smiley.pm:43
 msgid "failed to parse any smileys"
-msgstr "Smileys konnten nicht verarbeitet werden"
+msgstr "Smileys konnten nicht ausgewertet werden"
 
 #: ../IkiWiki/Plugin/sparkline.pm:72
 msgid "parse error"
-msgstr "Verarbeitungsfehler"
+msgstr "Auswertungsfehler"
 
 #: ../IkiWiki/Plugin/sparkline.pm:78
-msgid "bad featurepoint diameter"
-msgstr "fehlerhafter »featurepoint«-Durchmesser"
+msgid "invalid featurepoint diameter"
+msgstr "ungültiger featurepoint diameter"
 
 #: ../IkiWiki/Plugin/sparkline.pm:88
-msgid "bad featurepoint location"
-msgstr "fehlerhafter »featurepoint«-Ort"
+msgid "invalid featurepoint location"
+msgstr "ungültige featurepoint location"
 
 #: ../IkiWiki/Plugin/sparkline.pm:99
 msgid "missing values"
 msgstr "fehlende Werte"
 
 #: ../IkiWiki/Plugin/sparkline.pm:104
-msgid "bad height value"
-msgstr "fehlerhafte Höhenangaben"
+msgid "invalid height value"
+msgstr "ungültige Wert für height"
 
 #: ../IkiWiki/Plugin/sparkline.pm:111
 msgid "missing width parameter"
-msgstr "fehlender Breitenparameter"
+msgstr "fehlender Parameter für width"
 
 #: ../IkiWiki/Plugin/sparkline.pm:115
-msgid "bad width value"
-msgstr "fehlerhafte Breitenangabe"
+msgid "invalid width value"
+msgstr "ungültige Wert für width"
 
 #: ../IkiWiki/Plugin/sparkline.pm:153
 msgid "failed to run php"
-msgstr "PHP konnte nicht ausgeführt werden"
+msgstr "konnte PHP nicht ausführen"
 
 #: ../IkiWiki/Plugin/table.pm:31
 msgid "cannot find file"
-msgstr "Datei konnte nicht gefunden werden"
+msgstr "konnte Datei nicht finden"
 
 #: ../IkiWiki/Plugin/table.pm:87
 msgid "unknown data format"
@@ -839,11 +939,11 @@ msgstr "Direkter Daten-Download"
 #: ../IkiWiki/Plugin/table.pm:148
 #, perl-format
 msgid "parse fail at line %d: %s"
-msgstr "Verarbeitungsfehler in Zeile %d: %s"
+msgstr "Auswertungsfehler in Zeile %d: %s"
 
 #: ../IkiWiki/Plugin/template.pm:29
 msgid "missing id parameter"
-msgstr "fehlender »id«-Parameter"
+msgstr "fehlender Parameter id"
 
 #: ../IkiWiki/Plugin/template.pm:36
 #, perl-format
@@ -852,7 +952,7 @@ msgstr "Vorlage %s nicht gefunden"
 
 #: ../IkiWiki/Plugin/template.pm:55
 msgid "failed to process:"
-msgstr "Verarbeitung fehlgeschlagen von:"
+msgstr "Fehler beim Ablauf:"
 
 #: ../IkiWiki/Plugin/teximg.pm:70
 msgid "missing tex code"
@@ -891,26 +991,29 @@ msgstr "Erweiterungen"
 msgid ""
 "The configuration changes shown below require a wiki rebuild to take effect."
 msgstr ""
-"Die unten aufgeführten Konfigurationsänderungen erfordern eine erneute "
-"Erzeugung des Wikis, um aktiviert zu werden."
+"Die unten aufgeführten Konfigurationsänderungen erfordern ein Neubau des "
+"Wikis, um wirksam zu werden."
 
 #: ../IkiWiki/Plugin/websetup.pm:399
 msgid ""
 "For the configuration changes shown below to fully take effect, you may need "
 "to rebuild the wiki."
 msgstr ""
-"Damit die unten aufgeführten Konfigurationsänderungen aktiviert werden, kann "
-"es erforderlich sein, das Wiki neu zu erzeugen."
+"Damit die unten aufgeführten Konfigurationsänderungen insgesamt wirksam "
+"werden, kann es notwendig sein, das Wikis neu zu bauen."
 
 #: ../IkiWiki/Plugin/websetup.pm:436
 #, perl-format
 msgid "Error: %s exited nonzero (%s). Discarding setup changes."
 msgstr ""
+"Fehler: %s endet mit nicht Null (%s). Die Änderungen an der Konfiguration "
+"wurden verworfen."
 
 #: ../IkiWiki/Receive.pm:35
 #, perl-format
 msgid "cannot determine id of untrusted committer %s"
-msgstr "Kann ID des nicht vertrauenswürdigen Bearbeiters %s nicht feststellen"
+msgstr ""
+"id des nicht vertrauenswürdigen Absenders %s konnte nicht feststellt werden"
 
 #: ../IkiWiki/Receive.pm:85
 #, perl-format
@@ -923,57 +1026,52 @@ msgid ""
 "symlink found in srcdir path (%s) -- set allow_symlinks_before_srcdir to "
 "allow this"
 msgstr ""
-"Symbolischer Verweis im Quellverzeichnis (%s) gefunden -- setzen Sie "
+"symbolischer Verweis im srcdir Pfad (%s) gefunden -- setzen Sie "
 "allow_symlinks_before_srcdir, um dies zu erlauben"
 
-#: ../IkiWiki/Render.pm:278 ../IkiWiki/Render.pm:303
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "überspringe fehlerhaften Dateinamen %s"
 
-#: ../IkiWiki/Render.pm:285
+#: ../IkiWiki/Render.pm:284
 #, perl-format
 msgid "%s has multiple possible source pages"
 msgstr "%s hat mehrere mögliche Quellseiten"
 
-#: ../IkiWiki/Render.pm:361
+#: ../IkiWiki/Render.pm:370
 #, perl-format
 msgid "removing old page %s"
 msgstr "entferne alte Seite %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:410
 #, perl-format
 msgid "scanning %s"
 msgstr "durchsuche %s"
 
-#: ../IkiWiki/Render.pm:406
+#: ../IkiWiki/Render.pm:436
 #, perl-format
-msgid "rendering %s"
-msgstr "erzeuge %s"
-
-#: ../IkiWiki/Render.pm:427
-#, perl-format
-msgid "rendering %s, which links to %s"
-msgstr "erzeuge %s, die auf %s verlinkt"
+msgid "building %s, which links to %s"
+msgstr "erzeuge %s, die auf %s verweist"
 
-#: ../IkiWiki/Render.pm:448
+#: ../IkiWiki/Render.pm:457
 #, perl-format
-msgid "rendering %s, which depends on %s"
+msgid "building %s, which depends on %s"
 msgstr "erzeuge %s, die von %s abhängt"
 
-#: ../IkiWiki/Render.pm:487
+#: ../IkiWiki/Render.pm:496
 #, perl-format
-msgid "rendering %s, to update its backlinks"
-msgstr "erzeuge %s, um dessen Rücklinks zu aktualisieren"
+msgid "building %s, to update its backlinks"
+msgstr "erzeuge %s, um dessen Rückverweise zu aktualisieren"
 
-#: ../IkiWiki/Render.pm:499
+#: ../IkiWiki/Render.pm:508
 #, perl-format
-msgid "removing %s, no longer rendered by %s"
+msgid "removing %s, no longer built by %s"
 msgstr "entferne %s, wird nicht länger von %s erzeugt"
 
-#: ../IkiWiki/Render.pm:523
+#: ../IkiWiki/Render.pm:532
 #, perl-format
-msgid "ikiwiki: cannot render %s"
+msgid "ikiwiki: cannot build %s"
 msgstr "ikiwiki: kann %s nicht erzeugen"
 
 #. translators: The first parameter is a filename, and the second
@@ -991,16 +1089,18 @@ msgstr ""
 #: ../IkiWiki/Setup/Automator.pm:71
 #, perl-format
 msgid "unsupported revision control system %s"
-msgstr "Nicht unterstütztes Versionskontrollsystem %s"
+msgstr "nicht unterstütztes Versionskontrollsystem %s"
 
 #: ../IkiWiki/Setup/Automator.pm:97
 msgid "failed to set up the repository with ikiwiki-makerepo"
-msgstr "Erstellen des Depots mit ikiwiki-makerepo ist fehlgeschlagen"
+msgstr "erstellen des Depots mit ikiwiki-makerepo ist fehlgeschlagen"
 
 #: ../IkiWiki/Setup/Automator.pm:115
 #, perl-format
 msgid "** Disabling plugin %s, since it is failing with this message:"
 msgstr ""
+"** Erweiterung %s wurde ausgeschaltet, weil sie mit der folgenden Meldung "
+"fehlgeschlagen ist:"
 
 #: ../IkiWiki/Wrapper.pm:16
 #, perl-format
@@ -1019,7 +1119,7 @@ msgstr "Dateiname des Wrappers nicht angegeben"
 #: ../IkiWiki/Wrapper.pm:152
 #, perl-format
 msgid "failed to compile %s"
-msgstr "Erzeugen von %s fehlgeschlagen"
+msgstr "erzeugen von %s fehlgeschlagen"
 
 #. translators: The parameter is a filename.
 #: ../IkiWiki/Wrapper.pm:172
@@ -1033,7 +1133,7 @@ msgstr "Aufruf: ikiwiki [Optionen] Quelle Ziel"
 
 #: ../ikiwiki.in:14
 msgid "       ikiwiki --setup configfile"
-msgstr "       ikiwiki --setup Konfigurationsdatei "
+msgstr "       ikiwiki --setup Konfigurationsdatei"
 
 #: ../ikiwiki.in:91
 msgid "usage: --set var=value"
@@ -1041,15 +1141,15 @@ msgstr "Aufruf: --set Variable=Wert"
 
 #: ../ikiwiki.in:140
 msgid "generating wrappers.."
-msgstr "erzeuge Wrapper..."
+msgstr "erzeuge Wrapper.."
 
 #: ../ikiwiki.in:199
 msgid "rebuilding wiki.."
-msgstr "erzeuge Wiki neu..."
+msgstr "erzeuge Wiki neu.."
 
 #: ../ikiwiki.in:202
 msgid "refreshing wiki.."
-msgstr "aktualisiere Wiki..."
+msgstr "aktualisiere Wiki.."
 
 #: ../IkiWiki.pm:487
 msgid "Must specify url to wiki with --url when using --cgi"
@@ -1067,19 +1167,19 @@ msgstr ""
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr "Laden der für %s benötigten externen Erweiterung fehlgeschlagen: %s"
 
-#: ../IkiWiki.pm:1201
+#: ../IkiWiki.pm:1236
 #, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "Präprozessorschleife auf %s in Tiefe %i erkannt"
 
-#: ../IkiWiki.pm:1741
+#: ../IkiWiki.pm:1776
 msgid "yes"
 msgstr "ja"
 
-#: ../IkiWiki.pm:1873
-#, fuzzy, perl-format
+#: ../IkiWiki.pm:1908
+#, perl-format
 msgid "cannot match pages: %s"
-msgstr "kann %s nicht lesen: %s"
+msgstr "Kann die Seiten nicht zuordnen: %s"
 
 #: ../auto.setup:16
 msgid "What will the wiki be named?"
@@ -1094,19 +1194,9 @@ msgid "What revision control system to use?"
 msgstr "Welches Versionskontrollsystem soll verwandt werden?"
 
 #: ../auto.setup:20
-msgid "What wiki user (or openid) will be admin?"
-msgstr ""
-"Welcher Wiki-Benutzer (oder welche OpenID) soll der Administrator des Wikis "
-"sein?"
+msgid "Which user (wiki account or openid) will be admin?"
+msgstr "Wer (Wiki-Konto oder OpenID) soll Administrator sein?"
 
 #: ../auto.setup:23
 msgid "What is the domain name of the web server?"
 msgstr "Wie lautet der Domainname des Webservers?"
-
-#~ msgid "discussion"
-#~ msgstr "Diskussion"
-
-#~ msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
-#~ msgstr ""
-#~ "<p class=\"error\">Fehler: %s beendete sich mit einem Wert ungleich Null "
-#~ "(%s)"
index 73db2b4d9aa2bb038099b0be0bcc969f48d0b5d6..9f7f2829ba275f040d143e2efd7abae2be0e733b 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: es\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-12 19:52-0400\n"
+"POT-Creation-Date: 2009-07-23 01:01+0200\n"
 "PO-Revision-Date: 2009-06-14 12:32+0200\n"
 "Last-Translator: Victor Moral <victor@taquiones.net>\n"
 "Language-Team:  <en@li.org>\n"
@@ -24,7 +24,7 @@ msgstr "Antes es necesario identificarse."
 
 #: ../IkiWiki/CGI.pm:146
 msgid ""
-"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"probable misconfiguration: sslcookie is set, but you are attempting to login "
 "via http, not https"
 msgstr ""
 "probablemente algo está mal configurado: la característica 'sslcookie' está "
@@ -33,7 +33,8 @@ msgstr ""
 
 #: ../IkiWiki/CGI.pm:149
 msgid "login failed, perhaps you need to turn on cookies?"
-msgstr "registro fallido, ¿ tal vez necesita activar las cookies en el navegador ?"
+msgstr ""
+"registro fallido, ¿ tal vez necesita activar las cookies en el navegador ?"
 
 #: ../IkiWiki/CGI.pm:168 ../IkiWiki/CGI.pm:299
 msgid "Your login session has expired."
@@ -59,7 +60,7 @@ msgstr "Las preferencias se han guardado."
 msgid "You are banned."
 msgstr "Ha sido expulsado."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1253
 msgid "Error"
 msgstr "Error"
 
@@ -69,7 +70,8 @@ msgstr "Contenido añadido activado vía web."
 
 #: ../IkiWiki/Plugin/aggregate.pm:93
 msgid "Nothing to do right now, all feeds are up-to-date!"
-msgstr "¡ No hay nada que hacer, todas las fuentes de noticias están actualizadas !"
+msgstr ""
+"¡ No hay nada que hacer, todas las fuentes de noticias están actualizadas !"
 
 #: ../IkiWiki/Plugin/aggregate.pm:220
 #, perl-format
@@ -150,15 +152,18 @@ msgid "Must specify %s"
 msgstr "Debe especificar %s"
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:136
-msgid "Failed to create bucket in S3: "
+#, fuzzy
+msgid "Failed to create bucket inside S3: "
 msgstr "Creación de directorio en S3 fallida: "
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:221
-msgid "Failed to save file to S3: "
+#, fuzzy
+msgid "Failed to save file into S3: "
 msgstr "No puedo guardar el archivo en S3: "
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:243
-msgid "Failed to delete file from S3: "
+#, fuzzy
+msgid "Failed to delete file inside S3: "
 msgstr "No puedo borrar archivo en S3: "
 
 #: ../IkiWiki/Plugin/attachment.pm:49
@@ -193,6 +198,7 @@ msgstr ""
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
 #: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
 #: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Plugin/po.pm:289 ../IkiWiki/Plugin/po.pm:292
 #: ../IkiWiki/Render.pm:80 ../IkiWiki/Render.pm:84 ../IkiWiki/Render.pm:150
 msgid "Discussion"
 msgstr "Comentarios"
@@ -349,16 +355,16 @@ msgstr "no puede actuar sobre un archivo con permisos %s"
 msgid "you are not allowed to change file modes"
 msgstr "No puede cambiar los permisos de acceso de un archivo"
 
-#: ../IkiWiki/Plugin/google.pm:27
-#, perl-format
-msgid "Must specify %s when using the google search plugin"
-msgstr ""
-"Es obligatorio indicar %s cuando se utiliza el complemento de búsqueda de "
-"google"
+#: ../IkiWiki/Plugin/google.pm:27 ../IkiWiki/Plugin/po.pm:124
+#: ../IkiWiki/Plugin/search.pm:36
+#, fuzzy, perl-format
+msgid "Must specify %s when using the %s plugin"
+msgstr "Es obligatorio indicar %s cuando se utiliza el complemento de búsqueda"
 
 #: ../IkiWiki/Plugin/google.pm:31
 msgid "Failed to parse url, cannot determine domain name"
-msgstr "Error en el análisis del URL, no puedo determinar el nombre del dominio"
+msgstr ""
+"Error en el análisis del URL, no puedo determinar el nombre del dominio"
 
 #: ../IkiWiki/Plugin/goto.pm:55
 msgid "missing page"
@@ -377,18 +383,19 @@ msgstr "no he podido ejecutar el programa graphviz "
 msgid "prog not a valid graphviz program"
 msgstr "prog no es un programa graphviz válido "
 
-#: ../IkiWiki/Plugin/highlight.pm:46
+#: ../IkiWiki/Plugin/highlight.pm:47
 #, perl-format
 msgid "tohighlight contains unknown file type '%s'"
 msgstr "la directiva tohighlight contiene el tipo de archivo desconocido '%s' "
 
-#: ../IkiWiki/Plugin/highlight.pm:57
+#: ../IkiWiki/Plugin/highlight.pm:58
 #, perl-format
 msgid "Source code: %s"
 msgstr "Código fuente: %s"
 
-#: ../IkiWiki/Plugin/highlight.pm:122
-msgid "warning: highlight perl module not available; falling back to pass through"
+#: ../IkiWiki/Plugin/highlight.pm:123
+msgid ""
+"warning: highlight perl module not available; falling back to pass through"
 msgstr ""
 "aviso: el módulo Perl hightlight no está disponible; retrocedo la entrada "
 "para continuar el proceso. "
@@ -399,8 +406,8 @@ msgstr "El complemento Image::Magick no ha sido instalado"
 
 #: ../IkiWiki/Plugin/img.pm:69
 #, perl-format
-msgid "bad size \"%s\""
-msgstr "tamaño erróneo \"%s\""
+msgid "wrong size format \"%s\" (should be WxH)"
+msgstr ""
 
 #: ../IkiWiki/Plugin/img.pm:80 ../IkiWiki/Plugin/img.pm:84
 #: ../IkiWiki/Plugin/img.pm:101
@@ -467,7 +474,8 @@ msgstr "La página %s está bloqueada y no puede modificarse"
 
 #: ../IkiWiki/Plugin/mdwn.pm:44
 msgid "multimarkdown is enabled, but Text::MultiMarkdown is not installed"
-msgstr "el modo multimarkdown está activo, pero no está instalado Text::MultiMarkdown"
+msgstr ""
+"el modo multimarkdown está activo, pero no está instalado Text::MultiMarkdown"
 
 #: ../IkiWiki/Plugin/mdwn.pm:67
 #, perl-format
@@ -513,7 +521,8 @@ msgid "Get an OpenID"
 msgstr "Consiga un identificador OpenID"
 
 #: ../IkiWiki/Plugin/orphans.pm:52
-msgid "All pages are linked to by other pages."
+#, fuzzy
+msgid "All pages have other pages linking to them."
 msgstr "Todas las páginas están referenciadas entre sí."
 
 #: ../IkiWiki/Plugin/pagetemplate.pm:30
@@ -574,6 +583,102 @@ msgstr "Ignorando directiva 'ping' para el wiki %s (este wiki es %s)"
 msgid "LWP not found, not pinging"
 msgstr "No he encontrado el componente LWP, no envío señal alguna"
 
+#: ../IkiWiki/Plugin/po.pm:131
+#, fuzzy, perl-format
+msgid "%s is not a valid language code"
+msgstr "%s no es un archivo"
+
+#: ../IkiWiki/Plugin/po.pm:143
+#, perl-format
+msgid ""
+"%s is not a valid value for po_link_to, falling back to po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:148
+msgid ""
+"po_link_to=negotiated requires usedirs to be enabled, falling back to "
+"po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:282
+#, fuzzy
+msgid "discussion"
+msgstr "Comentarios"
+
+#: ../IkiWiki/Plugin/po.pm:379
+#, perl-format
+msgid "rebuilding all pages to fix meta titles"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:383 ../IkiWiki/Render.pm:415
+#, fuzzy, perl-format
+msgid "building %s"
+msgstr "Informaremos a %s"
+
+#: ../IkiWiki/Plugin/po.pm:420
+msgid "updated PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:444
+msgid ""
+"Can not remove a translation. If the master page is removed, however, its "
+"translations will be removed as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:464
+msgid ""
+"Can not rename a translation. If the master page is renamed, however, its "
+"translations will be renamed as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:825
+#, fuzzy, perl-format
+msgid "POT file (%s) does not exist"
+msgstr "No existe la página %s."
+
+#: ../IkiWiki/Plugin/po.pm:833
+#, fuzzy, perl-format
+msgid "failed to update %s"
+msgstr "ha fallado la compilación del programa %s"
+
+#: ../IkiWiki/Plugin/po.pm:839
+#, fuzzy, perl-format
+msgid "failed to copy the POT file to %s"
+msgstr "ha fallado la compilación del programa %s"
+
+#: ../IkiWiki/Plugin/po.pm:875
+msgid "N/A"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:888
+#, fuzzy, perl-format
+msgid "failed to translate %s"
+msgstr "dimensionamiento fallido: %s"
+
+#: ../IkiWiki/Plugin/po.pm:964
+msgid "removed obsolete PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:1027 ../IkiWiki/Plugin/po.pm:1041
+#: ../IkiWiki/Plugin/po.pm:1081
+#, fuzzy, perl-format
+msgid "failed to write %s"
+msgstr "dimensionamiento fallido: %s"
+
+#: ../IkiWiki/Plugin/po.pm:1039
+#, fuzzy
+msgid "failed to translate"
+msgstr "no he podido ejecutar el programa dot"
+
+#: ../IkiWiki/Plugin/po.pm:1044
+#, fuzzy, perl-format
+msgid "failed to read %s"
+msgstr "no puedo leer de %s: %s "
+
+#: ../IkiWiki/Plugin/po.pm:1093
+msgid "invalid gettext data, go back to previous page to continue edit"
+msgstr ""
+
 #: ../IkiWiki/Plugin/poll.pm:69
 msgid "vote"
 msgstr "Votar"
@@ -690,16 +795,16 @@ msgstr "%s no está en el directorio fuente por lo que no puede ser borrada"
 msgid "%s is not a file"
 msgstr "%s no es un archivo"
 
-#: ../IkiWiki/Plugin/remove.pm:115
+#: ../IkiWiki/Plugin/remove.pm:134
 #, perl-format
 msgid "confirm removal of %s"
 msgstr "confirme el borrado de %s"
 
-#: ../IkiWiki/Plugin/remove.pm:152
+#: ../IkiWiki/Plugin/remove.pm:171
 msgid "Please select the attachments to remove."
 msgstr "Por favor seleccione los adjuntos que serán borrados."
 
-#: ../IkiWiki/Plugin/remove.pm:192
+#: ../IkiWiki/Plugin/remove.pm:211
 msgid "removed"
 msgstr "borrado"
 
@@ -727,38 +832,33 @@ msgstr "%s ya existe"
 msgid "%s already exists on disk"
 msgstr "%s ya existe en el disco"
 
-#: ../IkiWiki/Plugin/rename.pm:101
+#: ../IkiWiki/Plugin/rename.pm:122
 #, perl-format
 msgid "rename %s"
 msgstr "cambiando de nombre %s"
 
-#: ../IkiWiki/Plugin/rename.pm:140
+#: ../IkiWiki/Plugin/rename.pm:161
 msgid "Also rename SubPages and attachments"
 msgstr "También cambia de nombre las subpáginas y los adjuntos"
 
-#: ../IkiWiki/Plugin/rename.pm:226
+#: ../IkiWiki/Plugin/rename.pm:247
 msgid "Only one attachment can be renamed at a time."
 msgstr "Únicamente un adjunto puede ser renombrado a la vez."
 
-#: ../IkiWiki/Plugin/rename.pm:229
+#: ../IkiWiki/Plugin/rename.pm:250
 msgid "Please select the attachment to rename."
 msgstr "Por favor, seleccione el adjunto al que cambiar el nombre."
 
-#: ../IkiWiki/Plugin/rename.pm:340
+#: ../IkiWiki/Plugin/rename.pm:347
 #, perl-format
 msgid "rename %s to %s"
 msgstr "%s cambia de nombre a %s"
 
-#: ../IkiWiki/Plugin/rename.pm:495
+#: ../IkiWiki/Plugin/rename.pm:571
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr "actualizado el cambio de nombre de %s a %s"
 
-#: ../IkiWiki/Plugin/search.pm:36
-#, perl-format
-msgid "Must specify %s when using the search plugin"
-msgstr "Es obligatorio indicar %s cuando se utiliza el complemento de búsqueda"
-
 #: ../IkiWiki/Plugin/search.pm:182
 #, perl-format
 msgid "need Digest::SHA1 to index %s"
@@ -794,11 +894,13 @@ msgid "parse error"
 msgstr "error de análisis "
 
 #: ../IkiWiki/Plugin/sparkline.pm:78
-msgid "bad featurepoint diameter"
+#, fuzzy
+msgid "invalid featurepoint diameter"
 msgstr "diámetro inválido "
 
 #: ../IkiWiki/Plugin/sparkline.pm:88
-msgid "bad featurepoint location"
+#, fuzzy
+msgid "invalid featurepoint location"
 msgstr "localización errónea "
 
 #: ../IkiWiki/Plugin/sparkline.pm:99
@@ -806,7 +908,8 @@ msgid "missing values"
 msgstr "faltan valores"
 
 #: ../IkiWiki/Plugin/sparkline.pm:104
-msgid "bad height value"
+#, fuzzy
+msgid "invalid height value"
 msgstr "valor incorrecto para la altura"
 
 #: ../IkiWiki/Plugin/sparkline.pm:111
@@ -814,7 +917,8 @@ msgid "missing width parameter"
 msgstr "falta el parámetro que indica el ancho"
 
 #: ../IkiWiki/Plugin/sparkline.pm:115
-msgid "bad width value"
+#, fuzzy
+msgid "invalid width value"
 msgstr "valor incorrecto para el ancho"
 
 #: ../IkiWiki/Plugin/sparkline.pm:153
@@ -889,7 +993,8 @@ msgid "plugins"
 msgstr "complementos"
 
 #: ../IkiWiki/Plugin/websetup.pm:395
-msgid "The configuration changes shown below require a wiki rebuild to take effect."
+msgid ""
+"The configuration changes shown below require a wiki rebuild to take effect."
 msgstr ""
 "Los cambios en la configuración que se muestran más abajo precisan una "
 "reconstrucción del wiki para tener efecto."
@@ -928,56 +1033,51 @@ msgstr ""
 "encontrado un enlace simbólico en la ruta del directorio fuente (%s) -- use "
 "la directiva allow_symlinks_before_srcdir para permitir la acción"
 
-#: ../IkiWiki/Render.pm:278 ../IkiWiki/Render.pm:303
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "ignorando el archivo %s porque su nombre no es correcto"
 
-#: ../IkiWiki/Render.pm:285
+#: ../IkiWiki/Render.pm:284
 #, perl-format
 msgid "%s has multiple possible source pages"
 msgstr "%s tiene mútiples páginas fuente posibles"
 
-#: ../IkiWiki/Render.pm:361
+#: ../IkiWiki/Render.pm:370
 #, perl-format
 msgid "removing old page %s"
 msgstr "eliminando la antigua página %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:410
 #, perl-format
 msgid "scanning %s"
 msgstr "explorando %s"
 
-#: ../IkiWiki/Render.pm:406
-#, perl-format
-msgid "rendering %s"
-msgstr "convirtiendo %s"
-
-#: ../IkiWiki/Render.pm:427
-#, perl-format
-msgid "rendering %s, which links to %s"
+#: ../IkiWiki/Render.pm:436
+#, fuzzy, perl-format
+msgid "building %s, which links to %s"
 msgstr "convirtiendo la página %s, la cual referencia a %s"
 
-#: ../IkiWiki/Render.pm:448
-#, perl-format
-msgid "rendering %s, which depends on %s"
+#: ../IkiWiki/Render.pm:457
+#, fuzzy, perl-format
+msgid "building %s, which depends on %s"
 msgstr "convirtiendo la página %s, la cual depende de %s"
 
-#: ../IkiWiki/Render.pm:487
-#, perl-format
-msgid "rendering %s, to update its backlinks"
+#: ../IkiWiki/Render.pm:496
+#, fuzzy, perl-format
+msgid "building %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:499
-#, perl-format
-msgid "removing %s, no longer rendered by %s"
+#: ../IkiWiki/Render.pm:508
+#, fuzzy, perl-format
+msgid "removing %s, no longer built by %s"
 msgstr "eliminando la página %s puesto que ya no se deriva de %s"
 
-#: ../IkiWiki/Render.pm:523
-#, perl-format
-msgid "ikiwiki: cannot render %s"
+#: ../IkiWiki/Render.pm:532
+#, fuzzy, perl-format
+msgid "ikiwiki: cannot build %s"
 msgstr "ikiwiki: no puedo convertir la página %s"
 
 #. translators: The first parameter is a filename, and the second
@@ -1003,7 +1103,8 @@ msgstr "no he podido crear un repositorio con el programa ikiwiki-makerepo"
 #: ../IkiWiki/Setup/Automator.pm:115
 #, perl-format
 msgid "** Disabling plugin %s, since it is failing with this message:"
-msgstr "** Desactivando el complemento %s dado que está fallando con este mensaje:"
+msgstr ""
+"** Desactivando el complemento %s dado que está fallando con este mensaje:"
 
 #: ../IkiWiki/Wrapper.pm:16
 #, perl-format
@@ -1012,7 +1113,8 @@ msgstr "el programa %s no parece ser ejecutable"
 
 #: ../IkiWiki/Wrapper.pm:20
 msgid "cannot create a wrapper that uses a setup file"
-msgstr "no puedo crear un programa envoltorio que utiliza un archivo de configuración"
+msgstr ""
+"no puedo crear un programa envoltorio que utiliza un archivo de configuración"
 
 #: ../IkiWiki/Wrapper.pm:24
 msgid "wrapper filename not specified"
@@ -1069,18 +1171,18 @@ msgstr "no puedo emplear varios complementos rcs"
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr "no he podido cargar el complemento externo %s necesario para %s"
 
-#: ../IkiWiki.pm:1201
+#: ../IkiWiki.pm:1236
 #, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr ""
 "se ha detectado en la página %s un bucle de preprocesado en la iteración "
 "número %i"
 
-#: ../IkiWiki.pm:1741
+#: ../IkiWiki.pm:1776
 msgid "yes"
 msgstr "si"
 
-#: ../IkiWiki.pm:1873
+#: ../IkiWiki.pm:1908
 #, perl-format
 msgid "cannot match pages: %s"
 msgstr "no encuentro páginas coincidentes: %s"
@@ -1098,7 +1200,8 @@ msgid "What revision control system to use?"
 msgstr "¿ Qué sistema de control de versiones empleará ?"
 
 #: ../auto.setup:20
-msgid "What wiki user (or openid) will be admin?"
+#, fuzzy
+msgid "Which user (wiki account or openid) will be admin?"
 msgstr ""
 "¿ Qué usuario del wiki (ó qué identificador openid) será el empleado como "
 "administrador ? "
@@ -1107,3 +1210,13 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr "¿ Cuál es el dominio para el servidor web ?"
 
+#~ msgid "rendering %s"
+#~ msgstr "convirtiendo %s"
+
+#~ msgid "Must specify %s when using the google search plugin"
+#~ msgstr ""
+#~ "Es obligatorio indicar %s cuando se utiliza el complemento de búsqueda de "
+#~ "google"
+
+#~ msgid "bad size \"%s\""
+#~ msgstr "tamaño erróneo \"%s\""
index 2e79e8e990f8d633dd6d4f93cfa2cd8e170dbeed..fe78d0a72054980ad96a3786a5c74154559bea9a 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -7,10 +7,10 @@
 # Cyril Brulebois <cyril.brulebois@enst-bretagne.fr>, 2007.
 msgid ""
 msgstr ""
-"Project-Id-Version: ikiwiki 3.14\n"
+"Project-Id-Version: ikiwiki 3.141\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-12 19:52-0400\n"
-"PO-Revision-Date: 2009-06-08 16:41+0200\n"
+"POT-Creation-Date: 2009-07-23 01:01+0200\n"
+"PO-Revision-Date: 2009-06-29 16:42+0200\n"
 "Last-Translator: Philippe Batailler <philippe.batailler@free.fr>\n"
 "Language-Team: French <debian-l10n-french@lists.debian.org>\n"
 "MIME-Version: 1.0\n"
@@ -23,11 +23,11 @@ msgstr "Vous devez d'abord vous identifier."
 
 #: ../IkiWiki/CGI.pm:146
 msgid ""
-"probable misconfiguration: sslcookie is set, but you are attepting to login "
+"probable misconfiguration: sslcookie is set, but you are attempting to login "
 "via http, not https"
 msgstr ""
 "Erreur de configuration probable : sslcookie est positionné mais vous tentez "
-"de vous connecter avec http et non https"
+"de vous connecter avec http au lieu de https"
 
 #: ../IkiWiki/CGI.pm:149
 msgid "login failed, perhaps you need to turn on cookies?"
@@ -57,7 +57,7 @@ msgstr "Les préférences ont été enregistrées."
 msgid "You are banned."
 msgstr "Vous avez été banni."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1253
 msgid "Error"
 msgstr "Erreur"
 
@@ -148,15 +148,18 @@ msgid "Must specify %s"
 msgstr "Vous devez spécifier %s"
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:136
-msgid "Failed to create bucket in S3: "
+#, fuzzy
+msgid "Failed to create bucket inside S3: "
 msgstr "Impossible de créer un compartiment S3 :"
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:221
-msgid "Failed to save file to S3: "
+#, fuzzy
+msgid "Failed to save file into S3: "
 msgstr "Impossible de sauvegarder le fichier dans le compartiment S3 :"
 
 #: ../IkiWiki/Plugin/amazon_s3.pm:243
-msgid "Failed to delete file from S3: "
+#, fuzzy
+msgid "Failed to delete file inside S3: "
 msgstr "Échec lors de la suppression du fichier sur S3 :"
 
 #: ../IkiWiki/Plugin/attachment.pm:49
@@ -191,6 +194,7 @@ msgstr ""
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
 #: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
 #: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Plugin/po.pm:289 ../IkiWiki/Plugin/po.pm:292
 #: ../IkiWiki/Render.pm:80 ../IkiWiki/Render.pm:84 ../IkiWiki/Render.pm:150
 msgid "Discussion"
 msgstr "Discussion"
@@ -347,10 +351,11 @@ msgstr "Vous ne pouvez modifier un fichier dont le mode est %s"
 msgid "you are not allowed to change file modes"
 msgstr "Vous n'êtes pas autorisé à modifier le mode des fichiers"
 
-#: ../IkiWiki/Plugin/google.pm:27
-#, perl-format
-msgid "Must specify %s when using the google search plugin"
-msgstr "Vous devez indiquer %s lors de l'utilisation du greffon « google »."
+#: ../IkiWiki/Plugin/google.pm:27 ../IkiWiki/Plugin/po.pm:124
+#: ../IkiWiki/Plugin/search.pm:36
+#, fuzzy, perl-format
+msgid "Must specify %s when using the %s plugin"
+msgstr "Vous devez indiquer %s lors de l'utilisation du greffon « search »."
 
 #: ../IkiWiki/Plugin/google.pm:31
 msgid "Failed to parse url, cannot determine domain name"
@@ -373,17 +378,17 @@ msgstr "Échec du lancement de graphviz"
 msgid "prog not a valid graphviz program"
 msgstr "Ce programme n'est pas un programme graphviz valable"
 
-#: ../IkiWiki/Plugin/highlight.pm:46
+#: ../IkiWiki/Plugin/highlight.pm:47
 #, perl-format
 msgid "tohighlight contains unknown file type '%s'"
 msgstr "tohighlight contient un type de fichier inconnu : '%s'"
 
-#: ../IkiWiki/Plugin/highlight.pm:57
+#: ../IkiWiki/Plugin/highlight.pm:58
 #, perl-format
 msgid "Source code: %s"
 msgstr "Code source : %s"
 
-#: ../IkiWiki/Plugin/highlight.pm:122
+#: ../IkiWiki/Plugin/highlight.pm:123
 msgid ""
 "warning: highlight perl module not available; falling back to pass through"
 msgstr ""
@@ -396,8 +401,8 @@ msgstr "Image::Magick n'est pas installé"
 
 #: ../IkiWiki/Plugin/img.pm:69
 #, perl-format
-msgid "bad size \"%s\""
-msgstr "taille incorrecte « %s »"
+msgid "wrong size format \"%s\" (should be WxH)"
+msgstr ""
 
 #: ../IkiWiki/Plugin/img.pm:80 ../IkiWiki/Plugin/img.pm:84
 #: ../IkiWiki/Plugin/img.pm:101
@@ -508,7 +513,8 @@ msgid "Get an OpenID"
 msgstr "Obtenir un compte OpenID"
 
 #: ../IkiWiki/Plugin/orphans.pm:52
-msgid "All pages are linked to by other pages."
+#, fuzzy
+msgid "All pages have other pages linking to them."
 msgstr "Toutes les pages sont liées à d'autres pages."
 
 #: ../IkiWiki/Plugin/pagetemplate.pm:30
@@ -569,6 +575,101 @@ msgstr "Les instructions du wiki %s sont ignorées (ce wiki est %s)"
 msgid "LWP not found, not pinging"
 msgstr "LWP est introuvable. Pas de réponse au ping"
 
+#: ../IkiWiki/Plugin/po.pm:131
+#, fuzzy, perl-format
+msgid "%s is not a valid language code"
+msgstr "%s n'est pas un fichier"
+
+#: ../IkiWiki/Plugin/po.pm:143
+#, perl-format
+msgid ""
+"%s is not a valid value for po_link_to, falling back to po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:148
+msgid ""
+"po_link_to=negotiated requires usedirs to be enabled, falling back to "
+"po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:282
+msgid "discussion"
+msgstr "Discussion"
+
+#: ../IkiWiki/Plugin/po.pm:379
+#, perl-format
+msgid "rebuilding all pages to fix meta titles"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:383 ../IkiWiki/Render.pm:415
+#, fuzzy, perl-format
+msgid "building %s"
+msgstr "va envoyer un ping à %s"
+
+#: ../IkiWiki/Plugin/po.pm:420
+msgid "updated PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:444
+msgid ""
+"Can not remove a translation. If the master page is removed, however, its "
+"translations will be removed as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:464
+msgid ""
+"Can not rename a translation. If the master page is renamed, however, its "
+"translations will be renamed as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:825
+#, fuzzy, perl-format
+msgid "POT file (%s) does not exist"
+msgstr "La page %s n'existe pas."
+
+#: ../IkiWiki/Plugin/po.pm:833
+#, fuzzy, perl-format
+msgid "failed to update %s"
+msgstr "Échec de la compilation de %s"
+
+#: ../IkiWiki/Plugin/po.pm:839
+#, fuzzy, perl-format
+msgid "failed to copy the POT file to %s"
+msgstr "Échec de la compilation de %s"
+
+#: ../IkiWiki/Plugin/po.pm:875
+msgid "N/A"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:888
+#, fuzzy, perl-format
+msgid "failed to translate %s"
+msgstr "Échec du redimensionnement : %s"
+
+#: ../IkiWiki/Plugin/po.pm:964
+msgid "removed obsolete PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:1027 ../IkiWiki/Plugin/po.pm:1041
+#: ../IkiWiki/Plugin/po.pm:1081
+#, fuzzy, perl-format
+msgid "failed to write %s"
+msgstr "Échec du redimensionnement : %s"
+
+#: ../IkiWiki/Plugin/po.pm:1039
+#, fuzzy
+msgid "failed to translate"
+msgstr "Échec du lancement de dot"
+
+#: ../IkiWiki/Plugin/po.pm:1044
+#, fuzzy, perl-format
+msgid "failed to read %s"
+msgstr "Échec de la lecture de %s : %s"
+
+#: ../IkiWiki/Plugin/po.pm:1093
+msgid "invalid gettext data, go back to previous page to continue edit"
+msgstr ""
+
 #: ../IkiWiki/Plugin/poll.pm:69
 msgid "vote"
 msgstr "Voter"
@@ -686,16 +787,16 @@ msgstr "%s n'est pas dans srcdir et ne peut donc pas être supprimé"
 msgid "%s is not a file"
 msgstr "%s n'est pas un fichier"
 
-#: ../IkiWiki/Plugin/remove.pm:115
+#: ../IkiWiki/Plugin/remove.pm:134
 #, perl-format
 msgid "confirm removal of %s"
 msgstr "Suppression de %s confirmée"
 
-#: ../IkiWiki/Plugin/remove.pm:152
+#: ../IkiWiki/Plugin/remove.pm:171
 msgid "Please select the attachments to remove."
 msgstr "Veuillez choisir la pièce jointe à supprimer"
 
-#: ../IkiWiki/Plugin/remove.pm:192
+#: ../IkiWiki/Plugin/remove.pm:211
 msgid "removed"
 msgstr "supprimé"
 
@@ -723,38 +824,33 @@ msgstr "%s existe déjà"
 msgid "%s already exists on disk"
 msgstr "%s existe déjà sur le disque"
 
-#: ../IkiWiki/Plugin/rename.pm:101
+#: ../IkiWiki/Plugin/rename.pm:122
 #, perl-format
 msgid "rename %s"
 msgstr "%s renommé"
 
-#: ../IkiWiki/Plugin/rename.pm:140
+#: ../IkiWiki/Plugin/rename.pm:161
 msgid "Also rename SubPages and attachments"
 msgstr "« SubPages » et attachements renommés."
 
-#: ../IkiWiki/Plugin/rename.pm:226
+#: ../IkiWiki/Plugin/rename.pm:247
 msgid "Only one attachment can be renamed at a time."
 msgstr "Modification de pièce jointe : une seule à la fois"
 
-#: ../IkiWiki/Plugin/rename.pm:229
+#: ../IkiWiki/Plugin/rename.pm:250
 msgid "Please select the attachment to rename."
 msgstr "Veuillez sélectionner la pièce jointe à renommer"
 
-#: ../IkiWiki/Plugin/rename.pm:340
+#: ../IkiWiki/Plugin/rename.pm:347
 #, perl-format
 msgid "rename %s to %s"
 msgstr "Renomme %s en %s"
 
-#: ../IkiWiki/Plugin/rename.pm:495
+#: ../IkiWiki/Plugin/rename.pm:571
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr "mise à jour, suite au changement de %s en %s"
 
-#: ../IkiWiki/Plugin/search.pm:36
-#, perl-format
-msgid "Must specify %s when using the search plugin"
-msgstr "Vous devez indiquer %s lors de l'utilisation du greffon « search »."
-
 #: ../IkiWiki/Plugin/search.pm:182
 #, perl-format
 msgid "need Digest::SHA1 to index %s"
@@ -790,11 +886,13 @@ msgid "parse error"
 msgstr "Erreur d'analyse"
 
 #: ../IkiWiki/Plugin/sparkline.pm:78
-msgid "bad featurepoint diameter"
+#, fuzzy
+msgid "invalid featurepoint diameter"
 msgstr "Diamètre du point incorrect"
 
 #: ../IkiWiki/Plugin/sparkline.pm:88
-msgid "bad featurepoint location"
+#, fuzzy
+msgid "invalid featurepoint location"
 msgstr "Emplacement du point incorrect"
 
 #: ../IkiWiki/Plugin/sparkline.pm:99
@@ -802,7 +900,8 @@ msgid "missing values"
 msgstr "Il manque des valeurs"
 
 #: ../IkiWiki/Plugin/sparkline.pm:104
-msgid "bad height value"
+#, fuzzy
+msgid "invalid height value"
 msgstr "Hauteur incorrecte"
 
 #: ../IkiWiki/Plugin/sparkline.pm:111
@@ -810,7 +909,8 @@ msgid "missing width parameter"
 msgstr "Le paramètre largeur manque"
 
 #: ../IkiWiki/Plugin/sparkline.pm:115
-msgid "bad width value"
+#, fuzzy
+msgid "invalid width value"
 msgstr "Largeur incorrecte"
 
 #: ../IkiWiki/Plugin/sparkline.pm:153
@@ -924,54 +1024,49 @@ msgstr ""
 "Lien symbolique trouvé dans l'adresse de srcdir (%s) -- pour l'autoriser, "
 "activez le paramètre « allow_symlinks_before_srcdir »."
 
-#: ../IkiWiki/Render.pm:278 ../IkiWiki/Render.pm:303
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "Omission du fichier au nom incorrect %s"
 
-#: ../IkiWiki/Render.pm:285
+#: ../IkiWiki/Render.pm:284
 #, perl-format
 msgid "%s has multiple possible source pages"
 msgstr "%s peut être associé à plusieurs pages source."
 
-#: ../IkiWiki/Render.pm:361
+#: ../IkiWiki/Render.pm:370
 #, perl-format
 msgid "removing old page %s"
 msgstr "Suppression de l'ancienne page %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:410
 #, perl-format
 msgid "scanning %s"
 msgstr "Examen de %s"
 
-#: ../IkiWiki/Render.pm:406
-#, perl-format
-msgid "rendering %s"
-msgstr "Reconstruction de %s"
-
-#: ../IkiWiki/Render.pm:427
-#, perl-format
-msgid "rendering %s, which links to %s"
+#: ../IkiWiki/Render.pm:436
+#, fuzzy, perl-format
+msgid "building %s, which links to %s"
 msgstr "Reconstruction de %s, qui est lié à %s"
 
-#: ../IkiWiki/Render.pm:448
-#, perl-format
-msgid "rendering %s, which depends on %s"
+#: ../IkiWiki/Render.pm:457
+#, fuzzy, perl-format
+msgid "building %s, which depends on %s"
 msgstr "Reconstruction de %s, qui dépend de %s"
 
-#: ../IkiWiki/Render.pm:487
-#, perl-format
-msgid "rendering %s, to update its backlinks"
+#: ../IkiWiki/Render.pm:496
+#, fuzzy, perl-format
+msgid "building %s, to update its backlinks"
 msgstr "Reconstruction de %s, afin de mettre à jour ses rétroliens"
 
-#: ../IkiWiki/Render.pm:499
-#, perl-format
-msgid "removing %s, no longer rendered by %s"
+#: ../IkiWiki/Render.pm:508
+#, fuzzy, perl-format
+msgid "removing %s, no longer built by %s"
 msgstr "Suppression de %s, qui n'est plus rendu par %s"
 
-#: ../IkiWiki/Render.pm:523
-#, perl-format
-msgid "ikiwiki: cannot render %s"
+#: ../IkiWiki/Render.pm:532
+#, fuzzy, perl-format
+msgid "ikiwiki: cannot build %s"
 msgstr "ikiwiki : impossible de reconstruire %s"
 
 #. translators: The first parameter is a filename, and the second
@@ -1000,6 +1095,8 @@ msgstr "Échec lors de la création du dépôt avec ikiwiki-makerepo"
 #, perl-format
 msgid "** Disabling plugin %s, since it is failing with this message:"
 msgstr ""
+"** désactivation du greffon %s, car échec de l'installation, avec le message "
+"suivant :"
 
 #: ../IkiWiki/Wrapper.pm:16
 #, perl-format
@@ -1065,16 +1162,16 @@ msgstr "Impossible d'utiliser plusieurs systèmes de contrôle des versions"
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr "Impossible de charger le greffon externe nécessaire au greffon %s : %s"
 
-#: ../IkiWiki.pm:1201
+#: ../IkiWiki.pm:1236
 #, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "Une boucle de pré traitement a été détectée sur %s à hauteur de %i"
 
-#: ../IkiWiki.pm:1741
+#: ../IkiWiki.pm:1776
 msgid "yes"
 msgstr "oui"
 
-#: ../IkiWiki.pm:1873
+#: ../IkiWiki.pm:1908
 #, perl-format
 msgid "cannot match pages: %s"
 msgstr "Impossible de trouver les pages %s"
@@ -1092,15 +1189,22 @@ msgid "What revision control system to use?"
 msgstr "Système de contrôle de version utilisé :"
 
 #: ../auto.setup:20
-msgid "What wiki user (or openid) will be admin?"
+#, fuzzy
+msgid "Which user (wiki account or openid) will be admin?"
 msgstr "Identifiant de l'administrateur (utilisateur du wiki ou openid) :"
 
 #: ../auto.setup:23
 msgid "What is the domain name of the web server?"
 msgstr "Nom de domaine du serveur HTTP :"
 
-#~ msgid "discussion"
-#~ msgstr "Discussion"
+#~ msgid "rendering %s"
+#~ msgstr "Reconstruction de %s"
+
+#~ msgid "Must specify %s when using the google search plugin"
+#~ msgstr "Vous devez indiquer %s lors de l'utilisation du greffon « google »."
+
+#~ msgid "bad size \"%s\""
+#~ msgstr "taille incorrecte « %s »"
 
 #~ msgid "<p class=\"error\">Error: %s exited nonzero (%s)"
 #~ msgstr ""
index c8cf72bb67ddae4468c66f9a47f1abfd47c64361..5bc897a9059b7e7c863956785545d9856db0167c 100644 (file)
--- 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: 2009-06-12 19:52-0400\n"
+"POT-Creation-Date: 2009-07-20 06:45+0200\n"
 "PO-Revision-Date: 2007-01-11 16:05+0530\n"
 "Last-Translator: Kartik Mistry <kartik.mistry@gmail.com>\n"
 "Language-Team: Gujarati <team@utkarsh.org>\n"
@@ -54,7 +54,7 @@ msgstr "પ્રાથમિકતાઓ સંગ્રહાઇ."
 msgid "You are banned."
 msgstr "તમારા પર પ્રતિબંધ છે."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1253
 msgid "Error"
 msgstr "ક્ષતિ"
 
@@ -188,6 +188,7 @@ msgstr ""
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
 #: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
 #: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Plugin/po.pm:283 ../IkiWiki/Plugin/po.pm:286
 #: ../IkiWiki/Render.pm:80 ../IkiWiki/Render.pm:84 ../IkiWiki/Render.pm:150
 msgid "Discussion"
 msgstr "ચર્ચા"
@@ -347,9 +348,10 @@ msgstr ""
 msgid "you are not allowed to change file modes"
 msgstr ""
 
-#: ../IkiWiki/Plugin/google.pm:27
+#: ../IkiWiki/Plugin/google.pm:27 ../IkiWiki/Plugin/po.pm:124
+#: ../IkiWiki/Plugin/search.pm:36
 #, fuzzy, perl-format
-msgid "Must specify %s when using the google search plugin"
+msgid "Must specify %s when using the %s plugin"
 msgstr "જ્યારે શોધ પ્લગઇન ઉપયોગ કરતા હોવ ત્યારે %s સ્પષ્ટ કરવું જ પડશે"
 
 #: ../IkiWiki/Plugin/google.pm:31
@@ -374,17 +376,17 @@ msgstr "ગ્રાફવિઝ ચલાવવામાં નિષ્ફળ"
 msgid "prog not a valid graphviz program"
 msgstr "કાર્યક્રમએ યોગ્ય ગ્રાફવિઝ કાર્યક્રમ નથી"
 
-#: ../IkiWiki/Plugin/highlight.pm:46
+#: ../IkiWiki/Plugin/highlight.pm:47
 #, perl-format
 msgid "tohighlight contains unknown file type '%s'"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:57
+#: ../IkiWiki/Plugin/highlight.pm:58
 #, perl-format
 msgid "Source code: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:122
+#: ../IkiWiki/Plugin/highlight.pm:123
 msgid ""
 "warning: highlight perl module not available; falling back to pass through"
 msgstr ""
@@ -396,8 +398,8 @@ msgstr "પોલિગોન સ્થાપિત નથી"
 
 #: ../IkiWiki/Plugin/img.pm:69
 #, perl-format
-msgid "bad size \"%s\""
-msgstr "અયોગ્ય માપ \"%s\""
+msgid "wrong size format \"%s\" (should be WxH)"
+msgstr ""
 
 #: ../IkiWiki/Plugin/img.pm:80 ../IkiWiki/Plugin/img.pm:84
 #: ../IkiWiki/Plugin/img.pm:101
@@ -566,6 +568,103 @@ msgstr ""
 msgid "LWP not found, not pinging"
 msgstr "RPC::XML::Client મળ્યું નહી, પિંગ કરવામાં આવતું નથી"
 
+#: ../IkiWiki/Plugin/po.pm:130
+msgid ""
+"At least one slave language must be defined in po_slave_languages when using "
+"the po plugin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:136
+#, fuzzy, perl-format
+msgid "%s is not a valid language code"
+msgstr "%s એ સુધારી શકાય તેવું પાનું નથી"
+
+#: ../IkiWiki/Plugin/po.pm:148
+#, perl-format
+msgid ""
+"%s is not a valid value for po_link_to, falling back to po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:153
+msgid ""
+"po_link_to=negotiated requires usedirs to be enabled, falling back to "
+"po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:276
+msgid "discussion"
+msgstr "ચર્ચા"
+
+#: ../IkiWiki/Plugin/po.pm:373
+#, perl-format
+msgid "re-rendering all pages to fix meta titles"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:377 ../IkiWiki/Render.pm:415
+#, perl-format
+msgid "rendering %s"
+msgstr "રેન્ડર કરે છે %s"
+
+#: ../IkiWiki/Plugin/po.pm:410
+msgid "updated PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:434
+msgid ""
+"Can not remove a translation. Removing the master page, though, removes its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:454
+msgid ""
+"Can not rename a translation. Renaming the master page, though, renames its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:816
+#, perl-format
+msgid "POT file (%s) does not exist"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:824
+#, fuzzy, perl-format
+msgid "failed to update %s"
+msgstr "%s કમ્પાઇલ કરવામાં નિષ્ફળ"
+
+#: ../IkiWiki/Plugin/po.pm:830
+#, fuzzy, perl-format
+msgid "failed to copy the POT file to %s"
+msgstr "%s કમ્પાઇલ કરવામાં નિષ્ફળ"
+
+#: ../IkiWiki/Plugin/po.pm:866
+msgid "N/A"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:879
+#, fuzzy, perl-format
+msgid "failed to translate %s"
+msgstr "માપ બદલવામાં નિષ્ફળ: %s"
+
+#: ../IkiWiki/Plugin/po.pm:955
+msgid "removed obsolete PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:1018 ../IkiWiki/Plugin/po.pm:1032
+#: ../IkiWiki/Plugin/po.pm:1072
+#, fuzzy, perl-format
+msgid "failed to write %s"
+msgstr "%s લખવામાં નિષ્ફળ: %s"
+
+#: ../IkiWiki/Plugin/po.pm:1030
+#, fuzzy
+msgid "failed to translate"
+msgstr "ડોટ ચલાવવામાં નિષ્ફળ"
+
+#: ../IkiWiki/Plugin/po.pm:1035
+#, fuzzy, perl-format
+msgid "failed to read %s"
+msgstr "%s વાંચવામાં નિષ્ફળ: %s"
+
 #: ../IkiWiki/Plugin/poll.pm:69
 msgid "vote"
 msgstr "મત"
@@ -684,16 +783,16 @@ msgstr "%s એ %s દ્વારા તાળું મરાયેલ છે 
 msgid "%s is not a file"
 msgstr "%s એ સુધારી શકાય તેવું પાનું નથી"
 
-#: ../IkiWiki/Plugin/remove.pm:115
+#: ../IkiWiki/Plugin/remove.pm:134
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:152
+#: ../IkiWiki/Plugin/remove.pm:171
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:192
+#: ../IkiWiki/Plugin/remove.pm:211
 msgid "removed"
 msgstr ""
 
@@ -722,38 +821,33 @@ msgstr ""
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:101
+#: ../IkiWiki/Plugin/rename.pm:122
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "રેન્ડર કરે છે %s"
 
-#: ../IkiWiki/Plugin/rename.pm:140
+#: ../IkiWiki/Plugin/rename.pm:161
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:226
+#: ../IkiWiki/Plugin/rename.pm:247
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:229
+#: ../IkiWiki/Plugin/rename.pm:250
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:340
+#: ../IkiWiki/Plugin/rename.pm:347
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:495
+#: ../IkiWiki/Plugin/rename.pm:571
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "%s નો સુધારો %s નાં %s વડે"
 
-#: ../IkiWiki/Plugin/search.pm:36
-#, perl-format
-msgid "Must specify %s when using the search plugin"
-msgstr "જ્યારે શોધ પ્લગઇન ઉપયોગ કરતા હોવ ત્યારે %s સ્પષ્ટ કરવું જ પડશે"
-
 #: ../IkiWiki/Plugin/search.pm:182
 #, perl-format
 msgid "need Digest::SHA1 to index %s"
@@ -789,11 +883,13 @@ msgid "parse error"
 msgstr "ઉકેલવામાં ક્ષતિ"
 
 #: ../IkiWiki/Plugin/sparkline.pm:78
-msgid "bad featurepoint diameter"
+#, fuzzy
+msgid "invalid featurepoint diameter"
 msgstr "ખરાબ લાક્ષણિકબિંદુ વ્યાસ"
 
 #: ../IkiWiki/Plugin/sparkline.pm:88
-msgid "bad featurepoint location"
+#, fuzzy
+msgid "invalid featurepoint location"
 msgstr "ખરાબ લાક્ષણિકબિંદુ સ્થિતિ"
 
 #: ../IkiWiki/Plugin/sparkline.pm:99
@@ -801,7 +897,8 @@ msgid "missing values"
 msgstr "ખોવાયેલ કિંમતો"
 
 #: ../IkiWiki/Plugin/sparkline.pm:104
-msgid "bad height value"
+#, fuzzy
+msgid "invalid height value"
 msgstr "ખરાબ ઉંચાઇ કિંમત"
 
 #: ../IkiWiki/Plugin/sparkline.pm:111
@@ -809,7 +906,8 @@ msgid "missing width parameter"
 msgstr "ખોવાયેલ પહોળાઇ વિકલ્પ"
 
 #: ../IkiWiki/Plugin/sparkline.pm:115
-msgid "bad width value"
+#, fuzzy
+msgid "invalid width value"
 msgstr "ખરાબ પહોળાઇ કિંમત"
 
 #: ../IkiWiki/Plugin/sparkline.pm:153
@@ -918,52 +1016,47 @@ msgid ""
 "allow this"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:278 ../IkiWiki/Render.pm:303
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "ખરાબ ફાઇલ નામ છોડી દે છે %s"
 
-#: ../IkiWiki/Render.pm:285
+#: ../IkiWiki/Render.pm:284
 #, perl-format
 msgid "%s has multiple possible source pages"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:361
+#: ../IkiWiki/Render.pm:370
 #, perl-format
 msgid "removing old page %s"
 msgstr "જુનાં પાનાં દૂર કરે છે %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:410
 #, perl-format
 msgid "scanning %s"
 msgstr "%s શોધે છે"
 
-#: ../IkiWiki/Render.pm:406
-#, perl-format
-msgid "rendering %s"
-msgstr "રેન્ડર કરે છે %s"
-
-#: ../IkiWiki/Render.pm:427
+#: ../IkiWiki/Render.pm:436
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "રેન્ડર કરે છે %s, જે %s સાથે જોડાણ ધરાવે છે"
 
-#: ../IkiWiki/Render.pm:448
+#: ../IkiWiki/Render.pm:457
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "રેન્ડર કરે છે %s, જે %s પર આધારિત છે"
 
-#: ../IkiWiki/Render.pm:487
+#: ../IkiWiki/Render.pm:496
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "રેન્ડર કરે છે %s, તેનાં પાછળનાં જોડાણો સુધારવા માટે"
 
-#: ../IkiWiki/Render.pm:499
+#: ../IkiWiki/Render.pm:508
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "દૂર કરે છે %s, હવે %s વડે રેન્ડર કરાતું નથી"
 
-#: ../IkiWiki/Render.pm:523
+#: ../IkiWiki/Render.pm:532
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: %s રેન્ડર કરી શકાતું નથી"
@@ -1055,16 +1148,16 @@ msgstr ""
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1201
+#: ../IkiWiki.pm:1236
 #, fuzzy, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "%s પર શોધાયેલ લુપ  %s પર ચલાવે છે %i ઉંડાણ પર"
 
-#: ../IkiWiki.pm:1741
+#: ../IkiWiki.pm:1776
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1873
+#: ../IkiWiki.pm:1908
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "વાંચી શકાતી નથી %s: %s"
@@ -1089,11 +1182,12 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
-#~ msgid "discussion"
-#~ msgstr "ચર્ચા"
+#, fuzzy
+#~ msgid "Must specify %s when using the google search plugin"
+#~ msgstr "જ્યારે શોધ પ્લગઇન ઉપયોગ કરતા હોવ ત્યારે %s સ્પષ્ટ કરવું જ પડશે"
 
-#~ msgid "failed to write %s: %s"
-#~ msgstr "%s લખવામાં નિષ્ફળ: %s"
+#~ msgid "bad size \"%s\""
+#~ msgstr "અયોગ્ય માપ \"%s\""
 
 #~ msgid "failed to find url in html"
 #~ msgstr "htmlમાં યુઆરએલ શોધવામાં નિષ્ફળ"
index 4ca90880731383b5c43a5325041cd2c8e546b6c8..3451329cc1ecba9a67bc57740f1794b88c0a26cd 100644 (file)
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-12 19:52-0400\n"
+"POT-Creation-Date: 2009-07-20 06:45+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -54,7 +54,7 @@ msgstr ""
 msgid "You are banned."
 msgstr ""
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1253
 msgid "Error"
 msgstr ""
 
@@ -186,6 +186,7 @@ msgstr ""
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
 #: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
 #: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Plugin/po.pm:283 ../IkiWiki/Plugin/po.pm:286
 #: ../IkiWiki/Render.pm:80 ../IkiWiki/Render.pm:84 ../IkiWiki/Render.pm:150
 msgid "Discussion"
 msgstr ""
@@ -342,9 +343,10 @@ msgstr ""
 msgid "you are not allowed to change file modes"
 msgstr ""
 
-#: ../IkiWiki/Plugin/google.pm:27
+#: ../IkiWiki/Plugin/google.pm:27 ../IkiWiki/Plugin/po.pm:124
+#: ../IkiWiki/Plugin/search.pm:36
 #, perl-format
-msgid "Must specify %s when using the google search plugin"
+msgid "Must specify %s when using the %s plugin"
 msgstr ""
 
 #: ../IkiWiki/Plugin/google.pm:31
@@ -368,17 +370,17 @@ msgstr ""
 msgid "prog not a valid graphviz program"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:46
+#: ../IkiWiki/Plugin/highlight.pm:47
 #, perl-format
 msgid "tohighlight contains unknown file type '%s'"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:57
+#: ../IkiWiki/Plugin/highlight.pm:58
 #, perl-format
 msgid "Source code: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:122
+#: ../IkiWiki/Plugin/highlight.pm:123
 msgid ""
 "warning: highlight perl module not available; falling back to pass through"
 msgstr ""
@@ -389,7 +391,7 @@ msgstr ""
 
 #: ../IkiWiki/Plugin/img.pm:69
 #, perl-format
-msgid "bad size \"%s\""
+msgid "wrong size format \"%s\" (should be WxH)"
 msgstr ""
 
 #: ../IkiWiki/Plugin/img.pm:80 ../IkiWiki/Plugin/img.pm:84
@@ -554,6 +556,102 @@ msgstr ""
 msgid "LWP not found, not pinging"
 msgstr ""
 
+#: ../IkiWiki/Plugin/po.pm:130
+msgid ""
+"At least one slave language must be defined in po_slave_languages when using "
+"the po plugin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:136
+#, perl-format
+msgid "%s is not a valid language code"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:148
+#, perl-format
+msgid ""
+"%s is not a valid value for po_link_to, falling back to po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:153
+msgid ""
+"po_link_to=negotiated requires usedirs to be enabled, falling back to "
+"po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:276
+msgid "discussion"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:373
+#, perl-format
+msgid "re-rendering all pages to fix meta titles"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:377 ../IkiWiki/Render.pm:415
+#, perl-format
+msgid "rendering %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:410
+msgid "updated PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:434
+msgid ""
+"Can not remove a translation. Removing the master page, though, removes its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:454
+msgid ""
+"Can not rename a translation. Renaming the master page, though, renames its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:816
+#, perl-format
+msgid "POT file (%s) does not exist"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:824
+#, perl-format
+msgid "failed to update %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:830
+#, perl-format
+msgid "failed to copy the POT file to %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:866
+msgid "N/A"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:879
+#, perl-format
+msgid "failed to translate %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:955
+msgid "removed obsolete PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:1018 ../IkiWiki/Plugin/po.pm:1032
+#: ../IkiWiki/Plugin/po.pm:1072
+#, perl-format
+msgid "failed to write %s"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:1030
+msgid "failed to translate"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:1035
+#, perl-format
+msgid "failed to read %s"
+msgstr ""
+
 #: ../IkiWiki/Plugin/poll.pm:69
 msgid "vote"
 msgstr ""
@@ -670,16 +768,16 @@ msgstr ""
 msgid "%s is not a file"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:115
+#: ../IkiWiki/Plugin/remove.pm:134
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:152
+#: ../IkiWiki/Plugin/remove.pm:171
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:192
+#: ../IkiWiki/Plugin/remove.pm:211
 msgid "removed"
 msgstr ""
 
@@ -707,38 +805,33 @@ msgstr ""
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:101
+#: ../IkiWiki/Plugin/rename.pm:122
 #, perl-format
 msgid "rename %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:140
+#: ../IkiWiki/Plugin/rename.pm:161
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:226
+#: ../IkiWiki/Plugin/rename.pm:247
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:229
+#: ../IkiWiki/Plugin/rename.pm:250
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:340
+#: ../IkiWiki/Plugin/rename.pm:347
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:495
+#: ../IkiWiki/Plugin/rename.pm:571
 #, perl-format
 msgid "update for rename of %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/search.pm:36
-#, perl-format
-msgid "Must specify %s when using the search plugin"
-msgstr ""
-
 #: ../IkiWiki/Plugin/search.pm:182
 #, perl-format
 msgid "need Digest::SHA1 to index %s"
@@ -774,11 +867,11 @@ msgid "parse error"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:78
-msgid "bad featurepoint diameter"
+msgid "invalid featurepoint diameter"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:88
-msgid "bad featurepoint location"
+msgid "invalid featurepoint location"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:99
@@ -786,7 +879,7 @@ msgid "missing values"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:104
-msgid "bad height value"
+msgid "invalid height value"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:111
@@ -794,7 +887,7 @@ msgid "missing width parameter"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:115
-msgid "bad width value"
+msgid "invalid width value"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:153
@@ -901,52 +994,47 @@ msgid ""
 "allow this"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:278 ../IkiWiki/Render.pm:303
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:285
+#: ../IkiWiki/Render.pm:284
 #, perl-format
 msgid "%s has multiple possible source pages"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:361
+#: ../IkiWiki/Render.pm:370
 #, perl-format
 msgid "removing old page %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:410
 #, perl-format
 msgid "scanning %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:406
-#, perl-format
-msgid "rendering %s"
-msgstr ""
-
-#: ../IkiWiki/Render.pm:427
+#: ../IkiWiki/Render.pm:436
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:448
+#: ../IkiWiki/Render.pm:457
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:487
+#: ../IkiWiki/Render.pm:496
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:499
+#: ../IkiWiki/Render.pm:508
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:523
+#: ../IkiWiki/Render.pm:532
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr ""
@@ -1038,16 +1126,16 @@ msgstr ""
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1201
+#: ../IkiWiki.pm:1236
 #, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr ""
 
-#: ../IkiWiki.pm:1741
+#: ../IkiWiki.pm:1776
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1873
+#: ../IkiWiki.pm:1908
 #, perl-format
 msgid "cannot match pages: %s"
 msgstr ""
index 425ec2c00799d03b008cc8262cebfb1dbb519d8b..afbcbe39ea68301290664373a8b8305507bce916 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: ikiwiki 1.51\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-06-12 19:52-0400\n"
+"POT-Creation-Date: 2009-07-20 06:45+0200\n"
 "PO-Revision-Date: 2007-04-27 22:05+0200\n"
 "Last-Translator: Pawel Tecza <ptecza@net.icm.edu.pl>\n"
 "Language-Team: Debian L10n Polish <debian-l10n-polish@lists.debian.org>\n"
@@ -57,7 +57,7 @@ msgstr "Preferencje zapisane."
 msgid "You are banned."
 msgstr "Twój dostęp został zabroniony przez administratora."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1253
 msgid "Error"
 msgstr "Błąd"
 
@@ -192,6 +192,7 @@ msgstr ""
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
 #: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
 #: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Plugin/po.pm:283 ../IkiWiki/Plugin/po.pm:286
 #: ../IkiWiki/Render.pm:80 ../IkiWiki/Render.pm:84 ../IkiWiki/Render.pm:150
 msgid "Discussion"
 msgstr "Dyskusja"
@@ -351,9 +352,10 @@ msgstr ""
 msgid "you are not allowed to change file modes"
 msgstr ""
 
-#: ../IkiWiki/Plugin/google.pm:27
+#: ../IkiWiki/Plugin/google.pm:27 ../IkiWiki/Plugin/po.pm:124
+#: ../IkiWiki/Plugin/search.pm:36
 #, fuzzy, perl-format
-msgid "Must specify %s when using the google search plugin"
+msgid "Must specify %s when using the %s plugin"
 msgstr "Wtyczka do wyszukiwarka wymaga podania %s"
 
 #: ../IkiWiki/Plugin/google.pm:31
@@ -379,17 +381,17 @@ msgstr "awaria w trakcie uruchamiania wtyczki graphviz"
 msgid "prog not a valid graphviz program"
 msgstr "prog nie jest poprawnym programem graphviz"
 
-#: ../IkiWiki/Plugin/highlight.pm:46
+#: ../IkiWiki/Plugin/highlight.pm:47
 #, perl-format
 msgid "tohighlight contains unknown file type '%s'"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:57
+#: ../IkiWiki/Plugin/highlight.pm:58
 #, perl-format
 msgid "Source code: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:122
+#: ../IkiWiki/Plugin/highlight.pm:123
 msgid ""
 "warning: highlight perl module not available; falling back to pass through"
 msgstr ""
@@ -401,8 +403,8 @@ msgstr "wtyczka polygen nie jest zainstalowana"
 
 #: ../IkiWiki/Plugin/img.pm:69
 #, perl-format
-msgid "bad size \"%s\""
-msgstr "nieprawidłowy rozmiar \"%s\""
+msgid "wrong size format \"%s\" (should be WxH)"
+msgstr ""
 
 #: ../IkiWiki/Plugin/img.pm:80 ../IkiWiki/Plugin/img.pm:84
 #: ../IkiWiki/Plugin/img.pm:101
@@ -579,6 +581,103 @@ msgstr ""
 msgid "LWP not found, not pinging"
 msgstr "Nieznaleziony moduł RPC::XML::Client, brak możliwości pingowania"
 
+#: ../IkiWiki/Plugin/po.pm:130
+msgid ""
+"At least one slave language must be defined in po_slave_languages when using "
+"the po plugin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:136
+#, fuzzy, perl-format
+msgid "%s is not a valid language code"
+msgstr "Strona %s nie może być edytowana"
+
+#: ../IkiWiki/Plugin/po.pm:148
+#, perl-format
+msgid ""
+"%s is not a valid value for po_link_to, falling back to po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:153
+msgid ""
+"po_link_to=negotiated requires usedirs to be enabled, falling back to "
+"po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:276
+msgid "discussion"
+msgstr "dyskusja"
+
+#: ../IkiWiki/Plugin/po.pm:373
+#, perl-format
+msgid "re-rendering all pages to fix meta titles"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:377 ../IkiWiki/Render.pm:415
+#, perl-format
+msgid "rendering %s"
+msgstr "renderowanie %s"
+
+#: ../IkiWiki/Plugin/po.pm:410
+msgid "updated PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:434
+msgid ""
+"Can not remove a translation. Removing the master page, though, removes its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:454
+msgid ""
+"Can not rename a translation. Renaming the master page, though, renames its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:816
+#, perl-format
+msgid "POT file (%s) does not exist"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:824
+#, fuzzy, perl-format
+msgid "failed to update %s"
+msgstr "awaria w trakcie kompilowania %s"
+
+#: ../IkiWiki/Plugin/po.pm:830
+#, fuzzy, perl-format
+msgid "failed to copy the POT file to %s"
+msgstr "awaria w trakcie kompilowania %s"
+
+#: ../IkiWiki/Plugin/po.pm:866
+msgid "N/A"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:879
+#, fuzzy, perl-format
+msgid "failed to translate %s"
+msgstr "awaria w trakcie zmiany rozmiaru: %s"
+
+#: ../IkiWiki/Plugin/po.pm:955
+msgid "removed obsolete PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:1018 ../IkiWiki/Plugin/po.pm:1032
+#: ../IkiWiki/Plugin/po.pm:1072
+#, fuzzy, perl-format
+msgid "failed to write %s"
+msgstr "awaria w trakcie zapisu %s: %s"
+
+#: ../IkiWiki/Plugin/po.pm:1030
+#, fuzzy
+msgid "failed to translate"
+msgstr "awaria w trakcie uruchamiania dot"
+
+#: ../IkiWiki/Plugin/po.pm:1035
+#, fuzzy, perl-format
+msgid "failed to read %s"
+msgstr "awaria w trakcie odczytu %s: %s"
+
 #: ../IkiWiki/Plugin/poll.pm:69
 msgid "vote"
 msgstr "głosuj"
@@ -699,16 +798,16 @@ msgstr ""
 msgid "%s is not a file"
 msgstr "Strona %s nie może być edytowana"
 
-#: ../IkiWiki/Plugin/remove.pm:115
+#: ../IkiWiki/Plugin/remove.pm:134
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:152
+#: ../IkiWiki/Plugin/remove.pm:171
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:192
+#: ../IkiWiki/Plugin/remove.pm:211
 msgid "removed"
 msgstr ""
 
@@ -737,38 +836,33 @@ msgstr ""
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:101
+#: ../IkiWiki/Plugin/rename.pm:122
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "renderowanie %s"
 
-#: ../IkiWiki/Plugin/rename.pm:140
+#: ../IkiWiki/Plugin/rename.pm:161
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:226
+#: ../IkiWiki/Plugin/rename.pm:247
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:229
+#: ../IkiWiki/Plugin/rename.pm:250
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:340
+#: ../IkiWiki/Plugin/rename.pm:347
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:495
+#: ../IkiWiki/Plugin/rename.pm:571
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "aktualizacja stron wiki %s: %s przez użytkownika %s"
 
-#: ../IkiWiki/Plugin/search.pm:36
-#, perl-format
-msgid "Must specify %s when using the search plugin"
-msgstr "Wtyczka do wyszukiwarka wymaga podania %s"
-
 #: ../IkiWiki/Plugin/search.pm:182
 #, perl-format
 msgid "need Digest::SHA1 to index %s"
@@ -807,11 +901,13 @@ msgid "parse error"
 msgstr "błąd w trakcie przetwarzania"
 
 #: ../IkiWiki/Plugin/sparkline.pm:78
-msgid "bad featurepoint diameter"
+#, fuzzy
+msgid "invalid featurepoint diameter"
 msgstr "nieprawidłowa średnica dla featurepoint"
 
 #: ../IkiWiki/Plugin/sparkline.pm:88
-msgid "bad featurepoint location"
+#, fuzzy
+msgid "invalid featurepoint location"
 msgstr "nieprawidłowe położenie dla featurepoint"
 
 #: ../IkiWiki/Plugin/sparkline.pm:99
@@ -820,7 +916,7 @@ msgstr "brakujące wartości"
 
 #: ../IkiWiki/Plugin/sparkline.pm:104
 #, fuzzy
-msgid "bad height value"
+msgid "invalid height value"
 msgstr "nieprawidłowa wysokość"
 
 #: ../IkiWiki/Plugin/sparkline.pm:111
@@ -830,7 +926,7 @@ msgstr "brakujący parametr width"
 
 #: ../IkiWiki/Plugin/sparkline.pm:115
 #, fuzzy
-msgid "bad width value"
+msgid "invalid width value"
 msgstr "nieprawidłowa szerokość"
 
 #: ../IkiWiki/Plugin/sparkline.pm:153
@@ -942,52 +1038,47 @@ msgid ""
 "allow this"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:278 ../IkiWiki/Render.pm:303
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "pomijanie nieprawidłowej nazwy pliku %s"
 
-#: ../IkiWiki/Render.pm:285
+#: ../IkiWiki/Render.pm:284
 #, perl-format
 msgid "%s has multiple possible source pages"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:361
+#: ../IkiWiki/Render.pm:370
 #, perl-format
 msgid "removing old page %s"
 msgstr "usuwanie starej strony %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:410
 #, perl-format
 msgid "scanning %s"
 msgstr "skanowanie %s"
 
-#: ../IkiWiki/Render.pm:406
-#, perl-format
-msgid "rendering %s"
-msgstr "renderowanie %s"
-
-#: ../IkiWiki/Render.pm:427
+#: ../IkiWiki/Render.pm:436
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "renderowanie %s z odnośnikiem do %s"
 
-#: ../IkiWiki/Render.pm:448
+#: ../IkiWiki/Render.pm:457
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "renderowanie %s zależącego od %s"
 
-#: ../IkiWiki/Render.pm:487
+#: ../IkiWiki/Render.pm:496
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "renderowanie %s w celu aktualizacji powrotnych odnośników"
 
-#: ../IkiWiki/Render.pm:499
+#: ../IkiWiki/Render.pm:508
 #, perl-format
 msgid "removing %s, no longer rendered by %s"
 msgstr "usuwanie %s nie tworzonego już przez %s"
 
-#: ../IkiWiki/Render.pm:523
+#: ../IkiWiki/Render.pm:532
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: awaria w trakcie tworzenia %s"
@@ -1081,16 +1172,16 @@ msgstr ""
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1201
+#: ../IkiWiki.pm:1236
 #, fuzzy, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "polecenie preprocesora %s wykryte w %s na głębokości %i"
 
-#: ../IkiWiki.pm:1741
+#: ../IkiWiki.pm:1776
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1873
+#: ../IkiWiki.pm:1908
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "awaria w trakcie odczytu %s: %s"
@@ -1115,11 +1206,12 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
-#~ msgid "discussion"
-#~ msgstr "dyskusja"
+#, fuzzy
+#~ msgid "Must specify %s when using the google search plugin"
+#~ msgstr "Wtyczka do wyszukiwarka wymaga podania %s"
 
-#~ msgid "failed to write %s: %s"
-#~ msgstr "awaria w trakcie zapisu %s: %s"
+#~ msgid "bad size \"%s\""
+#~ msgstr "nieprawidłowy rozmiar \"%s\""
 
 #, fuzzy
 #~ msgid "failed to find url in html"
diff --git a/po/po2wiki b/po/po2wiki
new file mode 100755 (executable)
index 0000000..6b84f7d
--- /dev/null
@@ -0,0 +1,41 @@
+#!/usr/bin/perl
+# This program uses the po plugin's internals to convert the po files that
+# it generates back into translated wiki source files that can be used as a
+# underlay for a non-English wiki.
+use warnings;
+use strict;
+use IkiWiki;
+
+# Load the passed setup file and initialize ikiwiki config.
+%config=IkiWiki::defaultconfig();
+require IkiWiki::Setup;
+IkiWiki::Setup::load(shift);
+IkiWiki::loadplugins();
+IkiWiki::checkconfig();
+
+require IkiWiki::Render;
+IkiWiki::srcdir_check();
+my ($files, $pages)=IkiWiki::find_src_files();
+
+foreach my $file (@$files) {
+       my $page=pagename($file);
+       $pagesources{$page}=$file; # used by po plugin functions
+}
+
+foreach my $ll (keys %{$config{po_slave_languages}}) {
+       $config{destdir}="../underlays/locale/$ll";
+
+       foreach my $file (@$files) {
+               my $page=pagename($file);
+               my ($masterpage, $lang) = IkiWiki::Plugin::po::_istranslation($page);
+               next unless defined $lang && $lang eq $ll;
+               
+               my $content=IkiWiki::Plugin::po::po_to_markup($page, readfile(srcfile($file)));
+               # avoid wasting space if the page is not translated at all
+               my $mastercontent=readfile(srcfile($pagesources{$masterpage}));
+               if ($content ne $mastercontent) {
+                       writefile($masterpage.".".$config{default_pageext},
+                               $config{destdir}, $content);
+               }
+       }
+}
index c7729a22195044b15391d291d672edcfeb3c3de8..70d9ca68ced62ebccf4eb658b356ccaa02047258 100644 (file)
--- 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: 2009-06-12 19:52-0400\n"
+"POT-Creation-Date: 2009-07-20 06:45+0200\n"
 "PO-Revision-Date: 2007-01-10 23:47+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -54,7 +54,7 @@ msgstr "Inställningar sparades."
 msgid "You are banned."
 msgstr "Du är bannlyst."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1253
 msgid "Error"
 msgstr "Fel"
 
@@ -189,6 +189,7 @@ msgstr ""
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
 #: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
 #: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Plugin/po.pm:283 ../IkiWiki/Plugin/po.pm:286
 #: ../IkiWiki/Render.pm:80 ../IkiWiki/Render.pm:84 ../IkiWiki/Render.pm:150
 msgid "Discussion"
 msgstr "Diskussion"
@@ -348,9 +349,10 @@ msgstr ""
 msgid "you are not allowed to change file modes"
 msgstr ""
 
-#: ../IkiWiki/Plugin/google.pm:27
+#: ../IkiWiki/Plugin/google.pm:27 ../IkiWiki/Plugin/po.pm:124
+#: ../IkiWiki/Plugin/search.pm:36
 #, fuzzy, perl-format
-msgid "Must specify %s when using the google search plugin"
+msgid "Must specify %s when using the %s plugin"
 msgstr "Måste ange %s när sökinsticket används"
 
 #: ../IkiWiki/Plugin/google.pm:31
@@ -376,17 +378,17 @@ msgstr "linkmap misslyckades att köra dot"
 msgid "prog not a valid graphviz program"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:46
+#: ../IkiWiki/Plugin/highlight.pm:47
 #, perl-format
 msgid "tohighlight contains unknown file type '%s'"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:57
+#: ../IkiWiki/Plugin/highlight.pm:58
 #, perl-format
 msgid "Source code: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:122
+#: ../IkiWiki/Plugin/highlight.pm:123
 msgid ""
 "warning: highlight perl module not available; falling back to pass through"
 msgstr ""
@@ -398,7 +400,7 @@ msgstr "polygen inte installerad"
 
 #: ../IkiWiki/Plugin/img.pm:69
 #, perl-format
-msgid "bad size \"%s\""
+msgid "wrong size format \"%s\" (should be WxH)"
 msgstr ""
 
 #: ../IkiWiki/Plugin/img.pm:80 ../IkiWiki/Plugin/img.pm:84
@@ -572,6 +574,103 @@ msgstr ""
 msgid "LWP not found, not pinging"
 msgstr "RPC::XML::Client hittades inte, pingar inte"
 
+#: ../IkiWiki/Plugin/po.pm:130
+msgid ""
+"At least one slave language must be defined in po_slave_languages when using "
+"the po plugin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:136
+#, perl-format
+msgid "%s is not a valid language code"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:148
+#, perl-format
+msgid ""
+"%s is not a valid value for po_link_to, falling back to po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:153
+msgid ""
+"po_link_to=negotiated requires usedirs to be enabled, falling back to "
+"po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:276
+msgid "discussion"
+msgstr "diskussion"
+
+#: ../IkiWiki/Plugin/po.pm:373
+#, perl-format
+msgid "re-rendering all pages to fix meta titles"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:377 ../IkiWiki/Render.pm:415
+#, perl-format
+msgid "rendering %s"
+msgstr "ritar upp %s"
+
+#: ../IkiWiki/Plugin/po.pm:410
+msgid "updated PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:434
+msgid ""
+"Can not remove a translation. Removing the master page, though, removes its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:454
+msgid ""
+"Can not rename a translation. Renaming the master page, though, renames its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:816
+#, perl-format
+msgid "POT file (%s) does not exist"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:824
+#, fuzzy, perl-format
+msgid "failed to update %s"
+msgstr "misslyckades med att kompilera %s"
+
+#: ../IkiWiki/Plugin/po.pm:830
+#, fuzzy, perl-format
+msgid "failed to copy the POT file to %s"
+msgstr "misslyckades med att kompilera %s"
+
+#: ../IkiWiki/Plugin/po.pm:866
+msgid "N/A"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:879
+#, fuzzy, perl-format
+msgid "failed to translate %s"
+msgstr "misslyckades med att skriva %s: %s"
+
+#: ../IkiWiki/Plugin/po.pm:955
+msgid "removed obsolete PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:1018 ../IkiWiki/Plugin/po.pm:1032
+#: ../IkiWiki/Plugin/po.pm:1072
+#, fuzzy, perl-format
+msgid "failed to write %s"
+msgstr "misslyckades med att skriva %s: %s"
+
+#: ../IkiWiki/Plugin/po.pm:1030
+#, fuzzy
+msgid "failed to translate"
+msgstr "linkmap misslyckades att köra dot"
+
+#: ../IkiWiki/Plugin/po.pm:1035
+#, fuzzy, perl-format
+msgid "failed to read %s"
+msgstr "misslyckades med att skriva %s: %s"
+
 #: ../IkiWiki/Plugin/poll.pm:69
 msgid "vote"
 msgstr "röst"
@@ -689,16 +788,16 @@ msgstr "%s är låst av %s och kan inte redigeras"
 msgid "%s is not a file"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:115
+#: ../IkiWiki/Plugin/remove.pm:134
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:152
+#: ../IkiWiki/Plugin/remove.pm:171
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:192
+#: ../IkiWiki/Plugin/remove.pm:211
 msgid "removed"
 msgstr ""
 
@@ -727,38 +826,33 @@ msgstr ""
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:101
+#: ../IkiWiki/Plugin/rename.pm:122
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "ritar upp %s"
 
-#: ../IkiWiki/Plugin/rename.pm:140
+#: ../IkiWiki/Plugin/rename.pm:161
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:226
+#: ../IkiWiki/Plugin/rename.pm:247
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:229
+#: ../IkiWiki/Plugin/rename.pm:250
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:340
+#: ../IkiWiki/Plugin/rename.pm:347
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:495
+#: ../IkiWiki/Plugin/rename.pm:571
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "uppdatering av %s, %s av %s"
 
-#: ../IkiWiki/Plugin/search.pm:36
-#, perl-format
-msgid "Must specify %s when using the search plugin"
-msgstr "Måste ange %s när sökinsticket används"
-
 #: ../IkiWiki/Plugin/search.pm:182
 #, perl-format
 msgid "need Digest::SHA1 to index %s"
@@ -797,11 +891,11 @@ msgid "parse error"
 msgstr "linkmap misslyckades att köra dot"
 
 #: ../IkiWiki/Plugin/sparkline.pm:78
-msgid "bad featurepoint diameter"
+msgid "invalid featurepoint diameter"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:88
-msgid "bad featurepoint location"
+msgid "invalid featurepoint location"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:99
@@ -810,7 +904,7 @@ msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:104
 #, fuzzy
-msgid "bad height value"
+msgid "invalid height value"
 msgstr "linkmap misslyckades att köra dot"
 
 #: ../IkiWiki/Plugin/sparkline.pm:111
@@ -820,7 +914,7 @@ msgstr "mall saknar id-parameter"
 
 #: ../IkiWiki/Plugin/sparkline.pm:115
 #, fuzzy
-msgid "bad width value"
+msgid "invalid width value"
 msgstr "linkmap misslyckades att köra dot"
 
 #: ../IkiWiki/Plugin/sparkline.pm:153
@@ -931,52 +1025,47 @@ msgid ""
 "allow this"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:278 ../IkiWiki/Render.pm:303
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "hoppar över felaktigt filnamn %s"
 
-#: ../IkiWiki/Render.pm:285
+#: ../IkiWiki/Render.pm:284
 #, perl-format
 msgid "%s has multiple possible source pages"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:361
+#: ../IkiWiki/Render.pm:370
 #, perl-format
 msgid "removing old page %s"
 msgstr "tar bort gammal sida %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:410
 #, perl-format
 msgid "scanning %s"
 msgstr "söker av %s"
 
-#: ../IkiWiki/Render.pm:406
-#, perl-format
-msgid "rendering %s"
-msgstr "ritar upp %s"
-
-#: ../IkiWiki/Render.pm:427
+#: ../IkiWiki/Render.pm:436
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "ritar upp %s, vilken länkar till %s"
 
-#: ../IkiWiki/Render.pm:448
+#: ../IkiWiki/Render.pm:457
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "ritar upp %s, vilken är beroende av %s"
 
-#: ../IkiWiki/Render.pm:487
+#: ../IkiWiki/Render.pm:496
 #, perl-format
 msgid "rendering %s, to update its backlinks"
 msgstr "ritar upp %s, för att uppdatera dess bakåtlänkar"
 
-#: ../IkiWiki/Render.pm:499
+#: ../IkiWiki/Render.pm:508
 #, 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:523
+#: ../IkiWiki/Render.pm:532
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: kan inte rita upp %s"
@@ -1068,16 +1157,16 @@ msgstr ""
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1201
+#: ../IkiWiki.pm:1236
 #, fuzzy, perl-format
 msgid "preprocessing loop detected on %s at depth %i"
 msgstr "%s förbehandlingsslinga detekterades på %s, djup %i"
 
-#: ../IkiWiki.pm:1741
+#: ../IkiWiki.pm:1776
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1873
+#: ../IkiWiki.pm:1908
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "kan inte läsa %s: %s"
@@ -1102,11 +1191,9 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
-#~ msgid "discussion"
-#~ msgstr "diskussion"
-
-#~ msgid "failed to write %s: %s"
-#~ msgstr "misslyckades med att skriva %s: %s"
+#, fuzzy
+#~ msgid "Must specify %s when using the google search plugin"
+#~ msgstr "Måste ange %s när sökinsticket används"
 
 #, fuzzy
 #~ msgid "failed to find url in html"
diff --git a/po/underlay.setup b/po/underlay.setup
new file mode 100644 (file)
index 0000000..3e6c125
--- /dev/null
@@ -0,0 +1,30 @@
+#!/usr/bin/perl
+# Configuration file for ikiwiki that uses the po plugin to build/update
+# po and pot files for pages in the underlays.
+
+use IkiWiki::Setup::Standard {
+       # List here all languages that have translations.
+       # Listing languages without active translations
+       # will excessively bloat things.
+        po_slave_languages => {
+               #'fr' => 'Français',
+               #'es' => 'Español',
+               #'de' => 'Deutsch',
+               'da' => 'Dansk',
+        },
+       po_master_language => { 'code' => 'en', 'name' => 'English' },
+       po_translatable_pages => "*",
+       add_plugins => [qw{po}],
+
+       wikiname => "ikiwiki",
+       srcdir => "underlays",
+       destdir => "html",
+       templatedir => "templates",
+       # we don't want to pull in the normal underlays
+       underlaydirbase => "underlays/empty",
+       underlaydir => "underlays/empty",
+       discussion => 0,
+       locale => '',
+       verbose => 1,
+       syslog => 0,
+}
diff --git a/po/underlays/basewiki/ikiwiki.da.po b/po/underlays/basewiki/ikiwiki.da.po
new file mode 100644 (file)
index 0000000..74f1198
--- /dev/null
@@ -0,0 +1,74 @@
+# Danish translation of basewiki/ikiwiki page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"This wiki is powered by [ikiwiki](http://ikiwiki.info/).\n"
+"[[!if test=\"enabled(version)\"\n"
+"     then=\"(Currently running version [[!version ]].)\"\n"
+"]]\n"
+msgstr ""
+"Denne wiki er drevet af [ikiwiki](http://ikiwiki.info/).\n"
+"[[!if test=\"enabled(version)\"\n"
+"     then=\"(kører i øjeblikket version [[!version ]].)\"\n"
+"]]\n"
+
+#. type: Plain text
+msgid "Some documentation on using ikiwiki:"
+msgstr "Noget dokumentation om brug af ikiwiki:"
+
+#. type: Bullet: '* '
+msgid "[[ikiwiki/formatting]]"
+msgstr "[[formatering|ikiwiki/formatting]]"
+
+#. type: Bullet: '* '
+msgid "[[ikiwiki/wikilink]]"
+msgstr "[[ikiwiki/wikilink]]"
+
+#. type: Bullet: '* '
+msgid "[[ikiwiki/subpage]]"
+msgstr "[[underside|ikiwiki/subpage]]"
+
+#. type: Bullet: '* '
+msgid "[[ikiwiki/pagespec]]"
+msgstr "[[ikiwiki/pagespec]]"
+
+#. type: Bullet: '* '
+msgid "[[ikiwiki/directive]]"
+msgstr "[[direktiv|ikiwiki/directive]]"
+
+#. type: Bullet: '* '
+msgid "[[ikiwiki/markdown]]"
+msgstr "[[ikiwiki/markdown]]"
+
+#. type: Bullet: '* '
+msgid "[[ikiwiki/openid]]"
+msgstr "[[ikiwiki/openid]]"
+
+#. type: Bullet: '* '
+msgid "[[ikiwiki/searching]]"
+msgstr "[[søgning|ikiwiki/searching]]"
diff --git a/po/underlays/basewiki/ikiwiki/blog.da.po b/po/underlays/basewiki/ikiwiki/blog.da.po
new file mode 100644 (file)
index 0000000..6b188fe
--- /dev/null
@@ -0,0 +1,43 @@
+# Danish translation of basewiki/ikiwiki/blog page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+msgid ""
+"This page has been removed from ikiwiki's basewiki. For documentation about "
+"creating a blog with ikiwiki, see the documentation of the [[!iki ikiwiki/"
+"directive/inline desc=inline]] directive."
+msgstr ""
+"Denne side er blevet fjernet fra ikiwiki's basewiki. For dokumentation om "
+"oprettelse af en blog med ikiwiki se dokumentationen til [[!iki ikiwiki/"
+"directive/inline desc=inline]]-direktivet."
+
+#. type: Plain text
+msgid ""
+"Please update your links, as this redirection page will be removed in a "
+"future ikiwiki release."
+msgstr ""
+"Opdatér dine henvisninger, da denne omdirigeringsside bliver fjernet i en "
+"fremtidig udgave af ikiwiki."
diff --git a/po/underlays/basewiki/ikiwiki/directive.da.po b/po/underlays/basewiki/ikiwiki/directive.da.po
new file mode 100644 (file)
index 0000000..3c13491
--- /dev/null
@@ -0,0 +1,135 @@
+# Danish translation of basewiki/ikiwiki/directive page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+msgid ""
+"Directives are similar to a [[ikiwiki/WikiLink]] in form, except they begin "
+"with `!` and may contain parameters. The general form is:"
+msgstr ""
+"Direktiver ligner et [[ikiwiki/WikiLink]] i form, undtagen at de begynder "
+"med `!` og kan indeholde parametre. Generelt er formen:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!directive param=\"value\" param=\"value\"]]\n"
+msgstr "\t\\[[!direktiv param=\"værdi\" param=\"værdi\"]]\n"
+
+#. type: Plain text
+msgid ""
+"This gets expanded before the rest of the page is processed, and can be used "
+"to transform the page in various ways."
+msgstr ""
+"Dette udvides før resten af siden udarbejdes, og kan bruges til at omforme "
+"siden på forskellige måder."
+
+#. type: Plain text
+msgid ""
+"The quotes around values can be omitted if the value is a simple word.  "
+"Also, some directives may use parameters without values, for example:"
+msgstr ""
+"Citationen omkring værdier kan udelades hvis værdien er et simpelt ord. "
+"Desuden kan nogle direktiver bruge parametre uden værdier. Eksempel:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!tag foo]]\n"
+msgstr "\t\\[[!tag foo]]\n"
+
+#. type: Plain text
+msgid ""
+"A directive does not need to all be on one line, it can be wrapped to "
+"multiple lines if you like:"
+msgstr ""
+"Et direktiv behøver ikke at blive holdt på een linje, det kan bredes ud over "
+"flere linjer hvis du har lyst:"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!directive foo=\"baldersnatch\"\n"
+"\tbar=\"supercalifragilisticexpialidocious\" baz=11]]\n"
+msgstr ""
+"\t\\[[!direktiv foo=\"baldersnatch\"\n"
+"\tbar=\"supercalifragilisticexpialidocious\" baz=11]]\n"
+
+#. type: Plain text
+msgid ""
+"Also, multiple lines of *quoted* text can be used for a value.  To allow "
+"quote marks inside the quoted text, delimit the block of text with triple-"
+"quotes:"
+msgstr ""
+"Flere linjer *citeret* tekst kan også bruges som værdi. For at tillade "
+"citation i den citerede tekst skal du adskille blokken med trippel-citat:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!directive text=\"\"\"\n"
+msgstr "\t\\[[!direktiv tekst=\"\"\"\n"
+
+#. type: Bullet: '     1. '
+msgid "\"foo\""
+msgstr "\"foo\""
+
+#. type: Bullet: '     2. '
+msgid "\"bar\""
+msgstr "\"bar\""
+
+#. type: Bullet: '     3. '
+msgid "\"baz\""
+msgstr "\"baz\""
+
+#. type: Plain text
+msgid ""
+"ikiwiki also has an older syntax for directives, which requires a space in "
+"directives to distinguish them from [[wikilinks|ikiwiki/wikilink]]. This "
+"syntax has several disadvantages: it requires a space after directives with "
+"no parameters (such as `\\[[pagecount ]]`), and it prohibits spaces in "
+"[[wikilinks|ikiwiki/wikilink]].  ikiwiki now provides the `!`-prefixed "
+"syntax shown above as default.  However, ikiwiki still supports wikis using "
+"the older syntax, if the `prefix_directives` option is disabled."
+msgstr ""
+"Ikiwiki har også en ældre syntaks til direktiver, som kræver et mellemrum i "
+"direktiver for at skelne dem fra [[wikilinks|ikiwiki/wikilink]].  Denne "
+"syntaks har flere ulemper: den kræver et mellemrum efter direktiver uden "
+"parametre (såsom `\\[[pagecount ]]`), og den forbyder mellemrum i "
+"[[wikilinks|ikiwiki/wikilink]]. Ikiwiki har nu den `!`-foranstillede syntaks "
+"vist ovenfor som det foretrukne alternativ. Ikiwiki understøtter dog fortsat "
+"den ældre syntaks, hvis ikke `prefix_directives`-valget er aktiveret."
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!if test=\"enabled(listdirectives)\" then=\"\"\"\n"
+msgstr "[[!if test=\"enabled(listdirectives)\" then=\"\"\"\n"
+
+#. type: Plain text
+msgid "Here is a list of currently available directives in this wiki:"
+msgstr ""
+"Her er en oversigt over konkret tilgængelige direktiver i for denne wiki:"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!listdirectives ]]\n"
+msgstr "[[!listdirectives ]]\n"
diff --git a/po/underlays/basewiki/ikiwiki/formatting.da.po b/po/underlays/basewiki/ikiwiki/formatting.da.po
new file mode 100644 (file)
index 0000000..3a229e9
--- /dev/null
@@ -0,0 +1,298 @@
+# Danish translation of basewiki/ikiwiki/formatting page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 21:25+0300\n"
+"PO-Revision-Date: 2009-07-22 21:28+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta title=\"Formatting wiki pages\"]]\n"
+msgstr "[[!meta title=\"Formatering af wikisider\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+msgid ""
+"Text on this wiki is, by default, written in a form very close to how you "
+"might write text for an email message. This style of text formatting is "
+"called [[MarkDown]], and it works like this:"
+msgstr ""
+"Teksten på denne wiki er, som udgangspunkt, skrevet på en måde som ligger "
+"tæt op ad hvordan du muligvis formulerer dig i email-beskeder. Denne form "
+"for tekstformatering kaldes [[MarkDown]], og det fungerer sådan her:"
+
+#. type: Plain text
+msgid "Leave blank lines between paragraphs."
+msgstr "hold afstand med blanke linjer mellem afsnit."
+
+#. type: Plain text
+msgid ""
+"You can \\**emphasise*\\* or \\*\\***strongly emphasise**\\*\\* text by "
+"placing it in single or double asterisks."
+msgstr ""
+"du kan \\**fremhæve*\\* eller \\*\\***kraftigt fremhæve**\\*\\* tekst ved at "
+"placere det med enkelte eller dobbelte asterisker (stjerner) omkring."
+
+#. type: Plain text
+msgid "To create a list, start each line with an asterisk:"
+msgstr "En liste oprettes ved at begynde hver linje med en asterisk:"
+
+#. type: Bullet: '* '
+msgid "\"* this is my list\""
+msgstr "\"* dette er min liste\""
+
+#. type: Bullet: '* '
+msgid "\"* another item\""
+msgstr "\"* et andet emne\""
+
+#. type: Plain text
+msgid ""
+"To make a numbered list, start each line with a number (any number will do) "
+"followed by a period:"
+msgstr ""
+"En nummereret liste laves ved at starte hver linje med et nummer (ethvert "
+"nummer kan bruges) efterfulgt af punktum:"
+
+#. type: Bullet: '1. '
+msgid "\"1. first line\""
+msgstr "\"1. første linje\""
+
+#. type: Bullet: '2. '
+msgid "\"2. second line\""
+msgstr "\"2. anden linje\""
+
+#. type: Bullet: '2. '
+msgid "\"2. third line\""
+msgstr "\"2. tredje linje\""
+
+#. type: Plain text
+msgid ""
+"To create a header, start a line with one or more `#` characters followed by "
+"a space and the header text. The number of `#` characters controls the size "
+"of the header:"
+msgstr ""
+"En overskrift eller en sektion er en linje med et eller flere `#`-tegn "
+"efterfulgt af et mellemrum og overskriftsteksten. Antallet af `#`-tegn "
+"styrer overskriftens størrelse:"
+
+#. type: Title #
+#, no-wrap
+msgid "# h1"
+msgstr "# h1"
+
+#. type: Title ##
+#, no-wrap
+msgid "## h2"
+msgstr "## h2"
+
+#. type: Title ###
+#, no-wrap
+msgid "### h3"
+msgstr "### h3"
+
+#. type: Title ####
+#, no-wrap
+msgid "#### h4"
+msgstr "#### h4"
+
+#. type: Title #####
+#, no-wrap
+msgid "##### h5"
+msgstr "##### h5"
+
+#. type: Title ######
+#, no-wrap
+msgid "###### h6"
+msgstr "###### h6"
+
+#. type: Plain text
+msgid ""
+"To create a horizontal rule, just write three or more dashes or stars on "
+"their own line:"
+msgstr ""
+"En vandret skillelinje oprettes ved at skrive tre eller flere bindestreger "
+"eller stjerner på en linje for sig selv."
+
+#. type: Plain text
+#, no-wrap
+msgid "To quote someone, prefix the quote with \">\":\n"
+msgstr "Citater angives ved at sætte \">\" foran hver linje:\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"> To be or not to be,\n"
+"> that is the question.\n"
+msgstr ""
+"> At være eller ikke være,\n"
+"> det er spørgsmålet.\n"
+
+#. type: Plain text
+msgid "To write a code block, indent each line with a tab or 4 spaces:"
+msgstr ""
+"En kodeblok skrives ved at indrykke hver linje med eet tabulator-tegn eller "
+"4 mellemrum:"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t10 PRINT \"Hello, world!\"\n"
+"\t20 GOTO 10\n"
+msgstr ""
+"\t10 PRINT \"Hello, world!\"\n"
+"\t20 GOTO 10\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"To link to an url or email address, you can just put the\n"
+"url in angle brackets: <<http://ikiwiki.info>>, or you can use the\n"
+"form \\[link text\\]\\(url\\)\n"
+msgstr ""
+"Du kan henvise til en URL eller en email-adresse ved at putte addressen i\n"
+"vinkelklammer: <<http://ikiwiki.info>>, eller du kan bruge formen\n"
+"\\[henvisningstekst\\]\\(adresse\\)\n"
+
+#. type: Plain text
+msgid ""
+"In addition to basic html formatting using [[MarkDown]], this wiki lets you "
+"use the following additional features:"
+msgstr ""
+"Udover normal html-formatering med [[MarkDown]], kan du med denne wiki bruge "
+"følgende ekstra finesser:"
+
+#. type: Bullet: '* '
+msgid ""
+"To link to another page on the wiki, place the page's name inside double "
+"square brackets. So you would use `\\[[WikiLink]]` to link to [[WikiLink]]."
+msgstr ""
+"Henvise til en anden side på wikien ved at skrive sidenavnet med dobbelte "
+"lodrette klammer omkring. Udtrykket `\\[[WikiLink]]` henviser til "
+"[[WikiLink]]."
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!if test=\"enabled(smiley) and smileys\" then=\"\"\"\n"
+msgstr "[[!if test=\"enabled(smiley) and smileys\" then=\"\"\"\n"
+
+#. type: Bullet: '* '
+msgid "Insert [[smileys]] and some other useful symbols. :-)"
+msgstr "Indsætte [[smileys]] og andre anvendelige symboler. :-)"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!if test=\"enabled(shortcut) and shortcuts\" then=\"\"\"\n"
+msgstr "[[!if test=\"enabled(shortcut) and shortcuts\" then=\"\"\"\n"
+
+#. type: Bullet: '* '
+msgid "Use [[shortcuts]] to link to common resources."
+msgstr "Bruge [[genveje|shortcuts]] til at henvise til gængse ressourcer."
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!wikipedia War\\_of\\_1812]]\n"
+msgstr "\t\\[[!wikipedia War\\_of\\_1812]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!if test=\"enabled(template) and templates\" then=\"\"\"\n"
+msgstr "[[!if test=\"enabled(template) and templates\" then=\"\"\"\n"
+
+#. type: Bullet: '* '
+msgid ""
+"Create and fill out [[templates]] for repeated chunks of parameterized wiki "
+"text."
+msgstr ""
+"Oprette og udfylde [[skabeloner|templates]] for gentagne klumper af "
+"parameteriseret wikitekst."
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"* Insert various [[directives|directive]] onto a page to perform useful\n"
+"  actions.\n"
+"[[!if test=\"enabled(toc) or enabled(meta) or enabled(inline)\" then=\"\"\"\n"
+msgstr ""
+"* Indsæt diverse [[directiver|directive]] på en side for at udføre nyttige\n"
+"  handlinger.\n"
+"[[!if test=\"enabled(toc) or enabled(meta) or enabled(inline)\" then=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "  For example, you can:\n"
+msgstr "  Eksempelvis kan du:\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!if test=\"enabled(toc)\" then=\"\"\"\n"
+msgstr "[[!if test=\"enabled(toc)\" then=\"\"\"\n"
+
+#. type: Bullet: '  * '
+msgid "Add a table of contents to a page:"
+msgstr "Tilføje en indholdsfortegnelse til en side:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!toc]]\n"
+msgstr "\t\\[[!toc]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!if test=\"enabled(meta)\" then=\"\"\"\n"
+msgstr "[[!if test=\"enabled(meta)\" then=\"\"\"\n"
+
+#. type: Bullet: '  * '
+msgid "Change the title of a page:"
+msgstr "Ændre titlen på en side:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!meta title=\"full page title\"]]\n"
+msgstr "\t\\[[!meta title=\"fuldstændige sidetitel\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!if test=\"enabled(inline)\" then=\"\"\"\n"
+msgstr "[[!if test=\"enabled(inline)\" then=\"\"\"\n"
+
+#. type: Bullet: '  * '
+msgid "Create a blog by inlining a set of pages:"
+msgstr "Oprette en [[blog]] ved at indlejre et udvalg af sider:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!inline pages=\"blog/*\"]]\n"
+msgstr "\t\\[[!inline pages=\"blog/*\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!if test=\"enabled(listdirectives)\" then=\"\"\"\n"
+msgstr "[[!if test=\"enabled(listdirectives)\" then=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "  Full list of [[directives|directive]] enabled for this wiki:\n"
+msgstr "  Komplet oversigt over [[directiver|directive]] aktiveret for denne wiki:\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "  [[!listdirectives ]]\n"
+msgstr "  [[!listdirectives ]]\n"
diff --git a/po/underlays/basewiki/ikiwiki/markdown.da.po b/po/underlays/basewiki/ikiwiki/markdown.da.po
new file mode 100644 (file)
index 0000000..ba2eb56
--- /dev/null
@@ -0,0 +1,54 @@
+# Danish translation of basewiki/ikiwiki/markdown page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+msgid ""
+"[Markdown](http://daringfireball.net/projects/markdown/)  is a minimal "
+"markup language that resembles plain text as used in email messages. It is "
+"the markup language used by this wiki by default."
+msgstr ""
+"[Markdown](http://daringfireball.net/projects/markdown/) er et minimalt "
+"opmærkningssprog som afspejler simpel tekst som det bruges i email-beskeder. "
+"Det er standard opmærkningssprog for denne wiki."
+
+#. type: Plain text
+msgid ""
+"For documentation about the markdown syntax, see [[formatting]] and "
+"[Markdown: syntax](http://daringfireball.net/projects/markdown/syntax)."
+msgstr ""
+"Du kan læse dokumentation til markdown-syntaksen under [[formatering|"
+"formatting]] og [Markdown: syntax](http://daringfireball.net/projects/"
+"markdown/syntax)."
+
+#. type: Plain text
+msgid ""
+"Note that [[WikiLinks|WikiLink]] and [[directives|directive]] are not part "
+"of the markdown syntax, and are the only bit of markup that this wiki "
+"handles internally."
+msgstr ""
+"Bemærk at [[WikiLinks|WikiLink]] og [[direktiver|directive]] ikke er en del "
+"af markdown-syntaksen, og er de eneste stumper opmærkning som denne wiki "
+"håndterer internt."
diff --git a/po/underlays/basewiki/ikiwiki/openid.da.po b/po/underlays/basewiki/ikiwiki/openid.da.po
new file mode 100644 (file)
index 0000000..7f030ee
--- /dev/null
@@ -0,0 +1,123 @@
+# Danish translation of basewiki/ikiwiki/openid page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-22 21:28+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta title=\"OpenID\"]]\n"
+msgstr "[[!meta title=\"OpenID\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[[!if test=\"enabled(openid)\"\n"
+"     then=\"This wiki has OpenID **enabled**.\"\n"
+"     else=\"This wiki has OpenID **disabled**.\"]]\n"
+msgstr ""
+"[[!if test=\"enabled(openid)\"\n"
+"     then=\"Denne wiki har OpenID **aktiveret**.\"\n"
+"     else=\"Denne wiki har OpenID **deaktiveret**.\"]]\n"
+
+#. type: Plain text
+msgid ""
+"[OpenID](http://openid.net) is a decentralized authentication mechanism that "
+"allows you to have one login that you can use on a growing number of "
+"websites."
+msgstr ""
+"[OpenID](http://openid.net) er en decentral ægthedsmekanisme som giver dig "
+"mulighed for at have eet login som du kan bruge på et voksende antal "
+"websteder."
+
+#. type: Plain text
+msgid ""
+"To sign up for an OpenID, visit one of the following identity providers:"
+msgstr ""
+"Du kan registrere en OpenID ved at besøge en af de følgende "
+"identitetsudbydere:"
+
+#. type: Bullet: '* '
+msgid "[MyOpenID](https://www.myopenid.com/)"
+msgstr "[MyOpenID](https://www.myopenid.com/)"
+
+#. type: Bullet: '* '
+msgid "[GetOpenID](https://getopenid.com/)"
+msgstr "[GetOpenID](https://getopenid.com/)"
+
+#. type: Bullet: '* '
+msgid "[Videntity](http://videntity.org/)"
+msgstr "[Videntity](http://videntity.org/)"
+
+#. type: Bullet: '* '
+msgid "[LiveJournal](http://www.livejournal.com/openid/)"
+msgstr "[LiveJournal](http://www.livejournal.com/openid/)"
+
+#. type: Bullet: '* '
+msgid "[TrustBearer](https://openid.trustbearer.com/)"
+msgstr "[TrustBearer](https://openid.trustbearer.com/)"
+
+#. type: Bullet: '* '
+msgid ""
+"or any of the [many others out there](http://openiddirectory.com/openid-"
+"providers-c-1.html)"
+msgstr ""
+"eller enhver af de [mange andre derude](http://openiddirectory.com/openid-"
+"providers-c-1.html)"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"Your OpenID is the URL that you are given when you sign up.\n"
+"[[!if test=\"enabled(openid)\" then=\"\"\"\n"
+msgstr ""
+"Din OpenID er den URL som du får når du registrerer dig.\n"
+"[[!if test=\"enabled(openid)\" then=\"\"\"\n"
+
+#. type: Plain text
+msgid ""
+"To sign in to this wiki using OpenID, just enter it in the OpenID field in "
+"the signin form. You do not need to give this wiki a password or go through "
+"any registration process when using OpenID."
+msgstr ""
+"Du kan logge på denne wiki med OpenID, ved blot at angive den i OpenID-"
+"feltet på login-siden. Du behøves ikke at oplyse din adgangskode til denne "
+"wiki eller at gennemgå en registreringsproces når du bruger OpenID."
+
+#. type: Plain text
+msgid ""
+"It's also possible to make a page in the wiki usable as an OpenID url, by "
+"delegating it to an openid server. Here's an example of how to do that:"
+msgstr ""
+"Det er også muligt at lave en side i wikien brugbar som en OpenID URL, ved "
+"at delegere den til en openid server. Her er et eksempel på hvordan det kan "
+"gøres:"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!meta openid=\"http://yourid.myopenid.com/\"\n"
+"\t       server=\"http://www.myopenid.com/server\"]]\n"
+msgstr ""
+"\t\\[[!meta openid=\"http://yourid.myopenid.com/\"\n"
+"\t       server=\"http://www.myopenid.com/server\"]]\n"
diff --git a/po/underlays/basewiki/ikiwiki/pagespec.da.po b/po/underlays/basewiki/ikiwiki/pagespec.da.po
new file mode 100644 (file)
index 0000000..f3bfd57
--- /dev/null
@@ -0,0 +1,253 @@
+# Danish translation of basewiki/ikiwiki/pagespec page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+msgid ""
+"To select a set of pages, such as pages that are locked, pages whose commit "
+"emails you want subscribe to, or pages to combine into a blog, the wiki uses "
+"a PageSpec. This is an expression that matches a set of pages."
+msgstr ""
+"Til at angive et udvalg af sider, eksempelvis låste sider, sider du vil "
+"abonnere på ændringer til, eller sider som skal udgøre en blog, anvender "
+"wikien et PageSpec. dette er et udtryk som passer for et bestemt udvalg af "
+"sider."
+
+#. type: Plain text
+msgid ""
+"The simplest PageSpec is a simple list of pages. For example, this matches "
+"any of the three listed pages:"
+msgstr ""
+"Det simpleste PageSpec er simpelthen en opremsning af sider med \"or\" "
+"imellem (\"or\" betyder \"eller\" på engelsk). Dette passer eksempelvis for "
+"enhver af de tre nævnte sider:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\tfoo or bar or baz\n"
+msgstr "\tfoo or bar or baz\n"
+
+#. type: Plain text
+msgid ""
+"More often you will want to match any pages that have a particular thing in "
+"their name. You can do this using a glob pattern. \"`*`\" stands for any "
+"part of a page name, and \"`?`\" for any single letter of a page name. So "
+"this matches all pages about music, and any [[SubPage]]s of the SandBox, but "
+"does not match the SandBox itself:"
+msgstr ""
+"Mere hyppigt har du dog brug for at passe for sider med noget bestemt i "
+"deres navne. Dette kan du udtrykke med et \"glob-mønster\". \"`*`\" står "
+"for enhver del af et sidenavn, og \"`?`\" for ethvert enkeltbogstav i et "
+"sidenavn. Så dette passer for alle sider om musik, og alle [[UnderSider||"
+"SubPage]] til sandkassen, men ikke selve sandkasse-siden:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t*music* or SandBox/*\n"
+msgstr "\t*musik* or SandBox/*\n"
+
+#. type: Plain text
+msgid ""
+"You can also prefix an item with \"`!`\" to skip pages that match it. So to "
+"match all pages except for Discussion pages and the SandBox:"
+msgstr ""
+"Du kan også angive \"`!`\" foran et emne for at undgå sider som passer for "
+"det. Så for at passe for alle sider undtagen diskussionssider og sandkassen:"
+
+#. type: Bullet: '     * '
+msgid "and !SandBox and !*/Discussion"
+msgstr "and !SandBox and !*/Discussion"
+
+#. type: Plain text
+msgid ""
+"Some more elaborate limits can be added to what matches using these "
+"functions:"
+msgstr "Resultaterne kan begrænses mere nuanceret med disse funktioner:"
+
+#. type: Bullet: '* '
+msgid ""
+"\"`link(page)`\" - matches only pages that link to a given page (or glob)"
+msgstr ""
+"\"`link(side)`\" - passer kun for sider som henviser til en given side "
+"(eller glob)"
+
+#. type: Bullet: '* '
+msgid ""
+"\"`tagged(tag)`\" - matches pages that are tagged or link to the given tag "
+"(or tags matched by a glob)"
+msgstr ""
+"\"`tagged(mærkat)`\" - passer for sider mærket af med eller som henviser til "
+"den givne mærkat (eller mærkater som passer for et glob)"
+
+#. type: Bullet: '* '
+msgid "\"`backlink(page)`\" - matches only pages that a given page links to"
+msgstr ""
+"\"`backlink(side)`\" - passer kun for sider som en given side henviser til"
+
+#. type: Bullet: '* '
+msgid ""
+"\"`creation_month(month)`\" - matches only pages created on the given month"
+msgstr ""
+"\"`creation_month(måned)`\" - passer kun for sider oprettet den givne måned"
+
+#. type: Bullet: '* '
+msgid "\"`creation_day(mday)`\" - or day of the month"
+msgstr "\"`creation_day(månedsdag)`\" - eller dag på måneden"
+
+#. type: Bullet: '* '
+msgid "\"`creation_year(year)`\" - or year"
+msgstr "\"`creation_year(år)`\" - eller år"
+
+#. type: Bullet: '* '
+msgid ""
+"\"`created_after(page)`\" - matches only pages created after the given page "
+"was created"
+msgstr ""
+"\"`created_after(side)`\" - passer kun for sider oprettet efter den givne "
+"side blev oprettet"
+
+#. type: Bullet: '* '
+msgid ""
+"\"`created_before(page)`\" - matches only pages created before the given "
+"page was created"
+msgstr ""
+"\"`created_before(side)`\" - passer kun for sider oprettet før den givne "
+"side blev oprettet"
+
+#. type: Bullet: '* '
+msgid ""
+"\"`glob(someglob)`\" - matches pages that match the given glob. Just writing "
+"the glob by itself is actually a shorthand for this function."
+msgstr ""
+"\"`glob(nogetglob)`\" - passer for sider som passer for det givne glob. Blot "
+"at skrive glob'et alene er faktisk en genvej til denne funktion."
+
+#. type: Bullet: '* '
+msgid ""
+"\"`internal(glob)`\" - like `glob()`, but matches even internal-use pages "
+"that globs do not usually match."
+msgstr ""
+"\"`internal(glob)`\" - lissom `glob()`, men passer også for internt anvendte "
+"sider som glob normalt ikke passer for."
+
+#. type: Bullet: '* '
+msgid ""
+"\"`title(glob)`\", \"`author(glob)`\", \"`authorurl(glob)`\", \"`license"
+"(glob)`\", \"`copyright(glob)`\" - match pages that have the given metadata, "
+"matching the specified glob."
+msgstr ""
+"\"`title(glob)`\", \"`author(glob)`\", \"`authorurl(glob)`\", \"`license"
+"(glob)`\", \"`copyright(glob)`\" - passer for sider med de givne metadata, "
+"som passer for det angivne glob."
+
+#. type: Bullet: '* '
+msgid ""
+"\"`user(username)`\" - tests whether a modification is being made by a user "
+"with the specified username. If openid is enabled, an openid can also be put "
+"here."
+msgstr ""
+"\"`user(brugernavn)`\" - tester hvorvidt en ændring foretages af en bruger "
+"med det angivne  brugernavn. Hvis openid er aktiveret, kan en openid også "
+"bruges her."
+
+#. type: Bullet: '* '
+msgid ""
+"\"`admin()`\" - tests whether a modification is being made by one of the "
+"wiki admins."
+msgstr ""
+"\"`admin()`\" - tester hvorvidt en ændring foretages af en af wiki-"
+"administratorerne."
+
+#. type: Bullet: '* '
+msgid ""
+"\"`ip(address)`\" - tests whether a modification is being made from the "
+"specified IP address."
+msgstr ""
+"\"`ip(adresse)`\" - tester hvorvidt en ændring foretages fra den angivne IP-"
+"adresse."
+
+#. type: Bullet: '* '
+msgid ""
+"\"`postcomment(glob)`\" - matches only when comments are being posted to a "
+"page matching the specified glob"
+msgstr ""
+"\"`postcomment(glob)`\" - passer kun når kommentarer er blevet indsendt "
+"til en side som passer for det angivne glob"
+
+#. type: Plain text
+msgid ""
+"For example, to match all pages in a blog that link to the page about music "
+"and were written in 2005:"
+msgstr ""
+"For eksempelvis at passe for alle sider i en blog som henviser til en side "
+"om musik og som blev skrevet i 2005:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\tblog/* and link(music) and creation_year(2005)\n"
+msgstr "\tblog/* and link(musik) and creation_year(2005)\n"
+
+#. type: Plain text
+msgid ""
+"Note the use of \"and\" in the above example, that means that only pages "
+"that match each of the three expressions match the whole. Use \"and\" when "
+"you want to combine expression like that; \"or\" when it's enough for a page "
+"to match one expression. Note that it doesn't make sense to say \"index and "
+"SandBox\", since no page can match both expressions."
+msgstr ""
+"Bemærk brugen af \"and\" i eksemplet ovenfor (\"and\" betyder \"og\" på "
+"engelsk), som betyder at kun sider der passer for hvert af de tre udtryk "
+"passer for det hele. Brug \"and\" når du vil kombinere udtryk på den måde; "
+"\"or\" når det er nok for en side at den passer for ét udtryk. Bemærk at det "
+"ikke giver mening at sige \"index and SandBox\", da ingen sider kan passe "
+"for begge udtryk."
+
+#. type: Plain text
+msgid ""
+"More complex expressions can also be created, by using parentheses for "
+"grouping. For example, to match pages in a blog that are tagged with either "
+"of two tags, use:"
+msgstr ""
+"Mere komplekse udtryk kan dannes ved at gruppere med paranteser. Eksempelvis "
+"passer dette for sider i en blog som er mærket af med en af to mærkater:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\tblog/* and (tagged(foo) or tagged(bar))\n"
+msgstr "\tblog/* and (tagged(foo) or tagged(bar))\n"
+
+#. type: Plain text
+msgid ""
+"Note that page names in PageSpecs are matched against the absolute filenames "
+"of the pages in the wiki, so a pagespec \"foo\" used on page \"a/b\" will "
+"not match a page named \"a/foo\" or \"a/b/foo\". To match relative to the "
+"directory of the page containing the pagespec, you can use \"./\". For "
+"example, \"./foo\" on page \"a/b\" matches page \"a/foo\"."
+msgstr ""
+"Bemærk at PageSpecs for sidenavne afstemmes som de absolutte filnavne for "
+"siderne i wikien, så et pagespec \"foo\" brugt på siden \"a/b\" vil ikke "
+"passe for siderne navngivet \"a/foo\" eller \"a/b/foo\". For at afstemme "
+"relativt til samme mappe som siden der indeholder pagespec'et kan du bruge "
+"\"./\". Eksempelvis passer \"./foo\" på siden \"a/b\" for siden \"a/foo\"."
diff --git a/po/underlays/basewiki/ikiwiki/pagespec/attachment.da.po b/po/underlays/basewiki/ikiwiki/pagespec/attachment.da.po
new file mode 100644 (file)
index 0000000..6f3d286
--- /dev/null
@@ -0,0 +1,120 @@
+# Danish translation of basewiki/ikiwiki/pagespec/attachment page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[[!if test=\"enabled(attachment)\"\n"
+"     then=\"This wiki has attachments **enabled**.\"\n"
+"     else=\"This wiki has attachments **disabled**.\"]]\n"
+msgstr ""
+"[[!if test=\"enabled(attachment)\"\n"
+"     then=\"Denne wiki har vedhæftninger **aktiveret**.\"\n"
+"     else=\"Denne wiki har vedhæftninger **deaktiveret**.\"]]\n"
+
+#. type: Plain text
+msgid ""
+"If attachments are enabled, the wiki admin can control what types of "
+"attachments will be accepted, via the `allowed_attachments` configuration "
+"setting."
+msgstr ""
+"Hvis vedhæftninger er aktiveret, kan wiki-administratoren styre hvilke typer "
+"vedhæftninger der vil blive accepteret gennem opsætningsindstillingen "
+"`allowed_attachments`."
+
+#. type: Plain text
+msgid ""
+"For example, to limit arbitrary files to 50 kilobytes, but allow larger mp3 "
+"files to be uploaded by joey into a specific directory, and check all "
+"attachments for viruses, something like this could be used:"
+msgstr ""
+"Som eksempel, for at begrænse vilkårlige filer til 50 kilobytes, men tillade "
+"større mp3-filer at blive lagt op af joey til en bestemt mappe, og checke "
+"alle vedhæftninger for vira, kunne noget i stil med dette bruges:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\tvirusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or (!ispage() and maxsize(50kb)))\n"
+msgstr "\tvirusfree() and ((user(joey) and podcast/*.mp3 and mimetype(audio/mpeg) and maxsize(15mb)) or (!ispage() and maxsize(50kb)))\n"
+
+#. type: Plain text
+msgid ""
+"The regular [[ikiwiki/PageSpec]] syntax is expanded with the following "
+"additional tests:"
+msgstr ""
+"Den normale [[ikiwiki/PageSpec]]-syntaks er udvidet med følgende yderligere "
+"tests:"
+
+#. type: Bullet: '* '
+msgid ""
+"\"`maxsize(size)`\" - tests whether the attachment is no larger than the "
+"specified size. The size defaults to being in bytes, but \"kb\", \"mb\", \"gb"
+"\" etc can be used to specify the units."
+msgstr ""
+"\"`maxsize(størrelse)`\" - tester hvorvidt vedhæftningen højst fylder den "
+"angivne størrelse. Størrelsen angives som standard i bytes, men \"kb\", \"mb"
+"\", \"gb\" osv. kan bruges til at angive enheder."
+
+#. type: Bullet: '* '
+msgid ""
+"\"`minsize(size)`\" - tests whether the attachment is no smaller than the "
+"specified size."
+msgstr ""
+"\"`minsize(størrelse)`\" - tester hvorvidt størrelsen mindst fylder den "
+"angivne størrelse."
+
+#. type: Bullet: '* '
+msgid ""
+"\"`ispage()`\" - tests whether the attachment will be treated by ikiwiki as "
+"a wiki page. (Ie, if it has an extension of \".mdwn\", or of any other "
+"enabled page format)."
+msgstr ""
+"\"`ispage()`\" - tester hvorvidt vedhæftningen bliver håndteret af ikiwiki "
+"som en wikiside. (altså om den har endelsen \".mdwn\", eller et hvilket som "
+"helst andet aktiveret sideformat)."
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  So, if you don't want to allow wiki pages to be uploaded as attachments,\n"
+"  use `!ispage()` ; if you only want to allow wiki pages to be uploaded\n"
+"  as attachments, use `ispage()`.\n"
+msgstr ""
+"  Derfor, hvis du ikke vil tillade wikisider at blive lagt op som vedhæftninger,\n"
+"  så brug `!ispage()` ; hvis du kun vil tillade wikisider at blive lagt op som\n"
+"  vedhæftninger, så brug `ispage()`.\n"
+
+#. type: Bullet: '* '
+msgid ""
+"\"`mimetype(foo/bar)`\" - checks the MIME type of the attachment. You can "
+"include a glob in the type, for example `mimetype(image/*)`."
+msgstr ""
+"\"`mimetype(foo/bar)`\" - checker MIME-typen for vedhæftningen. Du kan "
+"angive et glob som type, eksampelvis `mimetype(image/*)`."
+
+#. type: Bullet: '* '
+msgid "\"`virusfree()`\" - checks the attachment with an antiviral program."
+msgstr "\"`virusfree()`\" - checker vedhæftningen med et antivirusprogram."
diff --git a/po/underlays/basewiki/ikiwiki/pagespec/po.da.po b/po/underlays/basewiki/ikiwiki/pagespec/po.da.po
new file mode 100644 (file)
index 0000000..b719d25
--- /dev/null
@@ -0,0 +1,65 @@
+# Danish translation of basewiki/ikiwiki/pagespec/po page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-20 11:33+0300\n"
+"PO-Revision-Date: 2009-07-20 11:41+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[[!if test=\"enabled(po)\"\n"
+"     then=\"This wiki has po support **enabled**.\"\n"
+"     else=\"This wiki has po support **disabled**.\"]]\n"
+msgstr ""
+"[[!if test=\"enabled(po)\"\n"
+"     then=\"Denne wiki har oversættelser **aktiveret**.\"\n"
+"     else=\"Denne wiki har oversættelser **deaktiveret**.\"]]\n"
+
+#. type: Plain text
+msgid ""
+"If the [[!iki plugins/po desc=po]] plugin is enabled, the regular [[ikiwiki/"
+"PageSpec]] syntax is expanded with the following additional tests that can "
+"be used to improve user navigation in a multi-lingual wiki:"
+msgstr ""
+"Hvis udvidelsen [[!iki plugins/po desc=po]] er aktiveret er den normale "
+"[[ikiwiki/PageSpec]]-syntaks udvidet med følgende yderligere tests som kan "
+"bruges til at forbedre brugernavigation i en flersproget wiki:"
+
+#. type: Bullet: '* '
+msgid ""
+"\"`lang(LL)`\" - tests whether a page is written in the language specified "
+"as a ISO639-1 (two-letter) language code."
+msgstr ""
+"\"`lang(LL)`\" - tester hvorvidt en side er skrevet i sproget angivet som en "
+"ISO639-1 (to-bogstavs) sprogkode."
+
+#. type: Bullet: '* '
+msgid ""
+"\"`currentlang()`\" - tests whether a page is written in the same language "
+"as the current page."
+msgstr ""
+"\"`currentlang()`\" - tester hvorvidt en side er skrevet i samme sprog som "
+"den nuværende side."
+
+#. type: Plain text
+msgid ""
+"Note that every non-po page is considered to be written in "
+"`po_master_language`, as specified in `ikiwiki.setup`."
+msgstr ""
+"Bemærk at enhver ikke-po side antages at være skrevet i "
+"`po_master_language`, som angivet i `ikiwiki.setup`."
diff --git a/po/underlays/basewiki/ikiwiki/preprocessordirective.da.po b/po/underlays/basewiki/ikiwiki/preprocessordirective.da.po
new file mode 100644 (file)
index 0000000..4eee728
--- /dev/null
@@ -0,0 +1,40 @@
+# Danish translation of basewiki/ikiwiki/preprocessordirective page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta redir=ikiwiki/directive delay=10]]\n"
+msgstr "[[!meta redir=ikiwiki/directive delay=10]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+msgid ""
+"This page has moved to [[ikiwiki/directive|ikiwiki/directive]]. Please "
+"update your links, as this redirection page will be removed in a future "
+"ikiwiki release."
+msgstr ""
+"Denne side er flyttet til [[ikiwiki/directive|ikiwiki/directive]]. Opdatér "
+"dine henvisninger, da denne omdirigeringsside bliver fjernet i en fremtidig "
+"udgave af ikiwiki."
diff --git a/po/underlays/basewiki/ikiwiki/searching.da.po b/po/underlays/basewiki/ikiwiki/searching.da.po
new file mode 100644 (file)
index 0000000..3d65812
--- /dev/null
@@ -0,0 +1,90 @@
+# Danish translation of basewiki/ikiwiki/searching page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[[!if test=\"enabled(search)\"\n"
+"then=\"This wiki has searching **enabled**.\"\n"
+"else=\"This wiki has searching **disabled**.\"]]\n"
+msgstr ""
+"[[!if test=\"enabled(search)\"\n"
+"then=\"Denne wiki har søgning **aktiveret**.\"\n"
+"else=\"Denne wiki har søgning **deaktiveret**.\"]]\n"
+
+#. type: Plain text
+msgid ""
+"If searching is enabled, you can enter search terms in the search field, as "
+"you'd expect. There are a few special things you can do to constuct more "
+"powerful searches."
+msgstr ""
+"Hvis søgning er aktiveret, kan du angive søgeudtryk i søgefeltet, som du "
+"ville forvente. Der er et par specielle ting du kan gøre for at konstruere "
+"mere effektive søgninger."
+
+#. type: Bullet: '* '
+msgid "To match a phrase, enclose it in double quotes."
+msgstr ""
+"Put gåseøjne omkring nogle ord for at søge efter dem som én formulering."
+
+#. type: Bullet: '* '
+msgid "`AND` can be used to search for documents containing two expressions."
+msgstr ""
+"`AND` kan bruges til at søge efter dokumenter som indeholder to udtryk."
+
+#. type: Bullet: '* '
+msgid ""
+"`OR` can be used to search for documents containing either one of two "
+"expressions."
+msgstr ""
+"`OR` kan bruges ti at søge efter dokumenter som indeholder ethvert af to "
+"udtryk."
+
+#. type: Bullet: '* '
+msgid ""
+"Parentheses can be used to build up complicated search expressions. For "
+"example, \"(foo AND bar) OR (me AND you)\""
+msgstr ""
+"Parenteser kan bruges til at opbygge komplicerede søgeformuleringer. "
+"Eksempelvis \"(foo AND bar) OR (mig AND dig)\""
+
+#. type: Bullet: '* '
+msgid ""
+"Prefix a search term with \"-\" to avoid it from appearing in the results.  "
+"For example, \"-discussion\" will omit \"discussion\"."
+msgstr ""
+"Put \"-\" foran et søgeudtryk for at undgå det blandt resultaterne. "
+"Eksempelvis vil \"-discussion\" udelade \"discussion\"."
+
+#. type: Bullet: '* '
+msgid "To search for a page with a given title, use \"title:foo\"."
+msgstr "Brug \"title:foo\" til at søge efter en side med en given titel."
+
+#. type: Bullet: '* '
+msgid "To search for pages that contain a \"bar\" link, use \"link:bar\"."
+msgstr ""
+"Brug \"link:bar\" til at søge efter sider som indeholder henvisning til \"bar"
+"\"."
diff --git a/po/underlays/basewiki/ikiwiki/subpage.da.po b/po/underlays/basewiki/ikiwiki/subpage.da.po
new file mode 100644 (file)
index 0000000..0934350
--- /dev/null
@@ -0,0 +1,56 @@
+# Danish translation of basewiki/ikiwiki/subpage page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+msgid ""
+"ikiwiki supports placing pages in a directory hierarchy. For example, this "
+"page, [[SubPage]] has some related pages placed under it, like [[SubPage/"
+"LinkingRules]]. This is a useful way to add some order to your wiki rather "
+"than just having a great big directory full of pages."
+msgstr ""
+"ikiwiki understøtter placering af sider i et mappehierarki. Eksempelvis har "
+"denne side, [[UnderSide|SubPage]], nogle relaterede sider placeret under "
+"sig, bl.a. [[HenvisningsRegler|SubPage/LinkingRules]]. dette er en praktisk "
+"måde at bringe orden i din wiki fremfor blot at have een stor mappe fuld af "
+"sider."
+
+#. type: Plain text
+msgid ""
+"To add a SubPage, just make a subdirectory and put pages in it. For example, "
+"this page is SubPage.mdwn in this wiki's source, and there is also a SubPage "
+"subdirectory, which contains SubPage/LinkingRules.mdwn. Subpages can be "
+"nested as deeply as you'd like."
+msgstr ""
+"En [[UnderSide|SubPage]] oprettes ved blot at oprette undermappen og tilføje "
+"sider til den. Denne side er eksempelvis SubPage.mdwn i kildekoden til denne "
+"wiki, og der er også en SubPage undermappe, som indeholder SubPage/"
+"LinkingRules.mdwn. Undersider kan nedarves så dybt du har lyst."
+
+#. type: Plain text
+msgid "Linking to and from a SubPage is explained in [[LinkingRules]]."
+msgstr ""
+"Henvisninger til og fra en [[UnderSide||SubPage]] er forklaret under "
+"[[HenvisningsRegler||LinkingRules]]."
diff --git a/po/underlays/basewiki/ikiwiki/subpage/linkingrules.da.po b/po/underlays/basewiki/ikiwiki/subpage/linkingrules.da.po
new file mode 100644 (file)
index 0000000..01f854b
--- /dev/null
@@ -0,0 +1,107 @@
+# Danish translation of basewiki/ikiwiki/subpage/linkingrules page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+msgid ""
+"To link to or from a [[SubPage]], you can normally use a regular "
+"[[WikiLink]] that does not contain the name of the parent directory of the "
+"[[SubPage]]. Ikiwiki descends the directory hierarchy looking for a page "
+"that matches your link."
+msgstr ""
+"For at henvise til eller fra en [[underside|SubPage]] kan du normalt bruge "
+"en almindelig normal [[WikiLink]] som ikke indeholder navnet på den "
+"overliggende mappe til [[undersiden|SubPage]]. Ikiwiki gennemgår "
+"mappehierarkiet og kigger efter en side som passer til din henvisning."
+
+#. type: Plain text
+msgid ""
+"For example, if FooBar/SubPage links to \"OtherPage\", ikiwiki will first "
+"prefer pointing the link to FooBar/SubPage/OtherPage if it exists, next to "
+"FooBar/OtherPage and finally to OtherPage in the root of the wiki."
+msgstr ""
+"Hvis eksempelvis FooBar/UnderSide henviser til \"EnAndenSide\", vil ikiwiki "
+"først foretrække at knytte henvisningen til FooBar/UnderSide/EnAndenSide "
+"hvis den eksisterer, så til FooBar/EnAndenSide og til sidst til EnAndenSide "
+"i roden af wikien."
+
+#. type: Plain text
+msgid ""
+"Note that this means that if a link on FooBar/SomePage to \"OtherPage\" "
+"currently links to OtherPage, in the root of the wiki, and FooBar/OtherPage "
+"is created, the link will _change_ to point to FooBar/OtherPage. On the "
+"other hand, a link from BazBar to \"OtherPage\" would be unchanged by this "
+"creation of a [[SubPage]] of FooBar."
+msgstr ""
+"Bemærk at dette betyder, at hvis en henvisning fra FooBar/EnSide til "
+"\"EnAndenSide\" i øjeblikket henviser til EnAndenSide i roden af wikien, og "
+"FooBar/EnAndenSide oprettes, så vil henvisningen blive _ændret_ til at pege "
+"på FooBar/EnAndenSide. Omvendt vil en henvisning fra BazBar til \"EnAndenSide"
+"\" ikke blive berørt af oprettelsen af en [[underside|SubPage]] til FooBar."
+
+#. type: Plain text
+msgid ""
+"You can also specify a link that contains a directory name, like \"FooBar/"
+"OtherPage\" to more exactly specify what page to link to. This is the only "
+"way to link to an unrelated [[SubPage]]."
+msgstr ""
+"Du kan også angive en henvisning som indeholder et mappenavn, lissom "
+"\"FooBar/EnAndenSide\", for mere nøjagtigt at angive hvilken side der "
+"henvises til. Kun på den måde kan du henvise til en anden sides [[underside|"
+"SubPage]]."
+
+#. type: Plain text
+msgid ""
+"You can use this to, for example, to link from BazBar to \"FooBar/SubPage\", "
+"or from BazBar/SubPage to \"FooBar/SubPage\"."
+msgstr ""
+"Du kan bruge dette til eksempelvis at henvise fra BazBar til \"FooBar/"
+"UnderSide\", eller fra BazBar/UnderSide til \"FooBar/UnderSide\"."
+
+#. type: Plain text
+msgid ""
+"You can also use \"/\" at the start of a link, to specify exactly which page "
+"to link to, when there are multiple pages with similar names and the link "
+"goes to the wrong page by default. For example, linking from \"FooBar/SubPage"
+"\" to \"/OtherPage\" will link to the \"OtherPage\" in the root of the wiki, "
+"even if there is a \"FooBar/OtherPage\"."
+msgstr ""
+"Du kan også bruge \"/\" i begyndelsen af en henvisning, til at angive "
+"nøjagtigt hvilken side der henvises til, når der er flere mulige sider med "
+"lignende navne og henvisningen ender forkert som standard. Eksempelvis vil "
+"en henvisning fra \"FooBar/UnderSide\" til \"/EnAndenSide\" henvise til "
+"\"EnAndenSide\" i roden af wikien, selvom der er en \"FooBar/EnAndenSide\"."
+
+#. type: Plain text
+msgid ""
+"Also, if the wiki is configured with a userdir, you can link to pages within "
+"the userdir without specifying a path to them. This is to allow for easy "
+"linking to a user's page in the userdir, to sign a comment. These links are "
+"checked for last of all."
+msgstr ""
+"Desuden kan du, hvis wikien er opsat med \"userdir\", henvise til sider "
+"under hjemmemapper uden at angive en sti til dem. Dette er for at tillade "
+"enkel henvisning til en brugers side i hjemmemappen, som signatur ved en "
+"kommentar. Sådanne henvisninger prøves allersidst."
diff --git a/po/underlays/basewiki/ikiwiki/wikilink.da.po b/po/underlays/basewiki/ikiwiki/wikilink.da.po
new file mode 100644 (file)
index 0000000..8c56584
--- /dev/null
@@ -0,0 +1,110 @@
+# Danish translation of wikilink page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-22 21:28+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+msgid ""
+"WikiLinks provide easy linking between pages of the wiki. To create a "
+"[[WikiLink]], just put the name of the page to link to in double brackets.  "
+"For example `\\[[WikiLink]]`."
+msgstr ""
+"WikiLinks gør det muligt enkelt at lave henvisninger (linke) mellem sider i\n"
+"wikien. Opret en [[WikiLink]] ved at skrive siden du vil henvise til med\n"
+"dobbelte klammer omkring. Ekempelvis `\\[[WikiLink]]`.\n"
+
+#. type: Plain text
+msgid ""
+"If you ever need to write something like `\\[[WikiLink]]` without creating a "
+"wikilink, just prefix it with a `\\`, like `\\\\[[WikiLink]]`."
+msgstr ""
+"Hvis du vil skrive noget i stil med `\\[[WikiLink]]` uden at det skal blive "
+"til en wikilink, så put en `\\` (backslash) foran, som i `\\\\[[WikiLink]]`."
+
+#. type: Plain text
+msgid ""
+"There are some special [[SubPage/LinkingRules]] that come into play when "
+"linking between [[SubPages|SubPage]]."
+msgstr ""
+"Specielle [[henvisningsregler|SubPage/LinkingRules]] træder i kraft når der "
+"henvises på tværs af [[undersider|SubPage]]."
+
+#. type: Plain text
+msgid ""
+"Also, if the file linked to by a WikiLink looks like an image, it will be "
+"displayed inline on the page."
+msgstr ""
+"Desuden, hvis filen der henvises til med en WikiLink ligner et billede, vil "
+"det blive vist indlejret i siden."
+
+#. type: Plain text
+msgid ""
+"WikiLinks are matched with page names in a case-insensitive manner, so you "
+"don't need to worry about getting the case the same, and can capitalise "
+"links at the start of a sentence, and so on."
+msgstr ""
+"WikiLinks knyttes til sidenavne uden skelen til store og små bogstaver, så "
+"du behøver ikke at bekymre dig om dette, og kan anvende stort "
+"begyndelsesbogstav i begyndelsen af en sætning o.l."
+
+#. type: Plain text
+msgid ""
+"It's also possible to write a WikiLink that uses something other than the "
+"page name as the link text. For example `\\[[foo_bar|SandBox]]` links to the "
+"SandBox page, but the link will appear like this: [[foo_bar|SandBox]]."
+msgstr ""
+"Det er også muligt at skrive en WikiLink som bruger noget andet end "
+"sidenavnet som henvisningstekst. Eksempelvis henviser `\\[[foo_bar|SandBox]]"
+"` til sandkassen, men henvisningen fremstår som her: [[foo_bar|SandBox]]."
+
+#. type: Plain text
+msgid ""
+"To link to an anchor inside a page, you can use something like `"
+"\\[[WikiLink#foo]]` ."
+msgstr ""
+"For at henvise til et anker inde på en side, kan du bruge noget i stil med `"
+"\\[[WikiLink#foo]]` ."
+
+#. type: Title ##
+#, no-wrap
+msgid "Directives and WikiLinks"
+msgstr "Direktiver og wikilinks"
+
+#. type: Plain text
+msgid ""
+"ikiwiki has two syntaxes for [[directives|directive]].  The older syntax "
+"used spaces to distinguish between directives and wikilinks; as a result, "
+"with that syntax in use, you cannot use spaces in WikiLinks, and must "
+"replace spaces with underscores.  The newer syntax, enabled with the "
+"`prefix_directives` option in an ikiwiki setup file, prefixes directives "
+"with `!`, and thus does not prevent links with spaces.  Future versions of "
+"ikiwiki will turn this option on by default."
+msgstr ""
+"ikiwiki har to syntakser til [[direktiver|directive]]. Den ældre syntaks "
+"brugte mellemrum til at skelne mellem direktiver og wikilinks; det medfører, "
+"at når den syntaks anvendes kan du ikke bruge mellemrum i WikiLinks, og må "
+"erstatte mellemrum med understregning. Den nyere syntaks, aktiveret med "
+"valget `prefix_directives` i en ikiwiki-opsætningsfil, sætter `!` foran "
+"direktiver, og forhindrer derfor ikke henvisninger med mellemrum. Fremtidige "
+"versioner af ikiwiki vil aktivere dette valg som standard."
diff --git a/po/underlays/basewiki/index.da.po b/po/underlays/basewiki/index.da.po
new file mode 100644 (file)
index 0000000..8835e9b
--- /dev/null
@@ -0,0 +1,34 @@
+# Danish translation of basewiki/index page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-22 21:28+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid "Welcome to your new wiki."
+msgstr "Velkommen til din nye wiki."
+
+#. type: Plain text
+msgid "All wikis are supposed to have a [[SandBox]], so this one does too."
+msgstr ""
+"Alle wikier forventes at have en [[SandKasse|SandBox]], så det har denne "
+"også."
+
+#. type: Plain text
+msgid "This wiki is powered by [ikiwiki](http://ikiwiki.info/)."
+msgstr "Denne wiki er drevet af [ikiwiki](http://ikiwiki.info/)."
diff --git a/po/underlays/basewiki/recentchanges.da.po b/po/underlays/basewiki/recentchanges.da.po
new file mode 100644 (file)
index 0000000..1db466a
--- /dev/null
@@ -0,0 +1,43 @@
+# Danish translation of basewiki/recentchanges page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!if test=\"enabled(meta)\" then=\"\"\"\n"
+msgstr "[[!if test=\"enabled(meta)\" then=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta title=\"RecentChanges\"]]\n"
+msgstr "[[!meta title=\"SenesteÆndringer\"]]\n"
+
+#. type: Plain text
+msgid "Recent changes to this wiki:"
+msgstr "Seneste ændringer til denne wiki:"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[[!inline pages=\"internal(recentchanges/change_*) and !*/Discussion\" \n"
+"template=recentchanges show=0]]\n"
+msgstr ""
+"[[!inline pages=\"internal(recentchanges/change_*) and !*/Discussion\" \n"
+"template=recentchanges show=0]]\n"
diff --git a/po/underlays/basewiki/sandbox.da.po b/po/underlays/basewiki/sandbox.da.po
new file mode 100644 (file)
index 0000000..7930e51
--- /dev/null
@@ -0,0 +1,96 @@
+# Danish translation of basewiki/sandbox page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-22 21:28+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"This is the SandBox, a page anyone can edit to learn how to use the wiki."
+msgstr ""
+"Dette er [[SandKassen|SandBox]], en side som hvem som helst kan redigere for "
+"at lære hvordan en wiki bruges."
+
+#. type: Plain text
+msgid "Here's a paragraph."
+msgstr "Her er et afsnit."
+
+#. type: Plain text
+msgid "Here's another one with *emphasised* text."
+msgstr "her er et andet afsnit med *fremhævet* tekst."
+
+#. type: Title #
+#, no-wrap
+msgid "Header"
+msgstr "Overskrift"
+
+#. type: Title ##
+#, no-wrap
+msgid "Subheader"
+msgstr "Underoverskrift"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"> This is a blockquote.\n"
+">\n"
+"> This is the first level of quoting.\n"
+">\n"
+"> > This is nested blockquote.\n"
+">\n"
+"> Back to the first level.\n"
+msgstr ""
+"> Dette er et citat-område\n"
+">\n"
+"> Dette er første niveau citering.\n"
+">\n"
+"> > Dette er et indlejret citat-område.\n"
+">\n"
+"> Tilbage til det første niveau.\n"
+
+#. type: Plain text
+msgid "Numbered list"
+msgstr "Nummereret liste"
+
+#. type: Bullet: '1. '
+msgid "First item."
+msgstr "Første emne."
+
+#. type: Bullet: '1. '
+msgid "Another."
+msgstr "Et andet."
+
+#. type: Bullet: '1. '
+msgid "And another.."
+msgstr "Og et andet.."
+
+#. type: Plain text
+msgid "Bulleted list"
+msgstr "Unummereret liste"
+
+#. type: Bullet: '* '
+msgid "*item*"
+msgstr "*emne*"
+
+#. type: Bullet: '* '
+msgid "item"
+msgstr "emne"
+
+#. type: Plain text
+msgid "[[ikiwiki/WikiLink]]"
+msgstr "[[ikiwiki/WikiLink]]"
diff --git a/po/underlays/basewiki/shortcuts.da.po b/po/underlays/basewiki/shortcuts.da.po
new file mode 100644 (file)
index 0000000..f6907d9
--- /dev/null
@@ -0,0 +1,229 @@
+# Danish translation of shortcuts page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[[!if test=\"enabled(shortcut)\"\n"
+"     then=\"This wiki has shortcuts **enabled**.\"\n"
+"     else=\"This wiki has shortcuts **disabled**.\"]]\n"
+msgstr ""
+"[[!if test=\"enabled(shortcut)\"\n"
+"     then=\"Denne wiki har genveje **aktiveret**.\"\n"
+"     else=\"Denne wiki har genveje **deaktiveret**.\"]]\n"
+
+#. type: Plain text
+msgid "Some examples of using shortcuts include:"
+msgstr "Nogle eksempler på brug af genveje:"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!google foo]]\n"
+"\t\\[[!wikipedia War_of_1812]]\n"
+"\t\\[[!debbug 12345]]\n"
+"\tCheck the \\[[!cia ikiwiki desc=\"CIA page for %s\"]].\n"
+msgstr ""
+"\t\\[[!google foo]]\n"
+"\t\\[[!wikipedia War_of_1812]]\n"
+"\t\\[[!debbug 12345]]\n"
+
+#. type: Plain text
+msgid "This page controls what shortcut links the wiki supports."
+msgstr "Denne side styrer hvilke genveje wikien understøtter."
+
+#. type: Bullet: '* '
+msgid "[[!shortcut name=google url=\"http://www.google.com/search?q=%s\"]]"
+msgstr "[[!shortcut name=google url=\"http://www.google.com/search?q=%s\"]]"
+
+#. type: Bullet: '* '
+msgid "[[!shortcut name=archive url=\"http://web.archive.org/*/%S\"]]"
+msgstr "[[!shortcut name=archive url=\"http://web.archive.org/*/%S\"]]"
+
+#. type: Bullet: '* '
+msgid "[[!shortcut name=gmap url=\"http://maps.google.com/maps?q=%s\"]]"
+msgstr "[[!shortcut name=gmap url=\"http://maps.google.com/maps?q=%s\"]]"
+
+#. type: Bullet: '* '
+msgid "[[!shortcut name=gmsg url=\"http://groups.google.com/groups?selm=%s\"]]"
+msgstr ""
+"[[!shortcut name=gmsg url=\"http://groups.google.com/groups?selm=%s\"]]"
+
+#. type: Bullet: '* '
+msgid "[[!shortcut name=wikipedia url=\"http://en.wikipedia.org/wiki/%s\"]]"
+msgstr "[[!shortcut name=wikipedia url=\"http://en.wikipedia.org/wiki/%s\"]]"
+
+#. type: Bullet: '* '
+msgid "[[!shortcut name=wikitravel url=\"http://wikitravel.org/en/%s\"]]"
+msgstr "[[!shortcut name=wikitravel url=\"http://wikitravel.org/en/%s\"]]"
+
+#. type: Bullet: '* '
+msgid "[[!shortcut name=wiktionary url=\"http://en.wiktionary.org/wiki/%s\"]]"
+msgstr "[[!shortcut name=wiktionary url=\"http://en.wiktionary.org/wiki/%s\"]]"
+
+#. type: Bullet: '* '
+msgid ""
+"[[!shortcut name=debbug url=\"http://bugs.debian.org/%s\" desc=\"bug #%s\"]]"
+msgstr ""
+"[[!shortcut name=debbug url=\"http://bugs.debian.org/%s\" desc=\"bug #%s\"]]"
+
+#. type: Bullet: '* '
+msgid ""
+"[[!shortcut name=deblist url=\"http://lists.debian.org/debian-%s\" desc="
+"\"debian-%s@lists.debian.org\"]]"
+msgstr ""
+"[[!shortcut name=deblist url=\"http://lists.debian.org/debian-%s\" desc="
+"\"debian-%s@lists.debian.org\"]]"
+
+#. type: Bullet: '* '
+msgid "[[!shortcut name=debpkg url=\"http://packages.debian.org/%s\"]]"
+msgstr "[[!shortcut name=debpkg url=\"http://packages.debian.org/%s\"]]"
+
+#. type: Bullet: '* '
+msgid "[[!shortcut name=debpkgsid url=\"http://packages.debian.org/sid/%s\"]]"
+msgstr "[[!shortcut name=debpkgsid url=\"http://packages.debian.org/sid/%s\"]]"
+
+#. type: Bullet: '* '
+msgid "[[!shortcut name=debpts url=\"http://packages.qa.debian.org/%s\"]]"
+msgstr "[[!shortcut name=debpts url=\"http://packages.qa.debian.org/%s\"]]"
+
+#. type: Bullet: '* '
+msgid ""
+"[[!shortcut name=debmsg url=\"http://lists.debian.org/msgid-search/%s\"]]"
+msgstr ""
+"[[!shortcut name=debmsg url=\"http://lists.debian.org/msgid-search/%s\"]]"
+
+#. type: Bullet: '* '
+msgid ""
+"[[!shortcut name=debrt url=\"https://rt.debian.org/Ticket/Display.html?id=%s"
+"\"]]"
+msgstr ""
+"[[!shortcut name=debrt url=\"https://rt.debian.org/Ticket/Display.html?id=%s"
+"\"]]"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"* [[!shortcut name=debss url=\"http://snapshot.debian.net/package/%s\"]]\n"
+"  * Usage: `\\[[!debss package]]`, `\\[[!debss package#version]]`, or `\\[[!debss package/version]]`.  See http://snapshot.debian.net for details.\n"
+"* [[!shortcut name=debwiki url=\"http://wiki.debian.org/%s\"]]\n"
+"* [[!shortcut name=fdobug url=\"https://bugs.freedesktop.org/show_bug.cgi?id=%s\" desc=\"freedesktop.org bug #%s\"]]\n"
+"* [[!shortcut name=fdolist url=\"http://lists.freedesktop.org/mailman/listinfo/%s\" desc=\"%s@lists.freedesktop.org\"]]\n"
+"* [[!shortcut name=gnomebug url=\"http://bugzilla.gnome.org/show_bug.cgi?id=%s\" desc=\"GNOME bug #%s\"]]\n"
+"* [[!shortcut name=linuxbug url=\"http://bugzilla.kernel.org/show_bug.cgi?id=%s\" desc=\"Linux bug #%s\"]]\n"
+"* [[!shortcut name=mozbug url=\"https://bugzilla.mozilla.org/show_bug.cgi?id=%s\" desc=\"Mozilla bug #%s\"]]\n"
+"* [[!shortcut name=gnulist url=\"http://lists.gnu.org/mailman/listinfo/%s\" desc=\"%s@gnu.org\"]]\n"
+"* [[!shortcut name=marcmsg url=\"http://marc.info/?i=%s\"]]\n"
+"* [[!shortcut name=marclist url=\"http://marc.info/?l=%s\"]]\n"
+"* [[!shortcut name=gmane url=\"http://dir.gmane.org/gmane.%s\" desc=\"gmane.%s\"]]\n"
+"* [[!shortcut name=gmanemsg url=\"http://mid.gmane.org/%s\"]]\n"
+"* [[!shortcut name=cpan url=\"http://search.cpan.org/search?mode=dist&query=%s\"]]\n"
+"* [[!shortcut name=ctan url=\"http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s\"]]\n"
+"* [[!shortcut name=hoogle url=\"http://haskell.org/hoogle/?q=%s\"]]\n"
+"* [[!shortcut name=iki url=\"http://ikiwiki.info/%S/\"]]\n"
+"* [[!shortcut name=ljuser url=\"http://%s.livejournal.com/\"]]\n"
+"* [[!shortcut name=rfc url=\"http://www.ietf.org/rfc/rfc%s.txt\" desc=\"RFC %s\"]]\n"
+"* [[!shortcut name=c2 url=\"http://c2.com/cgi/wiki?%s\"]]\n"
+"* [[!shortcut name=meatballwiki url=\"http://www.usemod.com/cgi-bin/mb.pl?%s\"]]\n"
+"* [[!shortcut name=emacswiki url=\"http://www.emacswiki.org/cgi-bin/wiki/%s\"]]\n"
+"* [[!shortcut name=haskellwiki url=\"http://haskell.org/haskellwiki/%s\"]]\n"
+"* [[!shortcut name=dict url=\"http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s\"]]\n"
+"* [[!shortcut name=imdb url=\"http://imdb.com/find?q=%s\"]]\n"
+"* [[!shortcut name=gpg url=\"http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s\"]]\n"
+"* [[!shortcut name=perldoc url=\"http://perldoc.perl.org/search.html?q=%s\"]]\n"
+"* [[!shortcut name=whois url=\"http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain\"]]\n"
+"* [[!shortcut name=cve url=\"http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s\"]]\n"
+"* [[!shortcut name=cia url=\"http://cia.vc/stats/project/%s\"]]\n"
+"* [[!shortcut name=ciauser url=\"http://cia.vc/stats/user/%s\"]]\n"
+"* [[!shortcut name=flickr url=\"http://www.flickr.com/photos/%s\"]]\n"
+"* [[!shortcut name=man url=\"http://linux.die.net/man/%s\"]]\n"
+"* [[!shortcut name=ohloh url=\"http://www.ohloh.net/projects/%s\"]]\n"
+msgstr ""
+"* [[!shortcut name=debss url=\"http://snapshot.debian.net/package/%s\"]]\n"
+"  * Brug: `\\[[!debss package]]`, `\\[[!debss package#version]]`, eller `\\[[!debss package/version]]`.  Se http://snapshot.debian.net for detaljer.\n"
+"* [[!shortcut name=debwiki url=\"http://wiki.debian.org/%s\"]]\n"
+"* [[!shortcut name=fdobug url=\"https://bugs.freedesktop.org/show_bug.cgi?id=%s\" desc=\"freedesktop.org bug #%s\"]]\n"
+"* [[!shortcut name=fdolist url=\"http://lists.freedesktop.org/mailman/listinfo/%s\" desc=\"%s@lists.freedesktop.org\"]]\n"
+"* [[!shortcut name=gnomebug url=\"http://bugzilla.gnome.org/show_bug.cgi?id=%s\" desc=\"GNOME bug #%s\"]]\n"
+"* [[!shortcut name=linuxbug url=\"http://bugzilla.kernel.org/show_bug.cgi?id=%s\" desc=\"Linux bug #%s\"]]\n"
+"* [[!shortcut name=mozbug url=\"https://bugzilla.mozilla.org/show_bug.cgi?id=%s\" desc=\"Mozilla bug #%s\"]]\n"
+"* [[!shortcut name=gnulist url=\"http://lists.gnu.org/mailman/listinfo/%s\" desc=\"%s@gnu.org\"]]\n"
+"* [[!shortcut name=marcmsg url=\"http://marc.info/?i=%s\"]]\n"
+"* [[!shortcut name=marclist url=\"http://marc.info/?l=%s\"]]\n"
+"* [[!shortcut name=gmane url=\"http://dir.gmane.org/gmane.%s\" desc=\"gmane.%s\"]]\n"
+"* [[!shortcut name=gmanemsg url=\"http://mid.gmane.org/%s\"]]\n"
+"* [[!shortcut name=cpan url=\"http://search.cpan.org/search?mode=dist&query=%s\"]]\n"
+"* [[!shortcut name=ctan url=\"http://tug.ctan.org/cgi-bin/ctanPackageInformation.py?id=%s\"]]\n"
+"* [[!shortcut name=hoogle url=\"http://haskell.org/hoogle/?q=%s\"]]\n"
+"* [[!shortcut name=iki url=\"http://ikiwiki.info/%S/\"]]\n"
+"* [[!shortcut name=ljuser url=\"http://%s.livejournal.com/\"]]\n"
+"* [[!shortcut name=rfc url=\"http://www.ietf.org/rfc/rfc%s.txt\" desc=\"RFC %s\"]]\n"
+"* [[!shortcut name=c2 url=\"http://c2.com/cgi/wiki?%s\"]]\n"
+"* [[!shortcut name=meatballwiki url=\"http://www.usemod.com/cgi-bin/mb.pl?%s\"]]\n"
+"* [[!shortcut name=emacswiki url=\"http://www.emacswiki.org/cgi-bin/wiki/%s\"]]\n"
+"* [[!shortcut name=haskellwiki url=\"http://haskell.org/haskellwiki/%s\"]]\n"
+"* [[!shortcut name=dict url=\"http://www.dict.org/bin/Dict?Form=Dict1&Strategy=*&Database=*&Query=%s\"]]\n"
+"* [[!shortcut name=imdb url=\"http://imdb.com/find?q=%s\"]]\n"
+"* [[!shortcut name=gpg url=\"http://pgpkeys.mit.edu:11371/pks/lookup?op=vindex&exact=on&search=0x%s\"]]\n"
+"* [[!shortcut name=perldoc url=\"http://perldoc.perl.org/search.html?q=%s\"]]\n"
+"* [[!shortcut name=whois url=\"http://reports.internic.net/cgi/whois?whois_nic=%s&type=domain\"]]\n"
+"* [[!shortcut name=cve url=\"http://cve.mitre.org/cgi-bin/cvename.cgi?name=%s\"]]\n"
+"* [[!shortcut name=cia url=\"http://cia.vc/stats/project/%s\"]]\n"
+"* [[!shortcut name=ciauser url=\"http://cia.vc/stats/user/%s\"]]\n"
+"* [[!shortcut name=flickr url=\"http://www.flickr.com/photos/%s\"]]\n"
+"* [[!shortcut name=man url=\"http://linux.die.net/man/%s\"]]\n"
+"* [[!shortcut name=ohloh url=\"http://www.ohloh.net/projects/%s\"]]\n"
+
+#. type: Plain text
+msgid ""
+"To add a new shortcut, use the `shortcut` [[ikiwiki/directive]]. In the url, "
+"\"%s\" is replaced with the text passed to the named shortcut, after url-"
+"encoding it, and '%S' is replaced with the raw, non-encoded text. The "
+"optional `desc` parameter controls the description of the link."
+msgstr ""
+"Tilføj en ny genvej med [[direktivet|ikiwiki/directive]] `shortcut`. I URLen "
+"erstattes \"%s\" med teksten overdraget til den navngivne genvej, efter URL-"
+"omkodning af den, og '%S' erstattes med den rå, ukodede tekst. Den valgfri "
+"`desc`-parameter styrer beskrivelsen af henvisningen."
+
+#. type: Plain text
+msgid ""
+"Remember that the `name` you give the shortcut will become a new [[ikiwiki/"
+"directive]].  Avoid using a `name` that conflicts with an existing "
+"directive.  These directives also accept a `desc` parameter that will "
+"override the one provided at definition time."
+msgstr ""
+"Husk at `name`-parameteren som du tildeler genvejen bliver et nyt [[direktiv|"
+"ikiwiki/directive]]. Undgå et navn som er i strid med et eksisterende "
+"direktiv. Disse direktiver accepterer også en `desc`-parameter som vil "
+"overskygge den der blev angivet ved definitionen."
+
+#. type: Plain text
+msgid ""
+"If you come up with a shortcut that you think others might find useful, "
+"consider contributing it to the [shortcuts page on the ikiwiki ikiwiki]"
+"(http://ikiwiki.info/shortcuts/), so that future versions of ikiwiki will "
+"include your shortcut in the standard underlay."
+msgstr ""
+"Hvis du finder på en genvej som du mener andre kunne få glæde af også, kan "
+"du overveje at bidrage med den til [shortcuts-siden på ikiwiki ikiwikien]"
+"(http://ikiwiki.info/shortcuts/), så fremtidige versioner af ikiwiki "
+"inkluderer din genvej i standardunderlaget."
diff --git a/po/underlays/basewiki/templates.da.po b/po/underlays/basewiki/templates.da.po
new file mode 100644 (file)
index 0000000..22f9500
--- /dev/null
@@ -0,0 +1,244 @@
+# Danish translation of templates page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-22 21:28+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[[!if test=\"enabled(template)\"\n"
+"then=\"This wiki has templates **enabled**.\"\n"
+"else=\"This wiki has templates **disabled**.\"\n"
+"]]\n"
+msgstr ""
+"[[!if test=\"enabled(template)\"\n"
+"then=\"Denne wiki har skabeloner **aktiveret**.\"\n"
+"else=\"Denne wiki har skabeloner **deaktiveret**.\" ]]\n"
+
+#. type: Plain text
+msgid ""
+"Templates are files that can be filled out and inserted into pages in the "
+"wiki."
+msgstr "Skabeloner er filer som kan blive udfyldt og indsat på sider i wikien."
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!if test=\"enabled(template) and enabled(inline)\" then=\"\"\"\n"
+msgstr "[[!if test=\"enabled(template) and enabled(inline)\" then=\"\"\"\n"
+
+#. type: Plain text
+msgid ""
+"These templates are available for inclusion onto other pages in this wiki:"
+msgstr ""
+"Disse skabeloner er tilgængelige til indsættelse på andre sider i denne wiki:"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"[[!inline pages=\"templates/* and !*/discussion\" feeds=no archive=yes\n"
+"sort=title template=titlepage]]\n"
+msgstr ""
+"[[!inline pages=\"templates/* and !*/discussion\" feeds=no archive=yes\n"
+"sort=title template=titlepage]]\n"
+
+#. type: Title ##
+#, no-wrap
+msgid "Using a template"
+msgstr "Brug af skabelon"
+
+#. type: Plain text
+msgid "Using a template works like this:"
+msgstr "En skabelon bruges som her:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!template id=note text=\"\"\"Here is the text to insert into my note.\"\"\"]]\n"
+msgstr "\t\\[[!template id=note text=\"\"\"Her er teksten til at sætte ind i min note.\"\"\"]]\n"
+
+#. type: Plain text
+msgid ""
+"This fills out the [[note]] template, filling in the `text` field with the "
+"specified value, and inserts the result into the page."
+msgstr ""
+"Dette udfylder [[note]]-skabelonen, ved at erstatte `text`-feltet med den "
+"angivne værdi og indsætte resultatet på siden."
+
+#. type: Plain text
+msgid ""
+"Generally, a value can include any markup that would be allowed in the wiki "
+"page outside the template. Triple-quoting the value even allows quotes to be "
+"included in it. Combined with multi-line quoted values, this allows for "
+"large chunks of marked up text to be embedded into a template:"
+msgstr ""
+"Generelt kan en værdi indeholde enhver opmærkning som ville være tilladt på "
+"wikisiden udenfor skabelonen. Trippel-citering af værdien tillader endda at "
+"bruge citering som del af værdien. Kombineret med flerlinje-citerede værdier "
+"tillader dette indlejring af store klumper af opmærket tekst i skabelonen:"
+
+#. type: Plain text
+#, no-wrap
+msgid "        \\[[!template id=foo name=\"Sally\" color=\"green\" age=8 notes=\"\"\"\n"
+msgstr "        \\[[!template id=foo name=\"Sally\" color=\"grøn\" age=8 notes=\"\"\"\n"
+
+#. type: Bullet: '        * '
+msgid "\\[[Charley]]'s sister."
+msgstr "\\[[Charley]]'s søster."
+
+#. type: Bullet: '        * '
+msgid "\"I want to be an astronaut when I grow up.\""
+msgstr "\"Jeg vil være en astronaut når jeg bliver stor.\""
+
+#. type: Bullet: '        * '
+msgid "Really 8 and a half."
+msgstr "Egentligt 8 og et halvt."
+
+#. type: Title ##
+#, no-wrap
+msgid "Creating a template"
+msgstr "Oprettelse af skabelon"
+
+#. type: Plain text
+msgid ""
+"To create a template, simply add a template directive to a page, and the "
+"page will provide a link that can be used to create the template. The "
+"template is a regular wiki page, located in the `templates/` subdirectory "
+"inside the source directory of the wiki."
+msgstr ""
+"Opret en skabelon ved simpelthen at tilføje skabelon-direktivet til en side, "
+"så vil siden vise en henvisning som kan bruges til at oprette skabelonen. "
+"Skabelonen er en normal wikiside, placeret i `templates/` undermappen indeni "
+"wikiens kildemappe."
+
+#. type: Plain text
+msgid ""
+"The template uses the syntax used by the [[!cpan HTML::Template]] perl "
+"module, which allows for some fairly complex things to be done. Consult its "
+"documentation for the full syntax, but all you really need to know are a few "
+"things:"
+msgstr ""
+"Skabelonen bruger samme syntax som perl-modulet [[!cpan HTML::Template]] som "
+"giver mulighed for at lave ret komplekse ting. Læs dokumentationen for den "
+"fulde syntaks, men alt hvad du reelt behøver at vide er nogle få ting:"
+
+#. type: Bullet: '* '
+msgid ""
+"Each parameter you pass to the template directive will generate a template "
+"variable. There are also some pre-defined variables like PAGE and BASENAME."
+msgstr ""
+"Ethvert parameter du angiver til skabelondirektivet vil danne en "
+"skabelonvariabel. Der er også nogle foruddefinerede variable som PAGE og "
+"BASENAME."
+
+#. type: Bullet: '* '
+msgid ""
+"To insert the value of a variable, use `<TMPL_VAR variable>`. Wiki markup in "
+"the value will first be converted to html."
+msgstr ""
+"Brug `<TMPL_VAR variabel>` til at indsætte værdien af en variabel. Wiki-"
+"opmærkning i værdien bliver først konverteret til html."
+
+#. type: Bullet: '* '
+msgid ""
+"To insert the raw value of a variable, with wiki markup not yet converted to "
+"html, use `<TMPL_VAR raw_variable>`."
+msgstr ""
+"Brug `<TMPL_VAR raw_variabel>` til at indsætte den rå værdi af en variabel, "
+"med wiki-opmærkning endnu ikke konverteret til html."
+
+#. type: Bullet: '* '
+msgid ""
+"To make a block of text conditional on a variable being set use `<TMPL_IF "
+"NAME=\"variable\">text</TMPL_IF>`."
+msgstr ""
+"Gør en tekstblok betinget af at en variabel er i brug med `<TMPL_IF NAME="
+"\"variabel\">tekst</TMPL_IF>`."
+
+#. type: Bullet: '* '
+msgid ""
+"To use one block of text if a variable is set and a second if it's not, use "
+"`<TMPL_IF NAME=\"variable\">text<TMPL_ELSE>other text</TMPL_IF>`"
+msgstr ""
+"Brug een tekstblok hvis en variabel er i brug, og en anden hvis ikke, med "
+"`<TMPL_IF NAME=\"variabel\">tekst<TMPL_ELSE>anden tekst</TMPL_IF>`"
+
+#. type: Plain text
+msgid "Here's a sample template:"
+msgstr ""
+"Her er et eksempel på en skabelon (det anbefales at bruge engelske "
+"variabelnavne for at undgå problemer med æøå og andre specialtegn):"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"        <span class=\"infobox\">\n"
+"        Name: \\[[<TMPL_VAR raw_name>]]<br />\n"
+"        Age: <TMPL_VAR age><br />\n"
+"        <TMPL_IF NAME=\"color\">\n"
+"        Favorite color: <TMPL_VAR color><br />\n"
+"        <TMPL_ELSE>\n"
+"        No favorite color.<br />\n"
+"        </TMPL_IF>\n"
+"        <TMPL_IF NAME=\"notes\">\n"
+"        <hr />\n"
+"        <TMPL_VAR notes>\n"
+"        </TMPL_IF>\n"
+"        </span>\n"
+msgstr ""
+"        <span class=\"infobox\">\n"
+"        Navn: \\[[<TMPL_VAR raw_name>]]<br />\n"
+"        Alder: <TMPL_VAR age><br />\n"
+"        <TMPL_IF NAME=\"color\">\n"
+"        Favoritfarve: <TMPL_VAR color><br />\n"
+"        <TMPL_ELSE>\n"
+"        Ingen favoritfarve.<br />\n"
+"        </TMPL_IF>\n"
+"        <TMPL_IF NAME=\"notes\">\n"
+"        <hr />\n"
+"        <TMPL_VAR notes>\n"
+"        </TMPL_IF>\n"
+"        </span>\n"
+
+#. type: Plain text
+msgid ""
+"The filled out template will be formatted the same as the rest of the page "
+"that contains it, so you can include WikiLinks and all other forms of wiki "
+"markup in the template. Note though that such WikiLinks will not show up as "
+"backlinks to the page that uses the template."
+msgstr ""
+"Den udfyldte skabelon vil blive formateret som resten af siden den er "
+"inkluderet i, så du kan medtage WikiLinks og alle andre former for wiki- "
+"opmærkning i skabelonen. Bemærk dog at sådanne WikiLinks ikke vil dukke op "
+"som krydshenvisninger (backlinks) til den side som anvender skabelonen."
+
+#. type: Plain text
+msgid ""
+"Note the use of \"raw_name\" inside the [[ikiwiki/WikiLink]] generator. This "
+"ensures that if the name contains something that might be mistaken for wiki "
+"markup, it's not converted to html before being processed as a [[ikiwiki/"
+"WikiLink]]."
+msgstr ""
+"Bemærk brugen af \"raw_name\" indeni [[ikiwiki/WikiLink]]-generatoren. Dette "
+"sikrer at hvor navnet indeholder noget som måske kan fejltolkes som wiki-"
+"opmærkning, bliver det ikke konverteret til html før det er blevet behandlet "
+"som en [[ikiwiki/WikiLink]]."
diff --git a/po/underlays/basewiki/templates/note.da.po b/po/underlays/basewiki/templates/note.da.po
new file mode 100644 (file)
index 0000000..f748dbe
--- /dev/null
@@ -0,0 +1,47 @@
+# Danish translation of basewiki/templates/note page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"<div class=\"notebox\">\n"
+"<TMPL_VAR text>\n"
+"</div>\n"
+"<TMPL_UNLESS NAME=\"text\">\n"
+"Use this template to insert a note into a page. The note will be styled to\n"
+"float to the right of other text on the page. This template has one\n"
+"parameter:\n"
+"<ul>\n"
+"<li>`text` - the text to display in the note\n"
+"</ul>\n"
+"</TMPL_UNLESS>\n"
+msgstr ""
+"<div class=\"notebox\">\n"
+"<TMPL_VAR text>\n"
+"</div>\n"
+"<TMPL_UNLESS NAME=\"text\">\n"
+"Brug denne skabelon til at indsætte en note på en side. Noten vil blive\n"
+"udsmykket til at flyde til højre for den øvrige tekst på siden. Denne\n"
+"skabelon har et parameter:\n"
+"<ul>\n"
+"<li>`text` - teksten som vises i noten\n"
+"</ul>\n"
+"</TMPL_UNLESS>\n"
diff --git a/po/underlays/basewiki/templates/popup.da.po b/po/underlays/basewiki/templates/popup.da.po
new file mode 100644 (file)
index 0000000..f766015
--- /dev/null
@@ -0,0 +1,56 @@
+# Danish translation of basewiki/templates/popup page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"<TMPL_UNLESS NAME=\"mouseover\">\n"
+"Use this template to create a popup window that is displayed when the mouse\n"
+"is over part of the page. This template has two parameters:\n"
+"<ul>\n"
+"<li>`mouseover` - This is the text or other content that triggers the\n"
+"popup.\n"
+"<li>`popup` - This should be the content of the popup window. It can be\n"
+"anything, even images or a whole little wiki page, but should not be too\n"
+"large for good usability.\n"
+"</ul>\n"
+"Note that browsers that do not support the CSS will display the popup\n"
+"inline in the page, inside square brackets.\n"
+"</TMPL_UNLESS>\n"
+"<span class=\"popup\"><TMPL_VAR mouseover>\n"
+"<span class=\"paren\">[</span><span class=\"balloon\"><TMPL_VAR popup></span><span class=\"paren\">]</span>\n"
+"</span>\n"
+msgstr ""
+"<TMPL_UNLESS NAME=\"mouseover\">\n"
+"Brug denne skabelon til at lave et popup-vindue som vises når musemarkøren er\n"
+"henover en del af siden. Denne skabelon har to parametre:\n"
+"<ul>\n"
+"<li>`mouseover` - Dette er teksten eller andet indhold som udløser popup'en.\n"
+"<li>`popup` - Her angives indeholdet af popup-vinduet. Det kan være hvad som\n"
+"helst, endda billeder eller hele små wikisider, men bør ikke være for stort af\n"
+"hensyn til brugervenligheden.\n"
+"</ul>\n"
+"Bemærk at browsere som ikke understøtter CSS-koden vil vise popup'en indlejret\n"
+"på siden, indenfor lodrette klammer.\n"
+"</TMPL_UNLESS>\n"
+"<span class=\"popup\"><TMPL_VAR mouseover>\n"
+"<span class=\"paren\">[</span><span class=\"balloon\"><TMPL_VAR popup></span><span class=\"paren\">]</span>\n"
+"</span>\n"
diff --git a/po/underlays/directives/ikiwiki/directive/aggregate.da.po b/po/underlays/directives/ikiwiki/directive/aggregate.da.po
new file mode 100644 (file)
index 0000000..e3ff8f3
--- /dev/null
@@ -0,0 +1,149 @@
+# Danish translation of directives/ikiwiki/directive/aggregrate page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `aggregate` directive is supplied by the [[!iki plugins/aggregate "
+"desc=aggregate]] plugin.  This plugin requires extra setup, specifically, a "
+"cron job. See the plugin's documentation for details."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows content from other feeds to be aggregated into the "
+"wiki.  Aggregate a feed as follows:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!aggregate name=\"example blog\" dir=\"example\"\n"
+"\tfeedurl=\"http://example.com/index.rss\"\n"
+"\turl=\"http://example.com/\" updateinterval=\"15\"]]\n"
+msgstr ""
+"\t\\[[!aggregate name=\"eksempel blog\" dir=\"eksempel\"\n"
+"\tfeedurl=\"http://eksempel.dk/index.rss\"\n"
+"\turl=\"http://eksempel.dk/\" updateinterval=\"15\"]]\n"
+
+#. type: Plain text
+msgid ""
+"That example aggregates posts from the specified RSS feed, updating no more "
+"frequently than once every 15 minutes (though possibly less frequently, if "
+"the cron job runs less frequently than that), and puts a page per post under "
+"the example/ directory in the wiki."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"You can then use ikiwiki's [[inline]] directive to create a blog of one or "
+"more aggregated feeds. For example:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!inline pages=\"internal(example/*)\"]]\n"
+msgstr "\t\\[[!inline pages=\"internal(eksempel/*)\"]]\n"
+
+#. type: Plain text
+msgid ""
+"Note the use of `internal()` in the [[ikiwiki/PageSpec]] to match aggregated "
+"pages. By default, aggregated pages are internal pages, which prevents them "
+"from showing up directly in the wiki, and so this special [[PageSpec]] is "
+"needed to match them."
+msgstr ""
+
+#. type: Title ##
+#, no-wrap
+msgid "usage"
+msgstr "brug"
+
+#. type: Plain text
+msgid ""
+"Here are descriptions of all the supported parameters to the `aggregate` "
+"directive:"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`name` - A name for the feed. Each feed must have a unique name.  Required."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`url` - The url to the web page for the feed that's being aggregated.  "
+"Required."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`dir` - The directory in the wiki where pages should be saved. Optional, if "
+"not specified, the directory is based on the name of the feed."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`feedurl` - The url to the feed. Optional, if it's not specified ikiwiki "
+"will look for feeds on the `url`. RSS and atom feeds are supported."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`updateinterval` - How often to check for new posts, in minutes. Default is "
+"15 minutes."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`expireage` - Expire old items from this feed if they are older than a "
+"specified number of days. Default is to never expire on age."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`expirecount` - Expire old items from this feed if there are more than the "
+"specified number total. Oldest items will be expired first. Default is to "
+"never expire on count."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`tag` - A tag to tag each post from the feed with. A good tag to use is the "
+"name of the feed. Can be repeated multiple times. The [[tag]] plugin must be "
+"enabled for this to work."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`template` - Template to use for creating the aggregated pages. Defaults to "
+"aggregatepost."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"Note that even if you are using subversion or another revision control "
+"system, pages created by aggregation will *not* be checked into revision "
+"control."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/brokenlinks.da.po b/po/underlays/directives/ikiwiki/directive/brokenlinks.da.po
new file mode 100644 (file)
index 0000000..8d04886
--- /dev/null
@@ -0,0 +1,53 @@
+# Danish translation of directives/ikiwiki/directive/brokenlinks page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `brokenlinks` directive is supplied by the [[!iki plugins/brokenlinks "
+"desc=brokenlinks]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive generates a list of broken links on pages in the wiki. This "
+"is a useful way to find pages that still need to be written, or links that "
+"are written wrong."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The optional parameter \"pages\" can be a [[ikiwiki/PageSpec]] specifying "
+"the pages to search for broken links, default is search them all."
+msgstr ""
+
+#. type: Plain text
+msgid "Example:"
+msgstr "Eksempel:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!brokenlinks pages=\"* and !recentchanges\"]]\n"
+msgstr "\t\\[[!brokenlinks pages=\"* and !recentchanges\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/calendar.da.po b/po/underlays/directives/ikiwiki/directive/calendar.da.po
new file mode 100644 (file)
index 0000000..401c813
--- /dev/null
@@ -0,0 +1,125 @@
+# Danish translation of directives/ikiwiki/directive/calendar page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `calendar` directive is supplied by the [[!iki plugins/calendar "
+"desc=calendar]] plugin.  This plugin requires extra setup.  See the plugin "
+"documentation for details."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive displays a calendar, similar to the typical calendars shown "
+"on some blogs."
+msgstr ""
+
+#. type: Title #
+#, no-wrap
+msgid "examples"
+msgstr "exempler"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!calendar ]]\n"
+msgstr "\t\\[[!calendar ]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!calendar type=\"month\" pages=\"blog/* and !*/Discussion\"]]\n"
+msgstr "\t\\[[!calendar type=\"month\" pages=\"blog/* and !*/Discussion\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!calendar type=\"year\" year=\"2005\" pages=\"blog/* and !*/Discussion\"]]\n"
+msgstr "\t\\[[!calendar type=\"year\" year=\"2005\" pages=\"blog/* and !*/Discussion\"]]\n"
+
+#. type: Plain text
+msgid ""
+"The calendar is essentially a fancy front end to archives of previous pages, "
+"usually used for blogs. It can produce a calendar for a given month, or a "
+"list of months for a given year."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The month format calendar simply links to any page posted on each day of the "
+"month. The year format calendar links to archive pages, with names like "
+"`archives/2007` (for all of 2007)  and `archives/2007/01` (for January, "
+"2007). For this to work, you'll need to create these archive pages. They "
+"typically use [[inline]] to display or list pages created in the given time "
+"frame."
+msgstr ""
+
+#. type: Title ##
+#, no-wrap
+msgid "usage"
+msgstr "brug"
+
+#. type: Bullet: '* '
+msgid ""
+"`type` - Used to specify the type of calendar wanted. Can be one of \"month"
+"\" or \"year\". The default is a month view calendar."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`pages` - Specifies the [[ikiwiki/PageSpec]] of pages to link to from the "
+"month calendar. Defaults to \"*\"."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`archivebase` - Configures the base of the archives hierarchy. The default "
+"is \"archives\". Note that this default can also be overridden for the whole "
+"wiki by setting `archivebase` in ikiwiki's setup file."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`year` - The year for which the calendar is requested. Defaults to the "
+"current year."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`month` - The numeric month for which the calendar is requested, in the "
+"range 1..12. Used only for the month view calendar, and defaults to the "
+"current month."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`week_start_day` - A number, in the range 0..6, which represents the day of "
+"the week that the month calendar starts with. 0 is Sunday, 1 is Monday, and "
+"so on. Defaults to 0, which is Sunday."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`months_per_row` - In the annual calendar, number of months to place in each "
+"row. Defaults to 3."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/color.da.po b/po/underlays/directives/ikiwiki/directive/color.da.po
new file mode 100644 (file)
index 0000000..59ba665
--- /dev/null
@@ -0,0 +1,80 @@
+# Danish translation of directives/ikiwiki/directive/color page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `color` directive is supplied by the [[!iki plugins/color desc=color]] "
+"plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive can be used to color a piece of text on a page.  It can be "
+"used to set the foreground and/or background color of the text."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"You can use a color name (e.g. `white`) or HTML code (e.g. `#ffffff`)  to "
+"define colors."
+msgstr ""
+
+#. type: Title ##
+#, no-wrap
+msgid "examples"
+msgstr "eksempler"
+
+#. type: Plain text
+msgid ""
+"Here the foreground color is defined as a word, while the background color "
+"is defined as a HTML color code:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!color foreground=white background=#ff0000 text=\"White text on red background\"]]\n"
+msgstr "\t\\[[!color foreground=white background=#ff0000 text=\"Hvid tekst på rød baggrund\"]]\n"
+
+#. type: Plain text
+msgid ""
+"The background color is missing, so the text is displayed on default "
+"background:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!color foreground=white text=\"White text on default color background\"]]\n"
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The foreground is missing, so the text has the default foreground color:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!color background=#ff0000 text=\"Default color text on red background\"]]\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/comment.da.po b/po/underlays/directives/ikiwiki/directive/comment.da.po
new file mode 100644 (file)
index 0000000..20cf299
--- /dev/null
@@ -0,0 +1,116 @@
+# Danish translation of directives/ikiwiki/directive/comment page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `comment` directive is supplied by the [[!iki plugins/comments "
+"desc=comments]] plugin, and is used to add a comment to a page. Typically, "
+"the directive is the only thing on a comment page, and is filled out by the "
+"comment plugin when a user posts a comment."
+msgstr ""
+
+#. type: Plain text
+msgid "Example:"
+msgstr "Eksempel:"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!comment format=mdwn\n"
+"\tusername=\"foo\"\n"
+"\tsubject=\"Bar\"\n"
+"\tdate=\"2009-06-02T19:05:01Z\"\n"
+"\tcontent=\"\"\"\n"
+msgstr ""
+"\t\\[[!comment format=mdwn\n"
+"\tusername=\"foo\"\n"
+"\tsubject=\"Bar\"\n"
+"\tdate=\"2009-06-02T19:05:01Z\"\n"
+"\tcontent=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\tBlah blah.\n"
+"\t\"\"\"\n"
+msgstr ""
+"\tBlah blah.\n"
+"\t\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t]]\n"
+msgstr "\t]]\n"
+
+#. type: Title ##
+#, no-wrap
+msgid "usage"
+msgstr "brug"
+
+#. type: Plain text
+msgid ""
+"The only required parameter is `content`, the others just add or override "
+"metadata of the comment."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`content` - Text to display for the comment.  Note that [[directives|ikiwiki/"
+"directive]] may not be allowed, depending on the configuration of the "
+"comment plugin."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`format` - Specifies the markup used for the content."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`subject` - Subject for the comment."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`date` - Date the comment was posted. Can be entered in nearly any format, "
+"since it's parsed by [[!cpan TimeDate]]"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`username` - Used to record the username (or OpenID)  of a logged in "
+"commenter."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`ip` - Can be used to record the IP address of a commenter, if they posted "
+"anonymously."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`claimedauthor` - Records the name that the user entered, if anonmous "
+"commenters are allowed to enter their (unverified)  name."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/copy.da.po b/po/underlays/directives/ikiwiki/directive/copy.da.po
new file mode 100644 (file)
index 0000000..539e809
--- /dev/null
@@ -0,0 +1,30 @@
+# Danish translation of directives/ikiwiki/directive/copy page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta redir=/ikiwiki/directive/cutpaste]]\n"
+msgstr "[[!meta redir=/ikiwiki/directive/cutpaste]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/cut.da.po b/po/underlays/directives/ikiwiki/directive/cut.da.po
new file mode 100644 (file)
index 0000000..90ca7ed
--- /dev/null
@@ -0,0 +1,30 @@
+# Danish translation of directives/ikiwiki/directive/cut page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta redir=/ikiwiki/directive/cutpaste]]\n"
+msgstr "[[!meta redir=/ikiwiki/directive/cutpaste]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/cutpaste.da.po b/po/underlays/directives/ikiwiki/directive/cutpaste.da.po
new file mode 100644 (file)
index 0000000..7eabf12
--- /dev/null
@@ -0,0 +1,134 @@
+# Danish translation of directives/ikiwiki/directive/cutpaste page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `copy`, `cut` and `paste` directives are supplied by the [[!iki plugins/"
+"cutpaste desc=cutpaste]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"With these directives you can store and recall pieces of text in a page:"
+msgstr ""
+
+#. type: Bullet: ' * '
+msgid ""
+"`\\[[!cut id=name text=\"text\"]]` memorizes the text allowing to recall it "
+"using the given ID.  The text being cut is not included in the output."
+msgstr ""
+
+#. type: Bullet: ' * '
+msgid ""
+"`\\[[!copy id=name text=\"text\"]]` memorizes the text allowing to recall it "
+"using the given ID.  The text being cut *is* included in the output."
+msgstr ""
+
+#. type: Bullet: ' * '
+msgid "`\\[[!paste id=name]]` is replaced by the previously memorized text."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The text being cut, copied and pasted can freely include wiki markup, "
+"including more calls to cut, copy and paste."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"You do not need to memorize the text before using it: a cut directive can "
+"follow the paste directive that uses its text.  In fact, this is quite "
+"useful to postpone big blocks of text like long annotations and have a more "
+"natural flow.  For example:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!toggleable id=\"cut\" text=\"[[!paste id=cutlongdesc]]\"]]\n"
+"\t\\[[!toggleable id=\"copy\" text=\"[[!paste id=copylongdesc]]\"]]\n"
+"\t\\[[!toggleable id=\"paste\" text=\"[[!paste id=pastelongdesc]]\"]]\n"
+msgstr ""
+"\t\\[[!toggleable id=\"cut\" text=\"[[!paste id=cutlongdesc]]\"]]\n"
+"\t\\[[!toggleable id=\"copy\" text=\"[[!paste id=copylongdesc]]\"]]\n"
+"\t\\[[!toggleable id=\"paste\" text=\"[[!paste id=pastelongdesc]]\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t[...some time later...]\n"
+msgstr "\t[...noget tid senere...]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!cut id=cutlongdesc text=\"\"\"\n"
+msgstr "\t\\[[!cut id=cutlongdesc text=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t   blah blah blah\n"
+msgstr "\t   blah blah blah\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!cut id=copylongdesc text=\"\"\"\n"
+msgstr "\t\\[[!cut id=copylongdesc text=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!cut id=pastelongdesc text=\"\"\"\n"
+msgstr "\t\\[[!cut id=pastelongdesc text=\"\"\"\n"
+
+#. type: Plain text
+msgid ""
+"This can potentially be used to create loops, but ikiwiki is clever and "
+"breaks them."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"Since you can paste without using double quotes, copy and paste can be used "
+"to nest directives that require multiline parameters inside each other:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!toggleable id=foo text=\"\"\"\n"
+msgstr "\t\\[[!toggleable id=foo text=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t  [[!toggleable id=bar text=\"[[!paste id=baz]]\"]]\n"
+msgstr "\t  [[!toggleable id=bar text=\"[[!paste id=baz]]\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!cut id=baz text=\"\"\"\n"
+msgstr "\t\\[[!cut id=baz text=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\tmultiline parameter!\n"
+msgstr "\tflere linjer lang parameter!\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/edittemplate.da.po b/po/underlays/directives/ikiwiki/directive/edittemplate.da.po
new file mode 100644 (file)
index 0000000..41ca61b
--- /dev/null
@@ -0,0 +1,90 @@
+# Danish translation of directives/ikiwiki/directive/edittemplate page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `edittemplate` directive is supplied by the [[!iki plugins/edittemplate "
+"desc=edittemplate]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows registering template pages, that provide default "
+"content for new pages created using the web frontend. To register a "
+"template, insert a [[ikiwiki/directive/template]] directive on some other "
+"page."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!edittemplate template=\"bugtemplate\" match=\"bugs/*\"]]\n"
+msgstr "\t\\[[!edittemplate template=\"bugtemplate\" match=\"bugs/*\"]]\n"
+
+#. type: Plain text
+msgid ""
+"In the above example, the page named \"bugtemplate\" is registered as a "
+"template to be used when any page named \"bugs/*\" is created. To avoid the "
+"directive displaying a note about the template being registered, add "
+"\"silent=yes\"."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"Often the template page contains a simple skeleton for a particular type of "
+"page. For the bug report pages in the above example, it might look something "
+"like:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\tPackage: \n"
+"\tVersion: \n"
+"\tReproducible: y/n\n"
+"\tDetails:\n"
+msgstr ""
+"\tPackage: \n"
+"\tVersion: \n"
+"\tReproducible: y/n\n"
+"\tDetails:\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"The template page can also contain [[!cpan HTML::Template]] directives,\n"
+"similar to other ikiwiki [[templates]]. Currently only one variable is\n"
+"set: `<TMPL_VAR name>` is replaced with the name of the page being\n"
+"created.\n"
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"It's generally not a good idea to put the `edittemplate` directive in the "
+"template page itself, since the directive would then be included as part of "
+"the template on new pages, which would then in turn be registered as "
+"templates. If multiple pages are registered as templates for a new page, an "
+"arbitrary one is chosen, so that could get confusing."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/format.da.po b/po/underlays/directives/ikiwiki/directive/format.da.po
new file mode 100644 (file)
index 0000000..20a7e7a
--- /dev/null
@@ -0,0 +1,84 @@
+# Danish translation of directives/ikiwiki/directive/format page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `format` directive is supplied by the [[!iki plugins/format "
+"desc=format]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The directive allows formatting a chunk of text using any available page "
+"format. It takes two parameters. First is the type of format to use, ie the "
+"extension that would be used for a standalone file of this type.  Second is "
+"the text to format."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"For example, this will embed an otl outline inside a page using mdwn or some "
+"other format:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!format otl \"\"\"\n"
+msgstr "\t\\[[!format otl \"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\tfoo\n"
+"\t\t1\n"
+"\t\t2\n"
+"\tbar\n"
+"\t\t3\n"
+"\t\t4\n"
+msgstr ""
+"\tfoo\n"
+"\t\t1\n"
+"\t\t2\n"
+"\tbar\n"
+"\t\t3\n"
+"\t\t4\n"
+
+#. type: Plain text
+msgid ""
+"Note that if the highlight plugin is enabled, this directive can also be "
+"used to display syntax highlighted code. Many languages and formats are "
+"supported. For example:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[format perl \"\"\"\n"
+msgstr "\t\\[[format perl \"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\tprint \"hello, world\\n\";\n"
+msgstr "\tprint \"hej, verden\\n\";\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/fortune.da.po b/po/underlays/directives/ikiwiki/directive/fortune.da.po
new file mode 100644 (file)
index 0000000..d0b33ce
--- /dev/null
@@ -0,0 +1,42 @@
+# Danish translation of directives/ikiwiki/directive/fortune page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `fortune` directive is supplied by the [[!iki plugins/fortune "
+"desc=fortune]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This just uses the `fortune` program to insert a fortune cookie into the "
+"page.  Usage:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!fortune ]]\n"
+msgstr "\t\\[[!fortune ]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/graph.da.po b/po/underlays/directives/ikiwiki/directive/graph.da.po
new file mode 100644 (file)
index 0000000..2ca6e26
--- /dev/null
@@ -0,0 +1,76 @@
+# Danish translation of directives/ikiwiki/directive/graph page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `graph` directive is supplied by the [[!iki plugins/graphviz "
+"desc=graphviz]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows embedding [graphviz](http://www.graphviz.org/) graphs "
+"in a page.  Example usage:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!graph src=\"a -> b -> c; a -> c;\"]]\n"
+msgstr "\t\\[[!graph src=\"a -> b -> c; a -> c;\"]]\n"
+
+#. type: Plain text
+msgid ""
+"Note that graphs will only show up in previews if your browser has [[!"
+"wikipedia data: URI]] support, or if the same graph already exists on that "
+"page."
+msgstr ""
+
+#. type: Plain text
+msgid "The `graph` directive supports the following parameters:"
+msgstr ""
+
+#. type: Bullet: '- '
+msgid "`src` - The graphviz source to render."
+msgstr ""
+
+#. type: Bullet: '- '
+msgid ""
+"`type` - The type of graph to render: `graph` or `digraph`.  Defaults to "
+"`digraph`."
+msgstr ""
+
+#. type: Bullet: '- '
+msgid ""
+"`prog` - The graphviz program to render with: `dot`, `neato`, `fdp`, "
+"`twopi`, or `circo`.  Defaults to `dot`."
+msgstr ""
+
+#. type: Bullet: '- '
+msgid ""
+"`height`, `width` - Limit the size of the graph to a given height and width, "
+"in inches. You must specify both to limit the size; otherwise, graphviz will "
+"choose a size, without any limit."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/haiku.da.po b/po/underlays/directives/ikiwiki/directive/haiku.da.po
new file mode 100644 (file)
index 0000000..db8d7e2
--- /dev/null
@@ -0,0 +1,55 @@
+# Danish translation of directives/ikiwiki/directive/haiku page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `haiku` directive is supplied by the [[!iki plugins/haiku desc=haiku]] "
+"plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows inserting a randomly generated haiku into a wiki "
+"page.  Just type:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!haiku hint=\"argument\"]]\n"
+msgstr "\t\\[[!haiku hint=\"argument\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!haiku hint=\"argument test\"]]\n"
+msgstr "[[!haiku hint=\"argument test\"]]\n"
+
+#. type: Plain text
+msgid ""
+"The hint parameter can be omitted, it only provides the generator a hint of "
+"what to write the haiku about. If no hint is given, it might base it on the "
+"page name. Since the vocabulary it knows is very small, many hints won't "
+"affect the result at all."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/if.da.po b/po/underlays/directives/ikiwiki/directive/if.da.po
new file mode 100644 (file)
index 0000000..9f66ca8
--- /dev/null
@@ -0,0 +1,128 @@
+# Danish translation of if page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `if` directive is supplied by the [[!iki plugins/conditional "
+"desc=conditional]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"With this directive, you can make text be conditionally displayed on a "
+"page.  For example:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!if test=\"enabled(smiley)\"\n"
+"\t      then=\"The smiley plugin is enabled :-)\"\n"
+"\t      else=\"No smiley plugin here..\"]]\n"
+msgstr ""
+"[[!if test=\"enabled(smiley)\"\n"
+"     then=\"Smiley-udvidelsen er aktiveret :-)\"\n"
+"     else=\"Ingen smiley-udvidelse her...\"]]\n"
+
+#. type: Plain text
+msgid ""
+"If the specified `test` succeeds, the `then` text will be displayed, "
+"otherwise the `else` text will be displayed. The `else` part is optional."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The `then` and `else` values can include any markup that would be allowed in "
+"the wiki page outside the template. Triple-quoting the values even allows "
+"quotes to be included."
+msgstr ""
+"Værdierne `then` og `else` kan indeholde enhver opmærkning som ville være "
+"tilladt på wikisiden udenfor skabelonen. Trippel-citering af værdien "
+"tillader endda at bruge citering som del af værdien."
+
+#. type: Plain text
+msgid ""
+"The `test` is a [[ikiwiki/PageSpec]]; if it matches any page in the wiki "
+"then it succeeds. So you can do things like testing for the existence of a "
+"page or pages, testing to see if any pages were created in a given month, "
+"and so on."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"If you want the [[ikiwiki/PageSpec]] to only match against the page that "
+"contains the conditional, rather than matching against all pages in the "
+"wiki, set the \"all\" parameter to \"no\"."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"In an `if` directive, the regular [[ikiwiki/PageSpec]] syntax is expanded "
+"with the following additional tests:"
+msgstr ""
+"I et `if`-direktiv udvides den normale [[ikiwiki/PageSpec]]-syntaks med "
+"følgende yderligere tests:"
+
+#. type: Bullet: '* '
+msgid "enabled(plugin)"
+msgstr "enabled(udvielse)"
+
+#. type: Plain text
+#, no-wrap
+msgid "  Tests whether the specified plugin is enabled.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "sourcepage(glob)"
+msgstr "sourcepage(glob)"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Tests whether the glob matches the name of the page that contains the\n"
+"  conditional.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "destpage(glob)"
+msgstr "destpage(glob)"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Tests whether the glob matches the name of the page that is being built.\n"
+"  That might be different than the name of the page that contains the\n"
+"  conditional, if it's being inlined into another page.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "included()"
+msgstr "included()"
+
+#. type: Plain text
+#, no-wrap
+msgid "  Tests whether the page is being included onto another page.\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/img.da.po b/po/underlays/directives/ikiwiki/directive/img.da.po
new file mode 100644 (file)
index 0000000..f6a9509
--- /dev/null
@@ -0,0 +1,98 @@
+# Danish translation of directives/ikiwiki/directive/img page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `img` directive is supplied by the [[!iki plugins/img desc=img]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This is an image handling directive.  While ikiwiki supports inlining full-"
+"size images by making a [[ikiwiki/WikiLink]] that points to the image, using "
+"this directive you can easily scale down an image for inclusion onto a page, "
+"providing a link to a full-size version."
+msgstr ""
+
+#. type: Title ##
+#, no-wrap
+msgid "usage"
+msgstr "brug"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!img image1.jpg size=\"200x200\" alt=\"clouds\"]]\n"
+msgstr "\t\\[[!img image1.jpg size=\"200x200\" alt=\"skyer\"]]\n"
+
+#. type: Plain text
+msgid ""
+"The image file will be searched for using the same rules as used to find the "
+"file pointed to by a [[ikiwiki/WikiLink]]."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The `size` parameter is optional, defaulting to full size. Note that the "
+"original image's aspect ratio is always preserved, even if this means making "
+"the image smaller than the specified size. You can also specify only the "
+"width or the height, and the other value will be calculated based on it: "
+"\"200x\", \"x200\""
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"You can also pass `alt`, `title`, `class`, `align` and `id` parameters.  "
+"These are passed through unchanged to the html img tag. If you include a "
+"`caption` parameter, the caption will be displayed centered beneath the "
+"image."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The `link` parameter is used to control whether the scaled down image links "
+"to the full size version. By default it does; set \"link=somepage\" to link "
+"to another page instead, or \"link=no\" to disable the link, or "
+"\"link=http://url\" to link to a given url."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"You can also set default values that will be applied to all later images on "
+"the page, unless overridden. Useful when including many images on a page."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!img defaults size=200x200 alt=\"wedding photo\"]]\n"
+"\t\\[[!img photo1.jpg]]\n"
+"\t\\[[!img photo2.jpg]]\n"
+"\t\\[[!img photo3.jpg size=200x600]]\n"
+msgstr ""
+"\t\\[[!img defaults size=200x200 alt=\"bryllupsfoto\"]]\n"
+"\t\\[[!img photo1.jpg]]\n"
+"\t\\[[!img photo2.jpg]]\n"
+"\t\\[[!img photo3.jpg size=200x600]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/inline.da.po b/po/underlays/directives/ikiwiki/directive/inline.da.po
new file mode 100644 (file)
index 0000000..5641508
--- /dev/null
@@ -0,0 +1,285 @@
+# Danish translation of directives/ikiwiki/directive/inline page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `inline` directive is supplied by the [[!iki plugins/inline "
+"desc=inline]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This is a directive that allows including one wiki page inside another.  The "
+"most common use of inlining is generating blogs and RSS or Atom feeds."
+msgstr ""
+
+#. type: Plain text
+msgid "Example:"
+msgstr "Eksempel:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!inline pages=\"blog/* and !*/Discussion\" show=\"10\" rootpage=\"blog\"]]\n"
+msgstr "\t\\[[!inline pages=\"blog/* and !*/Discussion\" show=\"10\" rootpage=\"blog\"]]\n"
+
+#. type: Plain text
+msgid ""
+"Any pages that match the specified [[PageSpec]] (in the example, any "
+"[[SubPage]] of \"blog\") will be part of the blog, and the newest 10 of them "
+"will appear in the page. Note that if files that are not pages match the "
+"[[PageSpec]], they will be included in the feed using RSS enclosures, which "
+"is useful for podcasting."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The optional `rootpage` parameter tells the wiki that new posts to this blog "
+"should default to being [[SubPages|SubPage]] of \"blog\", and enables a form "
+"at the top of the blog that can be used to add new items."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"If you want your blog to have an archive page listing every post ever made "
+"to it, you can accomplish that like this:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!inline pages=\"blog/* and !*/Discussion\" archive=\"yes\"]]\n"
+msgstr "\t\\[[!inline pages=\"blog/* and !*/Discussion\" archive=\"yes\"]]\n"
+
+#. type: Plain text
+msgid ""
+"You can even create an automatically generated list of all the pages on the "
+"wiki, with the most recently added at the top, like this:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!inline pages=\"* and !*/Discussion\" archive=\"yes\"]]\n"
+msgstr "\t\\[[!inline pages=\"* and !*/Discussion\" archive=\"yes\"]]\n"
+
+#. type: Plain text
+msgid ""
+"If you want to be able to add pages to a given blog feed by tagging them, "
+"you can do that too. To tag a page, just make it link to a page or pages "
+"that represent its tags. Then use the special `link()` [[PageSpec]] to match "
+"all pages that have a given tag:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!inline pages=\"link(life)\"]]\n"
+msgstr "\t\\[[!inline pages=\"link(livet)\"]]\n"
+
+#. type: Plain text
+msgid "Or include some tags and exclude others:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!inline pages=\"link(debian) and !link(social)\"]]\n"
+msgstr "\t\\[[!inline pages=\"link(debian) and !link(venner)\"]]\n"
+
+#. type: Title ##
+#, no-wrap
+msgid "usage"
+msgstr "brug"
+
+#. type: Plain text
+msgid ""
+"There are many parameters you can use with the `inline` directive. These are "
+"the commonly used ones:"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`pages` - A [[PageSpec]] of the pages to inline."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`show` - Specify the maximum number of matching pages to inline.  Default is "
+"10, unless archiving, when the default is to show all.  Set to 0 to show all "
+"matching pages."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`archive` - If set to \"yes\", only list page titles and some metadata, not "
+"full contents."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`description` - Sets the description of the rss feed if one is generated.  "
+"Defaults to the name of the wiki."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`skip` - Specify a number of pages to skip displaying. Can be useful to "
+"produce a feed that only shows archived pages."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`postform` - Set to \"yes\" to enable a form to post new pages to a blog."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`postformtext` - Set to specify text that is displayed in a postform."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`rootpage` - Enable the postform, and allows controling where newly posted "
+"pages should go, by specifiying the page that they should be a [[SubPage]] "
+"of."
+msgstr ""
+
+#. type: Plain text
+msgid "Here are some less often needed parameters:"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`actions` - If set to \"yes\" add links to the bottom of the inlined pages "
+"for editing and discussion (if they would be shown at the top of the page "
+"itself)."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`rss` - controls generation of an rss feed. If the wiki is configured to "
+"generate rss feeds by default, set to \"no\" to disable. If the wiki is "
+"configured to `allowrss`, set to \"yes\" to enable."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`atom` - controls generation of an atom feed. If the wiki is configured to "
+"generate atom feeds by default, set to \"no\" to disable. If the wiki is "
+"configured to `allowatom`, set to \"yes\" to enable."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`feeds` - controls generation of all types of feeds. Set to \"no\" to "
+"disable generating any feeds."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`emptyfeeds` - Set to \"no\" to disable generation of empty feeds.  Has no "
+"effect if `rootpage` or `postform` is set."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`template` - Specifies the template to fill out to display each inlined "
+"page. By default the `inlinepage` template is used, while the `archivepage` "
+"template is used for archives. Set this parameter to use some other, custom "
+"template, such as the `titlepage` template that only shows post titles or "
+"the `microblog` template, optimised for microblogging. Note that you should "
+"still set `archive=yes` if your custom template does not include the page "
+"content."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`raw` - Rather than the default behavior of creating a blog, if raw is set "
+"to \"yes\", the page will be included raw, without additional markup around "
+"it, as if it were a literal part of the source of the inlining page."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`sort` - Controls how inlined pages are sorted. The default, \"age\" is to "
+"sort newest created pages first. Setting it to \"title\" will sort pages by "
+"title, and \"mtime\" sorts most recently modified pages first. If [[!cpan "
+"Sort::Naturally]] is installed, `sort` can be set to \"title_natural\" to "
+"sort by title with numbers treated as such (\"1 2 9 10 20\" instead of \"1 "
+"10 2 20 9\")."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`reverse` - If set to \"yes\", causes the sort order to be reversed."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`feedshow` - Specify the maximum number of matching pages to include in the "
+"rss/atom feeds. The default is the same as the `show` value above."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`feedonly` - Only generate the feed, do not display the pages inline on the "
+"page."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`quick` - Build archives in quick mode, without reading page contents for "
+"metadata. By default, this also turns off generation of any feeds."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`timeformat` - Use this to specify how to display the time or date for pages "
+"in the blog. The format string is passed to the strftime(3) function."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`feedpages` - A [[PageSpec]] of inlined pages to include in the rss/atom "
+"feeds. The default is the same as the `pages` value above, and only pages "
+"matched by that value are included, but some of those can be excluded by "
+"specifying a tighter [[PageSpec]] here."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`guid` - If a URI is given here (perhaps a UUID prefixed with `urn:uuid:`), "
+"the Atom feed will have this as its `<id>`. The default is to use the URL of "
+"the page containing the `inline` directive."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`feedfile` - Can be used to change the name of the file generated for the "
+"feed. This is particularly useful if a page contains multiple feeds.  For "
+"example, set \"feedfile=feed\" to cause it to generate `page/feed.atom` and/"
+"or `page/feed.rss`. This option is not supported if the wiki is configured "
+"not to use `usedirs`."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
+
+#. type: Plain text
+msgid ""
+"A related directive is the [[ikiwiki/directive/edittemplate]] directive, "
+"which allows default text for a new page to be specified."
+msgstr ""
diff --git a/po/underlays/directives/ikiwiki/directive/linkmap.da.po b/po/underlays/directives/ikiwiki/directive/linkmap.da.po
new file mode 100644 (file)
index 0000000..4c6b024
--- /dev/null
@@ -0,0 +1,70 @@
+# Danish translation of directives/ikiwiki/directive/linkmap page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `linkmap` directive is supplied by the [[!iki plugins/linkmap "
+"desc=linkmap]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive uses [graphviz](http://www.graphviz.org/) to generate a graph "
+"showing the links between a set of pages in the wiki. Example usage:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!linkmap pages=\"* and !blog/* and !*/Discussion\"]]\n"
+msgstr "\t\\[[!linkmap pages=\"* and !blog/* and !*/Discussion\"]]\n"
+
+#. type: Plain text
+msgid ""
+"Only links between mapped pages will be shown; links pointing to or from "
+"unmapped pages will be omitted. If the pages to include are not specified, "
+"the links between all pages (and other files) in the wiki are mapped. For "
+"best results, only a small set of pages should be mapped, since otherwise "
+"the map can become very large, unwieldy, and complicated. Also, the map is "
+"rebuilt whenever one of the mapped pages is changed, which can make the wiki "
+"a bit slow."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"Here are descriptions of all the supported parameters to the `linkmap` "
+"directive:"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`pages` - A [[ikiwiki/PageSpec]] of the pages to map."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`height`, `width` - Limit the size of the map to a given height and width, "
+"in inches. Both must be specified for the limiting to take effect, otherwise "
+"the map's size is not limited."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/listdirectives.da.po b/po/underlays/directives/ikiwiki/directive/listdirectives.da.po
new file mode 100644 (file)
index 0000000..c0f08b4
--- /dev/null
@@ -0,0 +1,63 @@
+# Danish translation of directives/ikiwiki/directive/listdirectives page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `listdirectives` directive is supplied by the [[!iki plugins/"
+"listdirectives desc=listdirectives]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive generates a list of available [[directives|ikiwiki/"
+"directive]]."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!listdirectives]]\n"
+msgstr "\t\\[[!listdirectives]]\n"
+
+#. type: Plain text
+msgid ""
+"There is one optional keyword argument, `generated`.  Normally the "
+"`listdirectives` directive will list all built in directives and directives "
+"directly registered by plugins.  With this keyword, `listdirectives` will "
+"also list directives generated later.  For example, all [[shortcuts]] are "
+"directives generated in turn by the `shortcut` directive.  They will only be "
+"listed if the `generated` argument is supplied."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "    \\[[!listdirectives generated]]\n"
+msgstr "    \\[[!listdirectives generated]]\n"
+
+#. type: Plain text
+msgid ""
+"This extended list is often quite long, and often contains many undocumented "
+"directives."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/map.da.po b/po/underlays/directives/ikiwiki/directive/map.da.po
new file mode 100644 (file)
index 0000000..00caaeb
--- /dev/null
@@ -0,0 +1,64 @@
+# Danish translation of directives/ikiwiki/directive/map page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `map` directive is supplied by the [[!iki plugins/map desc=map]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive generates a hierarchical page map for the wiki. Example usage:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!map pages=\"* and !blog/* and !*/Discussion\"]]\n"
+msgstr "\t\\[[!map pages=\"* and !blog/* and !*/Discussion\"]]\n"
+
+#. type: Plain text
+msgid ""
+"If the pages to include are not specified, all pages (and other files) in "
+"the wiki are mapped."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"By default, the names of pages are shown in the map. The `show` parameter "
+"can be used to show the titles or descriptions of pages instead (as set by "
+"the [[meta]] directive). For example:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!map pages=\"* and !blog/* and !*/Discussion\" show=title]]\n"
+msgstr "\t\\[[!map pages=\"* and !blog/* and !*/Discussion\" show=title]]\n"
+
+#. type: Plain text
+msgid ""
+"Hint: To limit the map to displaying pages less than a certain level deep, "
+"use a [[ikiwiki/PageSpec]] like this: `pages=\"* and !*/*/*\"`"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/meta.da.po b/po/underlays/directives/ikiwiki/directive/meta.da.po
new file mode 100644 (file)
index 0000000..08fdc9c
--- /dev/null
@@ -0,0 +1,363 @@
+# Danish translation of directives/ikiwiki/directive/meta page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `meta` directive is supplied by the [[!iki plugins/meta desc=meta]] "
+"plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows inserting arbitrary metadata into the source of a "
+"page.  Enter the metadata as follows:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!meta field=\"value\"]]\n"
+"\t\\[[!meta field=\"value\" param=\"value\" param=\"value\"]]\n"
+msgstr ""
+"\t\\[[!meta felt=\"værdi\"]]\n"
+"\t\\[[!meta felt=\"værdi\" param=\"værdi\" param=\"værdi\"]]\n"
+
+#. type: Plain text
+msgid ""
+"The first form sets a given field to a given value, while the second form "
+"also specifies some additional sub-parameters."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The field values are treated as HTML entity-escaped text, so you can include "
+"a quote in the text by writing `&quot;` and so on."
+msgstr ""
+
+#. type: Plain text
+msgid "Supported fields:"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "title"
+msgstr "title"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Overrides the title of the page, which is generally the same as the\n"
+"  page name.\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Note that if the title is overridden, a \"title_overridden\" variable will\n"
+"  be set to a true value in the template; this can be used to format things\n"
+"  differently in this case.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "license"
+msgstr "license"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Specifies a license for the page, for example, \"GPL\". Can contain\n"
+"  WikiLinks and arbitrary markup.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "copyright"
+msgstr "copyright"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Specifies the copyright of the page, for example, \"Copyright 2007 by\n"
+"  Joey Hess\". Can contain WikiLinks and arbitrary markup.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "author"
+msgstr "author"
+
+#. type: Plain text
+#, no-wrap
+msgid "  Specifies the author of a page.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "authorurl"
+msgstr "authorurl"
+
+#. type: Plain text
+#, no-wrap
+msgid "  Specifies an url for the author of a page.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "description"
+msgstr "description"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Specifies a \"description\" of the page. You could use this to provide\n"
+"  a summary, for example, to be picked up by the [[map]] directive.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "permalink"
+msgstr "permalink"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Specifies a permanent link to the page, if different than the page\n"
+"  generated by ikiwiki.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "date"
+msgstr "date"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Specifies the creation date of the page. The date can be entered in\n"
+"  nearly any format, since it's parsed by [[!cpan TimeDate]].\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "stylesheet"
+msgstr "stylesheet"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Adds a stylesheet to a page. The stylesheet is treated as a wiki link to\n"
+"  a `.css` file in the wiki, so it cannot be used to add links to external\n"
+"  stylesheets. Example:\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!meta stylesheet=somestyle rel=\"alternate stylesheet\"\n"
+"\ttitle=\"somestyle\"]]\n"
+msgstr ""
+"\t\\[[!meta stylesheet=somestyle rel=\"alternate stylesheet\"\n"
+"\ttitle=\"etstilark\"]]\n"
+
+#. type: Bullet: '* '
+msgid "openid"
+msgstr "openid"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Adds html &lt;link&gt; tags to perform OpenID delegation to an external\n"
+"  OpenID server. This lets you use an ikiwiki page as your OpenID.\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  By default this will delegate for both `openid` and `openid2`. To only\n"
+"  delegate for one, add a parameter such as `delegate=openid`.\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  An optional `xrds-location`\n"
+"  parameter lets you specify the location of any [eXtensible Resource\n"
+"  DescriptorS](http://www.windley.com/archives/2007/05/using_xrds.shtml).\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "  Example:\n"
+msgstr "  Eksempel:\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\\\[[!meta openid=\"http://joeyh.myopenid.com/\"\n"
+"\tserver=\"http://www.myopenid.com/server\"\n"
+"\txrds-location=\"http://www.myopenid.com/xrds?username=joeyh.myopenid.com\"\"]]\n"
+msgstr ""
+"\t\\\\[[!meta openid=\"http://joeyh.myopenid.com/\"\n"
+"\tserver=\"http://www.myopenid.com/server\"\n"
+"\txrds-location=\"http://www.myopenid.com/xrds?username=joeyh.myopenid.com\"\"]]\n"
+
+#. type: Bullet: '* '
+msgid "link"
+msgstr "link"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Specifies a link to another page. This can be used as a way to make the\n"
+"  wiki treat one page as linking to another without displaying a user-visible\n"
+"  [[ikiwiki/WikiLink]]:\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "       \\[[!meta link=otherpage]]\n"
+msgstr "       \\[[!meta link=enandenside]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "  It can also be used to insert a html &lt;link&gt; tag. For example:\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "       \\[[!meta link=\"http://joeyh.myopenid.com/\" rel=\"openid.delegate\"]]\n"
+msgstr "       \\[[!meta link=\"http://joeyh.myopenid.com/\" rel=\"openid.delegate\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  However, this latter syntax won't be allowed if the \n"
+"  [[!iki plugins/htmlscrubber desc=htmlscrubber]] plugin is enabled, since it can be used to\n"
+"  insert unsafe content.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "redir"
+msgstr "redir"
+
+#. type: Plain text
+#, no-wrap
+msgid "  Causes the page to redirect to another page in the wiki.\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "  \t\\[[!meta redir=otherpage]]\n"
+msgstr "  \t\\[[!meta redir=otherpage]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Optionally, a delay (in seconds) can be specified. The default is to\n"
+"  redirect without delay.\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "  It can also be used to redirect to an external url. For example:\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "  \t\\[[!meta redir=\"http://example.com/\"]]\n"
+msgstr "  \t\\[[!meta redir=\"http://eksempel.dk/\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  For both cases, an anchor to jump to inside the destination page may also be\n"
+"  specified using the common `#ANCHOR` syntax.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "robots"
+msgstr "robots"
+
+#. type: Plain text
+#, no-wrap
+msgid "  Causes the robots meta tag to be written:\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "        \\[[!meta robots=\"index, nofollow\"]]\n"
+msgstr "        \\[[!meta robots=\"index, nofollow\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Valid values for the attribute are: \"index\", \"noindex\", \"follow\", and\n"
+"  \"nofollow\". Multiple comma-separated values are allowed, but obviously only\n"
+"  some combinations make sense. If there is no robots meta tag, \"index,\n"
+"  follow\" is used as the default.\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "  The value is escaped, but its contents are not otherwise checked.\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "guid"
+msgstr "guid"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Specifies a globally unique ID for a page. This guid should be a URI\n"
+"  (in particular, it can be `urn:uuid:` followed by a UUID, as per\n"
+"  [[!rfc 4122]]), and it will be used to identify the page's entry in RSS\n"
+"  and Atom feeds. If not given, the default is to use the page's URL as its\n"
+"  guid.\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  This is mostly useful when a page has moved, to keep the guids for\n"
+"  pages unchanged and avoid_flooding_aggregators\n"
+"  (see [[!iki tips/howto_avoid_flooding_aggregators]]).\n"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "updated"
+msgstr "updated"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Specifies a fake modification time for a page, to be output into RSS and\n"
+"  Atom feeds. This is useful to avoid flooding aggregators that sort by\n"
+"  modification time, like Planet: for instance, when editing an old blog post\n"
+"  to add tags, you could set `updated` to be one second later than the original\n"
+"  value. The date/time can be given in any format that\n"
+"  [[!cpan TimeDate]] can understand, just like the `date` field.\n"
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"If the field is not one of the above predefined fields, the metadata will be "
+"written to the generated html page as a &lt;meta&gt; header. However, this "
+"won't be allowed if the [[!iki plugins/htmlscrubber desc=htmlscrubber]] "
+"plugin is enabled, since it can be used to insert unsafe content."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/more.da.po b/po/underlays/directives/ikiwiki/directive/more.da.po
new file mode 100644 (file)
index 0000000..a7855d6
--- /dev/null
@@ -0,0 +1,59 @@
+# Danish translation of directives/ikiwiki/directive/more page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `more` directive is supplied by the [[!iki plugins/more desc=more]] "
+"plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive provides a way to have a \"more\" link on a post in a blog, "
+"that leads to the full version of the page. Use it like this:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!more linktext=\"click for more\" text=\"\"\"\n"
+msgstr "\t\\[[!more linktext=\"klik for mere\" text=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\tThis is the rest of my post. Not intended for people catching up on\n"
+"\ttheir blogs at 30,000 feet. Because I like to make things\n"
+"\tdifficult.\n"
+msgstr ""
+
+#. type: Plain text
+msgid "If the `linktext` parameter is omitted it defaults to just \"more\"."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"Note that you can accomplish something similar using a [[toggle]] instead."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/orphans.da.po b/po/underlays/directives/ikiwiki/directive/orphans.da.po
new file mode 100644 (file)
index 0000000..3e71434
--- /dev/null
@@ -0,0 +1,55 @@
+# Danish translation of directives/ikiwiki/directive/orphans page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `orphans` directive is supplied by the [[!iki plugins/orphans "
+"desc=orphans]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive generates a list of possibly orphaned pages -- pages that no "
+"other page links to. Example:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!orphans pages=\"* and !blog/*\"]]\n"
+msgstr "\t\\[[!orphans pages=\"* and !blog/*\"]]\n"
+
+#. type: Plain text
+msgid ""
+"The optional parameter \"pages\" can be a [[ikiwiki/PageSpec]] specifying "
+"the pages to check for orphans, default is search them all."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"Note that it takes backlinks into account, but does not count inlining a "
+"page as linking to it, so will generally count many blog-type pages as "
+"orphans."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/pagecount.da.po b/po/underlays/directives/ikiwiki/directive/pagecount.da.po
new file mode 100644 (file)
index 0000000..c404a77
--- /dev/null
@@ -0,0 +1,46 @@
+# Danish translation of directives/ikiwiki/directive/pagecount page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `pagecount` directive is supplied by the [[!iki plugins/pagecount "
+"desc=pagecount]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid "This directive counts pages currently in the wiki. Example:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!pagecount pages=\"*\"]]\n"
+msgstr "\t\\[[!pagecount pages=\"*\"]]\n"
+
+#. type: Plain text
+msgid ""
+"The optional parameter \"pages\" can be a [[ikiwiki/PageSpec]] specifying "
+"the pages to count, default is to count them all."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/pagestats.da.po b/po/underlays/directives/ikiwiki/directive/pagestats.da.po
new file mode 100644 (file)
index 0000000..76474b2
--- /dev/null
@@ -0,0 +1,56 @@
+# Danish translation of directives/ikiwiki/directive/pagestats page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `pagestats` directive is supplied by the [[!iki plugins/pagestats "
+"desc=pagestats]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive can generate stats about how pages link to each other. It can "
+"produce either a tag cloud, or a table counting the number of links to each "
+"page."
+msgstr ""
+
+#. type: Plain text
+msgid "Here's how to use it to create a [[tag]] cloud:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!pagestats pages=\"tags/*\"]]\n"
+msgstr "\t\\[[!pagestats pages=\"tags/*\"]]\n"
+
+#. type: Plain text
+msgid "And here's how to create a table of all the pages on the wiki:"
+msgstr "Og sådan her dannes en tabel over alle sider i wikien:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!pagestats style=\"table\"]]\n"
+msgstr "\t\\[[!pagestats style=\"table\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/pagetemplate.da.po b/po/underlays/directives/ikiwiki/directive/pagetemplate.da.po
new file mode 100644 (file)
index 0000000..0db0835
--- /dev/null
@@ -0,0 +1,52 @@
+# Danish translation of directives/ikiwiki/directive/pagetemplate page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `pagetemplate` directive is supplied by the [[!iki plugins/pagetemplate "
+"desc=pagetemplate]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows a page to be created using a different wikitemplates.  "
+"The page text is inserted into the template, so the template controls the "
+"overall look and feel of the wiki page. This is in contrast to the [[ikiwiki/"
+"directive/template]] directive, which allows inserting templates _into_ the "
+"body of a page."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive can only reference templates that are already installed by "
+"the system administrator, typically into the `/usr/share/ikiwiki/templates` "
+"directory. Example:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!pagetemplate template=\"my_fancy.tmpl\"]]\n"
+msgstr "\t\\[[!pagetemplate template=\"min_smarte.tmpl\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/paste.da.po b/po/underlays/directives/ikiwiki/directive/paste.da.po
new file mode 100644 (file)
index 0000000..6a3f147
--- /dev/null
@@ -0,0 +1,30 @@
+# Danish translation of directives/ikiwiki/directive/paste page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta redir=/ikiwiki/directive/cutpaste]]\n"
+msgstr "[[!meta redir=/ikiwiki/directive/cutpaste]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/ping.da.po b/po/underlays/directives/ikiwiki/directive/ping.da.po
new file mode 100644 (file)
index 0000000..991b1f6
--- /dev/null
@@ -0,0 +1,61 @@
+# Danish translation of directives/ikiwiki/directive/ping page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `ping` directive is supplied by the [[!iki plugins/pinger desc=pinger]] "
+"plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows ikiwiki to be configured to hit a URL each time it "
+"updates the wiki. One way to use this is in conjunction with the [[!iki "
+"plugins/pingee desc=pingee]] plugin to set up a loosely coupled mirror "
+"network, or a branched version of a wiki. By pinging the mirror or branch "
+"each time the main wiki changes, it can be kept up-to-date."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"        \\[[!ping from=\"http://mywiki.com/\"\n"
+"        to=\"http://otherwiki.com/ikiwiki.cgi?do=ping\"]]\n"
+msgstr ""
+"        \\[[!ping from=\"http://mywiki.com/\"\n"
+"        to=\"http://otherwiki.com/ikiwiki.cgi?do=ping\"]]\n"
+
+#. type: Plain text
+msgid ""
+"The \"from\" parameter must be identical to the url of the wiki that is "
+"doing the pinging. This is used to prevent ping loops."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The \"to\" parameter is the url to ping. The example shows how to ping "
+"another ikiwiki instance."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/poll.da.po b/po/underlays/directives/ikiwiki/directive/poll.da.po
new file mode 100644 (file)
index 0000000..6838749
--- /dev/null
@@ -0,0 +1,76 @@
+# Danish translation of directives/ikiwiki/directive/poll page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `poll` directive is supplied by the [[!iki plugins/poll desc=poll]] "
+"plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows you to create online polls in the wiki. Here's an "
+"example use:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!poll 0 \"red\" 0 \"green\" 0 \"blue\"]]\n"
+msgstr "\t\\[[!poll 0 \"rød\" 0 \"grøn\" 0 \"blå\"]]\n"
+
+#. type: Plain text
+msgid ""
+"The numbers indicate how many users voted for that choice. When a user votes "
+"for a choice in the poll, the page is modified and the number incremented."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"While some basic precautions are taken to prevent users from accidentially "
+"voting twice, this sort of poll should not be counted on to be very "
+"accurate; all the usual concerns about web based polling apply. Unless the "
+"page that the poll is in is locked, users can even edit the page and change "
+"the numbers!"
+msgstr ""
+
+#. type: Plain text
+msgid "Parameters:"
+msgstr "Parametre:"
+
+#. type: Bullet: '* '
+msgid ""
+"`open` - Whether voting is still open. Set to \"no\" to close the poll to "
+"voting."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`total` - Show total number of votes at bottom of poll. Default is \"yes\"."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`percent` - Whether to display percents. Default is \"yes\"."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/polygen.da.po b/po/underlays/directives/ikiwiki/directive/polygen.da.po
new file mode 100644 (file)
index 0000000..81c2a4c
--- /dev/null
@@ -0,0 +1,48 @@
+# Danish translation of directives/ikiwiki/directive/polygen page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `polygen` directive is supplied by the [[!iki plugins/polygen "
+"desc=polygen]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows inserting text generated by polygen into a wiki page.  "
+"For example:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!polygen grammar=\"genius\"]]\n"
+msgstr "\t\\[[!polygen grammar=\"genius\"]]\n"
+
+#. type: Plain text
+msgid ""
+"It's also possible to specify a starting nonterminal for the grammar by "
+"including `symbol=\"text\"` in the directive."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/postsparkline.da.po b/po/underlays/directives/ikiwiki/directive/postsparkline.da.po
new file mode 100644 (file)
index 0000000..4725964
--- /dev/null
@@ -0,0 +1,127 @@
+# Danish translation of directives/ikiwiki/directive/postsparkline page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `postsparkline` directive is supplied by the [[!iki plugins/"
+"postsparkline desc=postsparkline]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive uses the [[!iki plugins/sparkline desc=sparkline]] plugin to "
+"create a [[sparkline]] of statistics about a set of pages, such as posts to "
+"a blog."
+msgstr ""
+
+#. type: Title #
+#, no-wrap
+msgid "examples"
+msgstr "eksempler"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\tPost interval: \n"
+"\t\\[[!postsparkline pages=\"blog/* and !*/Discussion\" max=100\n"
+"\tformula=interval style=bar barwidth=2 barspacing=1 height=13]]\n"
+msgstr ""
+"\tBidragsinterval: \n"
+"\t\\[[!postsparkline pages=\"blog/* and !*/Discussion\" max=100\n"
+"\tformula=interval style=bar barwidth=2 barspacing=1 height=13]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\tPosts per month this year: \n"
+"\t\\[[!postsparkline pages=\"blog/* and !*/Discussion\" max=12\n"
+"\tformula=permonth style=bar barwidth=2 barspacing=1 height=13]]\n"
+msgstr ""
+"\tBidrag per måned dette år: \n"
+"\t\\[[!postsparkline pages=\"blog/* and !*/Discussion\" max=12\n"
+"\tformula=permonth style=bar barwidth=2 barspacing=1 height=13]]\n"
+
+#. type: Title #
+#, no-wrap
+msgid "usage"
+msgstr "brug"
+
+#. type: Plain text
+msgid ""
+"All options aside fron the `pages`, `max`, `formula`, `time`, and `color` "
+"options are the same as in [[sparkline]] directive."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"You don't need to specify any data points (though you can if you want to).  "
+"Instead, data points are automatically generated based on the creation times "
+"of pages matched by the specified `pages` [[ikiwiki/PageSpec]]. A maximum of "
+"`max` data points will be generated."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The `formula` parameter controls the formula used to generate data points.  "
+"Available forumlae:"
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`interval` - The height of each point represents how long it has been since "
+"the previous post."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`perday` - Each point represents a day; the height represents how many posts "
+"were made that day."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`permonth` - Each point represents a month; the height represents how many "
+"posts were made that month."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`peryear` - Each point represents a day; the height represents how many "
+"posts were made that year."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The `time` parameter has a default value of \"ctime\", since forumae use the "
+"creation times of pages by default. If you instead want them to use the "
+"modification times of pages, set it to \"mtime\"."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"To change the color used to draw the sparkline, use the `color` parameter.  "
+"For example, \"color=red\"."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/progress.da.po b/po/underlays/directives/ikiwiki/directive/progress.da.po
new file mode 100644 (file)
index 0000000..9ef1a74
--- /dev/null
@@ -0,0 +1,58 @@
+# Danish translation of directives/ikiwiki/directive/progress page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `progress` directive is supplied by the [[!iki plugins/progress "
+"desc=progress]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid "This directive generates a progress bar."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"There are two possible parameter sets.  The first is a single parameter "
+"\"percent\" which holds a percentage figure of how complete the progress bar "
+"is."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The second possible set of parameters is a pair of [[ikiwiki/PageSpec]]s, "
+"`totalpages` and `donepages`. The directive counts the number of pages in "
+"each pagespec and shows the percentage of the total pages that are done."
+msgstr ""
+
+#. type: Plain text
+msgid "For example, to show what percentage of pages have discussion pages:"
+msgstr "Eksempelvis at vise procentdel af sider med diskussionssider:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!progress totalpages=\"* and !*/Discussion\" donepages=\"*/Discussion\"]]\n"
+msgstr "\t\\[[!progress totalpages=\"* and !*/Discussion\" donepages=\"*/Discussion\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/shortcut.da.po b/po/underlays/directives/ikiwiki/directive/shortcut.da.po
new file mode 100644 (file)
index 0000000..2a45de0
--- /dev/null
@@ -0,0 +1,43 @@
+# Danish translation of directives/ikiwiki/directive/shortcut page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-19 23:45+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `shortcut` directive is supplied by the [[!iki plugins/shortcut "
+"desc=shortcut]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows external links to commonly linked to sites to be made "
+"more easily using shortcuts."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The available shortcuts are defined on the [[shortcuts]] page in the wiki. "
+"The `shortcut` directive can only be used on that page."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/sparkline.da.po b/po/underlays/directives/ikiwiki/directive/sparkline.da.po
new file mode 100644 (file)
index 0000000..655b174
--- /dev/null
@@ -0,0 +1,144 @@
+# Danish translation of directives/ikiwiki/directive/sparkline page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `sparkline` directive is supplied by the [[!iki plugins/sparkline "
+"desc=sparkline]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows for embedding sparklines into wiki pages. A sparkline "
+"is a small word-size graphic chart, that is designed to be displayes "
+"alongside text."
+msgstr ""
+
+#. type: Title #
+#, no-wrap
+msgid "examples"
+msgstr "eksempler"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!sparkline 1 3 5 -3 10 0 width=40 height=16\n"
+"\tfeaturepoint=\"4,-3,red,3\" featurepoint=\"5,10,green,3\"]]\n"
+msgstr ""
+"\t\\[[!sparkline 1 3 5 -3 10 0 width=40 height=16\n"
+"\tfeaturepoint=\"4,-3,red,3\" featurepoint=\"5,10,green,3\"]]\n"
+
+#. type: Plain text
+msgid ""
+"This creates a simple line graph, graphing several points.  It will be drawn "
+"40 pixels wide and 16 pixels high. The high point in the line has a green "
+"marker, and the low point has a red marker."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!sparkline 1 -1(red) 1 -1(red) 1 1 1 -1(red) -1(red) style=bar barwidth=2\n"
+"\tbarspacing=1 height=13]]\n"
+msgstr ""
+"\t\\[[!sparkline 1 -1(red) 1 -1(red) 1 1 1 -1(red) -1(red) style=bar barwidth=2\n"
+"\tbarspacing=1 height=13]]\n"
+
+#. type: Plain text
+msgid ""
+"This more complex example generates a bar graph.  The bars are 2 pixels "
+"wide, and separated by one pixel, and the graph is 13 pixels tall. Width is "
+"determined automatically for bar graphs. The points with negative values are "
+"colored red, instead of the default black."
+msgstr ""
+
+#. type: Title #
+#, no-wrap
+msgid "usage"
+msgstr "brug"
+
+#. type: Plain text
+msgid ""
+"The form for the data points is \"x,y\", or just \"y\" if the x values don't "
+"matter. Bar graphs can also add \"(color)\" to specify a color for that bar."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The following named parameters are recognised. Most of these are the same as "
+"those used by the underlying sparkline library, which is documented in more "
+"detail in [its wiki](http://sparkline.wikispaces.com/usage)."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`style` - Either \"line\" (the default) or \"bar\"."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`width` - Width of the graph in pixels. Only needed for line graphs."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`height` - Height of the graph in pixels. Defaults to 16."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`barwidth` - Width of bars in a bar graph. Default is 1 pixel."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`barspacing` - Spacing between bars in a bar graph, in pixels. Default is 1 "
+"pixel."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`ymin`, `ymax` - Minimum and maximum values for the Y axis. This is normally "
+"calculated automatically, but can be explicitly specified to get the same "
+"values for multiple related graphs."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`featurepoint` - Adds a circular marker to a line graph, with optional text. "
+"This can be used to label significant points."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  The value is a comma-delimited list of parameters specifying the feature\n"
+"  point: X value, Y value, color name, circle diameter, text (optional),\n"
+"  and text location (optional). Example: `featurepoint=\"3,5,blue,3\"`\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"  Available values for the text location are: \"top\", \"right\", \"bottom\", and\n"
+"  \"left\".\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/table.da.po b/po/underlays/directives/ikiwiki/directive/table.da.po
new file mode 100644 (file)
index 0000000..174ce11
--- /dev/null
@@ -0,0 +1,121 @@
+# Danish translation of directives/ikiwiki/directive/table page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `table` directive is supplied by the [[!iki plugins/table desc=table]] "
+"plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive can build HTML tables from data in CSV (comma-separated "
+"values)  or DSV (delimiter-separated values) format."
+msgstr ""
+
+#. type: Title ##
+#, no-wrap
+msgid "examples"
+msgstr "eksempler"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!table data=\"\"\"\n"
+msgstr "\t\\[[!table data=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\tCustomer|Amount\n"
+"\tFulanito|134,34\n"
+"\tMenganito|234,56\n"
+"\tMenganito|234,56\n"
+msgstr ""
+"\tKunde|Mængde\n"
+"\tFulanito|134,34\n"
+"\tMenganito|234,56\n"
+"\tMenganito|234,56\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!table class=\"book_record\" format=csv file=\"data/books/record1\"]]\n"
+msgstr "\t\\[[!table class=\"book_record\" format=csv file=\"data/books/record1\"]]\n"
+
+#. type: Plain text
+msgid "In this second example the `record1` page should be similar to:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\"Title\",\"Perl Best Practices\"\n"
+"\t\"Author\",\"Damian Conway\"\n"
+"\t\"Publisher\",\"O’Reilly\"\n"
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"To make a cell span multiple columns, follow it with one or more empty "
+"cells. For example:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\tleft||right|\n"
+"\ta|b|c|d\n"
+"\tthis cell spans 4 columns|||\n"
+msgstr ""
+
+#. type: Title ##
+#, no-wrap
+msgid "usage"
+msgstr "brug"
+
+#. type: Bullet: '* '
+msgid "`data` - Values for the table."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid "`file` - A file in the wiki containing the data."
+msgstr ""
+
+#. type: Bullet: '* '
+msgid ""
+"`format` - The format of the data, either \"csv\", \"dsv\", or \"auto\" (the "
+"default)."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"* `delimiter` - The character used to separate fields. By default,\n"
+"   DSV format uses a pipe (`|`), and CSV uses a comma (`,`).\n"
+"* `class` - A CSS class for the table html element.\n"
+"* `header` - By default, or if set to \"row\", the first data line is used\n"
+"  as the table header. Set it to \"no\" to make a table without a header, or\n"
+"  \"column\" to make the first column be the header.\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/tag.da.po b/po/underlays/directives/ikiwiki/directive/tag.da.po
new file mode 100644 (file)
index 0000000..1bff796
--- /dev/null
@@ -0,0 +1,94 @@
+# Danish translation of directives/ikiwiki/directive/tag page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `tag` and `taglink` directives are supplied by the [[!iki plugins/tag "
+"desc=tag]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid "These directives allow tagging pages. List tags as follows:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!tag tech life linux]]\n"
+msgstr "\t\\[[!tag teknik livet linux]]\n"
+
+#. type: Plain text
+msgid ""
+"The tags work the same as if you had put a (hidden) [[ikiwiki/WikiLink]] on "
+"the page for each tag, so you can use a [[ikiwiki/PageSpec]] match all pages "
+"that are tagged with a given tag, for example. The tags will also show up on "
+"blog entries and at the bottom of the tagged pages, as well as in RSS and "
+"Atom feeds."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"If you want a visible [[ikiwiki/WikiLink]] along with the tag, use taglink "
+"instead:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!taglink foo]]\n"
+"\t\\[[!taglink tagged_as_foo|foo]]\n"
+msgstr ""
+"\t\\[[!taglink foo]]\n"
+"\t\\[[!taglink mærket_af_som_foo|foo]]\n"
+
+#. type: Plain text
+msgid ""
+"Note that if the wiki is configured to use a tagbase, then the tags will be "
+"located under a base directory, such as \"tags/\". This is a useful way to "
+"avoid having to write the full path to tags, if you want to keep them "
+"grouped together out of the way."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"Bear in mind that specifying a tagbase means you will need to incorporate it "
+"into the `link()` [[ikiwiki/PageSpec]] you use: e.g., if your tagbase is "
+"`tag`, you would match pages tagged \"foo\" with `link(tag/foo)`."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"If you want to override the tagbase for a particular tag, you can use "
+"something like this:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!tag ./foo]]\n"
+"\t\\[[!taglink /foo]]\n"
+msgstr ""
+"\t\\[[!tag ./foo]]\n"
+"\t\\[[!taglink /foo]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/taglink.da.po b/po/underlays/directives/ikiwiki/directive/taglink.da.po
new file mode 100644 (file)
index 0000000..1bed76a
--- /dev/null
@@ -0,0 +1,30 @@
+# Danish translation of directives/ikiwiki/directive/tagline page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta redir=/ikiwiki/directive/tag]]\n"
+msgstr "[[!meta redir=/ikiwiki/directive/tag]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/template.da.po b/po/underlays/directives/ikiwiki/directive/template.da.po
new file mode 100644 (file)
index 0000000..92e3177
--- /dev/null
@@ -0,0 +1,62 @@
+# Danish translation of directives/ikiwiki/directive/template page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `template` directive is supplied by the [[!iki plugins/template "
+"desc=template]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"[[Templates]] are files that can be filled out and inserted into pages in "
+"the wiki, by using the template directive. The directive has an `id` "
+"parameter that identifies the template to use. The remaining parameters are "
+"used to fill out the template."
+msgstr ""
+
+#. type: Plain text
+msgid "Example:"
+msgstr "Eksempel:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!template id=note text=\"\"\"Here is the text to insert into my note.\"\"\"]]\n"
+msgstr "\t\\[[!template id=note text=\"\"\"Her er teksten til at sætte ind i min note.\"\"\"]]\n"
+
+#. type: Plain text
+msgid ""
+"This fills out the `note` template, filling in the `text` field with the "
+"specified value, and inserts the result into the page."
+msgstr ""
+"Dette udfylder `note`-skabelonen, med `text`-feltet udfyldt med den angivne "
+"værdi, og indsætter resultatet på siden."
+
+#. type: Plain text
+msgid ""
+"For a list of available templates, and details about how to create more, see "
+"the [[templates]] page."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/testpagespec.da.po b/po/underlays/directives/ikiwiki/directive/testpagespec.da.po
new file mode 100644 (file)
index 0000000..f7ea475
--- /dev/null
@@ -0,0 +1,75 @@
+# Danish translation of directives/ikiwiki/directive/testpagespec page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `testpagespec` directive is supplied by the [[!iki plugins/testpagespec "
+"desc=testpagespec]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"This directive allows testing a [[ikiwiki/PageSpec]] to see if it matches a "
+"page, and to see the part that matches, or causes the match to fail."
+msgstr ""
+
+#. type: Plain text
+msgid "Example uses:"
+msgstr "Eksempelbrug:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!testpagespec pagespec=\"foopage and barpage\" match=\"foopage\"]]\n"
+msgstr "\t\\[[!testpagespec pagespec=\"foopage and barpage\" match=\"foopage\"]]\n"
+
+#. type: Plain text
+msgid ""
+"This will print out something like \"no match: barpage does not match foopage"
+"\", highlighting which part of the [[ikiwiki/PageSpec]] is causing the match "
+"to fail."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!testpagespec pagespec=\"foopage or !bar*\" match=\"barpage\"]]\n"
+msgstr "\t\\[[!testpagespec pagespec=\"foopage or !bar*\" match=\"barpage\"]]\n"
+
+#. type: Plain text
+msgid ""
+"This will print out something like \"no match: bar* matches barpage\", since "
+"the part of the [[ikiwiki/PageSpec]] that fails is this negated match."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!testpagespec pagespec=\"foopage or barpage\" match=\"barpage\"]]\n"
+msgstr "\t\\[[!testpagespec pagespec=\"foopage or barpage\" match=\"barpage\"]]\n"
+
+#. type: Plain text
+msgid ""
+"This will print out something like \"match: barpage matches barpage\", "
+"indicating the part of the [[ikiwiki/PageSpec]] that caused it to match."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/teximg.da.po b/po/underlays/directives/ikiwiki/directive/teximg.da.po
new file mode 100644 (file)
index 0000000..179c502
--- /dev/null
@@ -0,0 +1,76 @@
+# Danish translation of directives/ikiwiki/directive/teximg page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `teximg` directive is supplied by the [[!iki plugins/teximg "
+"desc=teximg]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid "This directive renders LaTeX formulas into images."
+msgstr ""
+
+#. type: Title ##
+#, no-wrap
+msgid "examples"
+msgstr "eksempler"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!teximg code=\"\\frac{1}{2}\"]]\n"
+"\t\\[[!teximg code=\"E = - \\frac{Z^2 \\cdot  \\mu \\cdot e^4}{32\\pi^2 \\epsilon_0^2 \\hbar^2 n^2}\" ]]\n"
+msgstr ""
+
+#. type: Plain text
+msgid "To scale the image, use height=x:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\t\\[[!teximg code=\"\\frac{1}{2}\" height=\"17\"]]\n"
+"\t\\[[!teximg code=\"\\frac{1}{2}\" height=\"8\"]]\n"
+msgstr ""
+"\t\\[[!teximg code=\"\\frac{1}{2}\" height=\"17\"]]\n"
+"\t\\[[!teximg code=\"\\frac{1}{2}\" height=\"8\"]]\n"
+
+#. type: Plain text
+msgid ""
+"If no height is chosen the default height 12 is used. Valid heights are: 8, "
+"9, 10, 11, 12, 14, 17, 20. If another height is entered, the closest "
+"available height is used."
+msgstr ""
+
+#. type: Plain text
+msgid "To add an alt text to the image, use alt=\"text\":"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!teximg code=\"\\frac{1}{2}\" alt=\"1/2\"]]\n"
+msgstr "\t\\[[!teximg code=\"\\frac{1}{2}\" alt=\"1/2\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/toc.da.po b/po/underlays/directives/ikiwiki/directive/toc.da.po
new file mode 100644 (file)
index 0000000..5dcd5b5
--- /dev/null
@@ -0,0 +1,65 @@
+# Danish translation of directives/ikiwiki/directive/toc page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `toc` directive is supplied by the [[!iki plugins/toc desc=toc]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid "Add a table of contents to a page:"
+msgstr "Tilføje en indholdsfortegnelse til en side:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!toc ]]\n"
+msgstr "\t\\[[!toc ]]\n"
+
+#. type: Plain text
+msgid ""
+"The table of contents will be automatically generated based on the headers "
+"of the page. By default only the largest headers present on the page will be "
+"shown; to control how many levels of headers are shown, use the `levels` "
+"parameter:"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!toc levels=2]]\n"
+msgstr "\t\\[[!toc levels=2]]\n"
+
+#. type: Plain text
+msgid ""
+"The toc directive will take the level of the first header as the topmost "
+"level, even if there are higher levels seen later in the file."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The table of contents will be created as an ordered list. If you want an "
+"unordered list instead, you can change the list-style in your local style "
+"sheet."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/toggle.da.po b/po/underlays/directives/ikiwiki/directive/toggle.da.po
new file mode 100644 (file)
index 0000000..7b1ba9b
--- /dev/null
@@ -0,0 +1,95 @@
+# Danish translation of directives/ikiwiki/directive/toggle page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `toggle` and `toggleable` directives are supplied by the [[!iki plugins/"
+"toggle desc=toggle]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"With these directives you can create links on pages that, when clicked, "
+"toggle display of other parts of the page."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"It uses javascript to accomplish this; browsers without javascript will "
+"always see the full page content."
+msgstr ""
+
+#. type: Plain text
+msgid "Example use:"
+msgstr "Eksempler på brug:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!toggle id=\"ipsum\" text=\"show\"]]\n"
+msgstr "\t\\[[!toggle id=\"ipsum\" text=\"vis\"]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!toggleable id=\"ipsum\" text=\"\"\"\n"
+msgstr "\t\\[[!toggleable id=\"ipsum\" text=\"\"\"\n"
+
+#. type: Plain text
+#, no-wrap
+msgid ""
+"\tLorem ipsum dolor sit amet, consectetur adipisicing elit, sed do\n"
+"\teiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim\n"
+"\tad minim veniam, quis nostrud exercitation ullamco laboris nisi ut\n"
+"\taliquip ex ea commodo consequat.\n"
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "\t[[!toggle id=\"ipsum\" text=\"hide\"]]\n"
+msgstr "\t[[!toggle id=\"ipsum\" text=\"skjul\"]]\n"
+
+#. type: Plain text
+msgid ""
+"Note that you can include wiki markup in the toggleable text, including even "
+"additional toggles, as shown in the above example."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"Also, the toggle and the togglable definitions do not need to be next to "
+"each other, but can be located anywhere on the page. There can also be "
+"mutiple toggles that all toggle a single togglable."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"The id has a default value of \"default\", so can be omitted in simple cases."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"If you'd like a toggleable to be displayed by default, and toggle to hidden, "
+"then pass a parameter \"open=yes\" when setting up the toggleable."
+msgstr ""
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/toggleable.da.po b/po/underlays/directives/ikiwiki/directive/toggleable.da.po
new file mode 100644 (file)
index 0000000..c8a95f2
--- /dev/null
@@ -0,0 +1,30 @@
+# Danish translation of directives/ikiwiki/directive/toggleable page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta redir=/ikiwiki/directive/toggle]]\n"
+msgstr "[[!meta redir=/ikiwiki/directive/toggle]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/directives/ikiwiki/directive/version.da.po b/po/underlays/directives/ikiwiki/directive/version.da.po
new file mode 100644 (file)
index 0000000..9c6bd97
--- /dev/null
@@ -0,0 +1,50 @@
+# Danish translation of directives/ikiwiki/directive/version page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-19 23:45+0200\n"
+"PO-Revision-Date: 2009-07-23 00:06+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"The `version` directive is supplied by the [[!iki plugins/version "
+"desc=version]] plugin."
+msgstr ""
+
+#. type: Plain text
+msgid "This directive allows inserting the version of ikiwiki onto a page."
+msgstr ""
+
+#. type: Plain text
+msgid ""
+"Whenever ikiwiki is upgraded to a new version, the page will be rebuilt, "
+"updating the version number."
+msgstr ""
+
+#. type: Plain text
+msgid "Use is simple:"
+msgstr "Brug er simpelt:"
+
+#. type: Plain text
+#, no-wrap
+msgid "\t\\[[!version ]]\n"
+msgstr "\t\\[[!version ]]\n"
+
+#. type: Plain text
+#, no-wrap
+msgid "[[!meta robots=\"noindex, follow\"]]\n"
+msgstr "[[!meta robots=\"noindex, follow\"]]\n"
diff --git a/po/underlays/smiley/smileys.da.po b/po/underlays/smiley/smileys.da.po
new file mode 100644 (file)
index 0000000..2f53ef8
--- /dev/null
@@ -0,0 +1,214 @@
+# Danish translation of smiley/smileys page for ikiwiki.
+# Copyright (C) 2008-2009 Jonas Smedegaard <dr@jones.dk>
+# This file is distributed under the same license as the ikiwiki package.
+# Jonas Smedegaard <dr@jones.dk>, 2008.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: ikiwiki 3.15\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-07-22 11:17+0300\n"
+"PO-Revision-Date: 2009-07-22 21:28+0200\n"
+"Last-Translator: Jonas Smedegaard <dr@jones.dk>\n"
+"Language-Team: None\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Poedit-Language: Danish\n"
+"X-Poedit-Country: DENMARK\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#. type: Plain text
+msgid ""
+"This page is used to control what smileys are supported by the wiki.  Just "
+"write the text of a smiley to display it."
+msgstr ""
+"Denne side bruges til at styre hvilke smileys denne wiki understøtter. Skriv "
+"blot smiley-teksten for at vise den."
+
+#. type: Bullet: '* '
+msgid "\\\\:)\t[[smileys/smile.png]]"
+msgstr "\\\\:)\t[[smileys/smile.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:-)\t[[smileys/smile.png]]"
+msgstr "\\\\:-)\t[[smileys/smile.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:D\t[[smileys/biggrin.png]]"
+msgstr "\\\\:D\t[[smileys/biggrin.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:-D\t[[smileys/biggrin.png]]"
+msgstr "\\\\:-D\t[[smileys/biggrin.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\B)\t[[smileys/smile2.png]]"
+msgstr "\\\\B)\t[[smileys/smile2.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\B-)\t[[smileys/smile2.png]]"
+msgstr "\\\\B-)\t[[smileys/smile2.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:))\t[[smileys/smile3.png]]"
+msgstr "\\\\:))\t[[smileys/smile3.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:-))\t[[smileys/smile3.png]]"
+msgstr "\\\\:-))\t[[smileys/smile3.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\;)\t[[smileys/smile4.png]]"
+msgstr "\\\\;)\t[[smileys/smile4.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\;-)\t[[smileys/smile4.png]]"
+msgstr "\\\\;-)\t[[smileys/smile4.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:\\\t[[smileys/ohwell.png]]"
+msgstr "\\\\:\\\t[[smileys/ohwell.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:-\\\t[[smileys/ohwell.png]]"
+msgstr "\\\\:-\\\t[[smileys/ohwell.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:/\t[[smileys/ohwell.png]]"
+msgstr "\\\\:/\t[[smileys/ohwell.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:-/\t[[smileys/ohwell.png]]"
+msgstr "\\\\:-/\t[[smileys/ohwell.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:|\t[[smileys/neutral.png]]"
+msgstr "\\\\:|\t[[smileys/neutral.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:-|\t[[smileys/neutral.png]]"
+msgstr "\\\\:-|\t[[smileys/neutral.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\>:>\t[[smileys/devil.png]]"
+msgstr "\\\\>:>\t[[smileys/devil.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\X-(\t[[smileys/angry.png]]"
+msgstr "\\\\X-(\t[[smileys/angry.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\<:(\t[[smileys/frown.png]]"
+msgstr "\\\\<:(\t[[smileys/frown.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:(\t[[smileys/sad.png]]"
+msgstr "\\\\:(\t[[smileys/sad.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:-(\t[[smileys/sad.png]]"
+msgstr "\\\\:-(\t[[smileys/sad.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:-?\t[[smileys/tongue.png]]"
+msgstr "\\\\:-?\t[[smileys/tongue.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:-P\t[[smileys/tongue.png]]"
+msgstr "\\\\:-P\t[[smileys/tongue.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\:o\t[[smileys/redface.png]]"
+msgstr "\\\\:o\t[[smileys/redface.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\|)\t[[smileys/tired.png]]"
+msgstr "\\\\|)\t[[smileys/tired.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\|-)\t[[smileys/tired.png]]"
+msgstr "\\\\|-)\t[[smileys/tired.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\{OK}\t[[smileys/thumbs-up.png]]"
+msgstr "\\\\{OK}\t[[smileys/thumbs-up.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\{X}\t[[smileys/icon-error.png]]"
+msgstr "\\\\{X}\t[[smileys/icon-error.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\{i}\t[[smileys/icon-info.png]]"
+msgstr "\\\\{i}\t[[smileys/icon-info.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\(./)\t[[smileys/checkmark.png]]"
+msgstr "\\\\(./)\t[[smileys/checkmark.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\(!)\t[[smileys/idea.png]]"
+msgstr "\\\\(!)\t[[smileys/idea.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\[!]\t[[smileys/attention.png]]"
+msgstr "\\\\[!]\t[[smileys/attention.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\/!\\\t[[smileys/alert.png]]"
+msgstr "\\\\/!\\\t[[smileys/alert.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\(?)\t[[smileys/question.png]]"
+msgstr "\\\\(?)\t[[smileys/question.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\{x}\t[[smileys/star_on.png]]"
+msgstr "\\\\{x}\t[[smileys/star_on.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\{*}\t[[smileys/star_on.png]]"
+msgstr "\\\\{*}\t[[smileys/star_on.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\{o}\t[[smileys/star_off.png]]"
+msgstr "\\\\{o}\t[[smileys/star_off.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\{1}\t[[smileys/prio1.png]]"
+msgstr "\\\\{1}\t[[smileys/prio1.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\{2}\t[[smileys/prio2.png]]"
+msgstr "\\\\{2}\t[[smileys/prio2.png]]"
+
+#. type: Bullet: '* '
+msgid "\\\\{3}\t[[smileys/prio3.png]]"
+msgstr "\\\\{3}\t[[smileys/prio3.png]]"
+
+#. type: Plain text
+msgid "For example: {x} B) {x}"
+msgstr "Eksempel: {x} B) {x}"
+
+#. type: Plain text
+msgid ""
+"To change the supported smileys, just edit the lists on this page.  Note "
+"that the format is important; each list item should start with the text that "
+"is turned into the smiley, escaped so that users can see what produces it, "
+"followed by a [[ikiwiki/WikiLink]] to the image to display."
+msgstr ""
+"Redigér listen på denne side for at ændre understøttede smileys.  Bemærk at "
+"formatet er vigtigt: hvert listeemne skal begynde med teksten der skal "
+"omdannes til en smiley, omskrevet så brugere kan se hvordan det dannes, "
+"efterfulgt af en [[ikiwiki/WikiLink]] til billedet der skal vises."
+
+#. type: Plain text
+msgid ""
+"/!\\ Bear in mind that the link to the image needs to be written in a way "
+"that will work if it's copied to other pages on the wiki. So be sure to "
+"include the smileys directory in the path to the file."
+msgstr ""
+"/!\\ Tænk på at det er nødvendigt at skrive henvisningen til billedet på en "
+"måde så det virker hvis det kopieres til andre sider på wikien. Sørg derfor "
+"for at medtage smileys direkte i stien til filen."
index e93349c91b64b52702b6f12c8060ebca6e505d67..75fceb4450e14a65f61a9db0b2d1939978817f72 100644 (file)
--- 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: 2009-06-12 19:52-0400\n"
+"POT-Creation-Date: 2009-07-20 06:45+0200\n"
 "PO-Revision-Date: 2007-01-13 15:31+1030\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -55,7 +55,7 @@ msgstr "Tùy thích đã được lưu."
 msgid "You are banned."
 msgstr "Bạn bị cấm ra."
 
-#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1218
+#: ../IkiWiki/CGI.pm:390 ../IkiWiki/CGI.pm:391 ../IkiWiki.pm:1253
 msgid "Error"
 msgstr "Lỗi"
 
@@ -190,6 +190,7 @@ msgstr ""
 #: ../IkiWiki/Plugin/brokenlinks.pm:33 ../IkiWiki/Plugin/editpage.pm:233
 #: ../IkiWiki/Plugin/inline.pm:357 ../IkiWiki/Plugin/inline.pm:365
 #: ../IkiWiki/Plugin/opendiscussion.pm:26 ../IkiWiki/Plugin/orphans.pm:37
+#: ../IkiWiki/Plugin/po.pm:283 ../IkiWiki/Plugin/po.pm:286
 #: ../IkiWiki/Render.pm:80 ../IkiWiki/Render.pm:84 ../IkiWiki/Render.pm:150
 msgid "Discussion"
 msgstr "Thảo luận"
@@ -349,9 +350,10 @@ msgstr ""
 msgid "you are not allowed to change file modes"
 msgstr ""
 
-#: ../IkiWiki/Plugin/google.pm:27
+#: ../IkiWiki/Plugin/google.pm:27 ../IkiWiki/Plugin/po.pm:124
+#: ../IkiWiki/Plugin/search.pm:36
 #, fuzzy, perl-format
-msgid "Must specify %s when using the google search plugin"
+msgid "Must specify %s when using the %s plugin"
 msgstr "Cần phải xác định %s khi dùng bổ sung tìm kiếm"
 
 #: ../IkiWiki/Plugin/google.pm:31
@@ -377,17 +379,17 @@ msgstr "linkmap không chạy dot được"
 msgid "prog not a valid graphviz program"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:46
+#: ../IkiWiki/Plugin/highlight.pm:47
 #, perl-format
 msgid "tohighlight contains unknown file type '%s'"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:57
+#: ../IkiWiki/Plugin/highlight.pm:58
 #, perl-format
 msgid "Source code: %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/highlight.pm:122
+#: ../IkiWiki/Plugin/highlight.pm:123
 msgid ""
 "warning: highlight perl module not available; falling back to pass through"
 msgstr ""
@@ -399,7 +401,7 @@ msgstr "chưa cài đặt polygen"
 
 #: ../IkiWiki/Plugin/img.pm:69
 #, perl-format
-msgid "bad size \"%s\""
+msgid "wrong size format \"%s\" (should be WxH)"
 msgstr ""
 
 #: ../IkiWiki/Plugin/img.pm:80 ../IkiWiki/Plugin/img.pm:84
@@ -573,6 +575,103 @@ msgstr ""
 msgid "LWP not found, not pinging"
 msgstr "Không tìm thấy RPC::XML::Client nên không gửi gói tin ping"
 
+#: ../IkiWiki/Plugin/po.pm:130
+msgid ""
+"At least one slave language must be defined in po_slave_languages when using "
+"the po plugin"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:136
+#, perl-format
+msgid "%s is not a valid language code"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:148
+#, perl-format
+msgid ""
+"%s is not a valid value for po_link_to, falling back to po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:153
+msgid ""
+"po_link_to=negotiated requires usedirs to be enabled, falling back to "
+"po_link_to=default"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:276
+msgid "discussion"
+msgstr "thảo luận"
+
+#: ../IkiWiki/Plugin/po.pm:373
+#, perl-format
+msgid "re-rendering all pages to fix meta titles"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:377 ../IkiWiki/Render.pm:415
+#, perl-format
+msgid "rendering %s"
+msgstr "đang vẽ %s"
+
+#: ../IkiWiki/Plugin/po.pm:410
+msgid "updated PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:434
+msgid ""
+"Can not remove a translation. Removing the master page, though, removes its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:454
+msgid ""
+"Can not rename a translation. Renaming the master page, though, renames its "
+"translations as well."
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:816
+#, perl-format
+msgid "POT file (%s) does not exist"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:824
+#, fuzzy, perl-format
+msgid "failed to update %s"
+msgstr "lỗi biên dịch %s"
+
+#: ../IkiWiki/Plugin/po.pm:830
+#, fuzzy, perl-format
+msgid "failed to copy the POT file to %s"
+msgstr "lỗi biên dịch %s"
+
+#: ../IkiWiki/Plugin/po.pm:866
+msgid "N/A"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:879
+#, fuzzy, perl-format
+msgid "failed to translate %s"
+msgstr "lỗi ghi %s: %s"
+
+#: ../IkiWiki/Plugin/po.pm:955
+msgid "removed obsolete PO files"
+msgstr ""
+
+#: ../IkiWiki/Plugin/po.pm:1018 ../IkiWiki/Plugin/po.pm:1032
+#: ../IkiWiki/Plugin/po.pm:1072
+#, fuzzy, perl-format
+msgid "failed to write %s"
+msgstr "lỗi ghi %s: %s"
+
+#: ../IkiWiki/Plugin/po.pm:1030
+#, fuzzy
+msgid "failed to translate"
+msgstr "linkmap không chạy dot được"
+
+#: ../IkiWiki/Plugin/po.pm:1035
+#, fuzzy, perl-format
+msgid "failed to read %s"
+msgstr "lỗi ghi %s: %s"
+
 #: ../IkiWiki/Plugin/poll.pm:69
 msgid "vote"
 msgstr "bỏ phiếu"
@@ -690,16 +789,16 @@ msgstr "%s bị %s khoá nên không thể sửa được"
 msgid "%s is not a file"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:115
+#: ../IkiWiki/Plugin/remove.pm:134
 #, perl-format
 msgid "confirm removal of %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:152
+#: ../IkiWiki/Plugin/remove.pm:171
 msgid "Please select the attachments to remove."
 msgstr ""
 
-#: ../IkiWiki/Plugin/remove.pm:192
+#: ../IkiWiki/Plugin/remove.pm:211
 msgid "removed"
 msgstr ""
 
@@ -728,38 +827,33 @@ msgstr ""
 msgid "%s already exists on disk"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:101
+#: ../IkiWiki/Plugin/rename.pm:122
 #, fuzzy, perl-format
 msgid "rename %s"
 msgstr "đang vẽ %s"
 
-#: ../IkiWiki/Plugin/rename.pm:140
+#: ../IkiWiki/Plugin/rename.pm:161
 msgid "Also rename SubPages and attachments"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:226
+#: ../IkiWiki/Plugin/rename.pm:247
 msgid "Only one attachment can be renamed at a time."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:229
+#: ../IkiWiki/Plugin/rename.pm:250
 msgid "Please select the attachment to rename."
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:340
+#: ../IkiWiki/Plugin/rename.pm:347
 #, perl-format
 msgid "rename %s to %s"
 msgstr ""
 
-#: ../IkiWiki/Plugin/rename.pm:495
+#: ../IkiWiki/Plugin/rename.pm:571
 #, fuzzy, perl-format
 msgid "update for rename of %s to %s"
 msgstr "cập nhật %2$s của %1$s bởi %3$s"
 
-#: ../IkiWiki/Plugin/search.pm:36
-#, perl-format
-msgid "Must specify %s when using the search plugin"
-msgstr "Cần phải xác định %s khi dùng bổ sung tìm kiếm"
-
 #: ../IkiWiki/Plugin/search.pm:182
 #, perl-format
 msgid "need Digest::SHA1 to index %s"
@@ -798,11 +892,11 @@ msgid "parse error"
 msgstr "linkmap không chạy dot được"
 
 #: ../IkiWiki/Plugin/sparkline.pm:78
-msgid "bad featurepoint diameter"
+msgid "invalid featurepoint diameter"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:88
-msgid "bad featurepoint location"
+msgid "invalid featurepoint location"
 msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:99
@@ -811,7 +905,7 @@ msgstr ""
 
 #: ../IkiWiki/Plugin/sparkline.pm:104
 #, fuzzy
-msgid "bad height value"
+msgid "invalid height value"
 msgstr "linkmap không chạy dot được"
 
 #: ../IkiWiki/Plugin/sparkline.pm:111
@@ -821,7 +915,7 @@ msgstr "mẫu thiếu tham số id"
 
 #: ../IkiWiki/Plugin/sparkline.pm:115
 #, fuzzy
-msgid "bad width value"
+msgid "invalid width value"
 msgstr "linkmap không chạy dot được"
 
 #: ../IkiWiki/Plugin/sparkline.pm:153
@@ -932,52 +1026,47 @@ msgid ""
 "allow this"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:278 ../IkiWiki/Render.pm:303
+#: ../IkiWiki/Render.pm:277 ../IkiWiki/Render.pm:302
 #, perl-format
 msgid "skipping bad filename %s"
 msgstr "đang bỏ qua tên tập tin sai %s"
 
-#: ../IkiWiki/Render.pm:285
+#: ../IkiWiki/Render.pm:284
 #, perl-format
 msgid "%s has multiple possible source pages"
 msgstr ""
 
-#: ../IkiWiki/Render.pm:361
+#: ../IkiWiki/Render.pm:370
 #, perl-format
 msgid "removing old page %s"
 msgstr "đang gỡ bỏ trang cũ %s"
 
-#: ../IkiWiki/Render.pm:401
+#: ../IkiWiki/Render.pm:410
 #, perl-format
 msgid "scanning %s"
 msgstr "đang quét %s"
 
-#: ../IkiWiki/Render.pm:406
-#, perl-format
-msgid "rendering %s"
-msgstr "đang vẽ %s"
-
-#: ../IkiWiki/Render.pm:427
+#: ../IkiWiki/Render.pm:436
 #, perl-format
 msgid "rendering %s, which links to %s"
 msgstr "đang vẽ %s mà liên kết tới %s"
 
-#: ../IkiWiki/Render.pm:448
+#: ../IkiWiki/Render.pm:457
 #, perl-format
 msgid "rendering %s, which depends on %s"
 msgstr "đang vẽ %s mà phụ thuộc vào %s"
 
-#: ../IkiWiki/Render.pm:487
+#: ../IkiWiki/Render.pm:496
 #, 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:499
+#: ../IkiWiki/Render.pm:508
 #, 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:523
+#: ../IkiWiki/Render.pm:532
 #, perl-format
 msgid "ikiwiki: cannot render %s"
 msgstr "ikiwiki: không thể vẽ %s"
@@ -1069,16 +1158,16 @@ msgstr ""
 msgid "failed to load external plugin needed for %s plugin: %s"
 msgstr ""
 
-#: ../IkiWiki.pm:1201
+#: ../IkiWiki.pm:1236
 #, fuzzy, perl-format
 msgid "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"
 
-#: ../IkiWiki.pm:1741
+#: ../IkiWiki.pm:1776
 msgid "yes"
 msgstr ""
 
-#: ../IkiWiki.pm:1873
+#: ../IkiWiki.pm:1908
 #, fuzzy, perl-format
 msgid "cannot match pages: %s"
 msgstr "không thể đọc %s: %s"
@@ -1103,11 +1192,9 @@ msgstr ""
 msgid "What is the domain name of the web server?"
 msgstr ""
 
-#~ msgid "discussion"
-#~ msgstr "thảo luận"
-
-#~ msgid "failed to write %s: %s"
-#~ msgstr "lỗi ghi %s: %s"
+#, fuzzy
+#~ msgid "Must specify %s when using the google search plugin"
+#~ msgstr "Cần phải xác định %s khi dùng bổ sung tìm kiếm"
 
 #, fuzzy
 #~ msgid "failed to find url in html"
index fd003749291c73023ddf05d5ba11c15b90329a58..d74f64e362f6e0822ec953e2eda2ce95c05764ea 100755 (executable)
@@ -5,7 +5,7 @@ use Test::More 'no_plan';
 
 ok(! system("rm -rf t/tmp; mkdir t/tmp"));
 ok(! system("make -s ikiwiki.out"));
-ok(! system("make extra_install DESTDIR=`pwd`/t/tmp/install PREFIX=/usr >/dev/null"));
+ok(! system("make underlay_install DESTDIR=`pwd`/t/tmp/install PREFIX=/usr >/dev/null"));
 
 foreach my $plugin ("", "listdirectives") {
        ok(! system("perl -I. ./ikiwiki.out -rebuild -plugin brokenlinks ".
diff --git a/t/po.t b/t/po.t
new file mode 100755 (executable)
index 0000000..b6885a3
--- /dev/null
+++ b/t/po.t
@@ -0,0 +1,177 @@
+#!/usr/bin/perl
+# -*- cperl-indent-level: 8; -*-
+use warnings;
+use strict;
+use File::Temp qw{tempdir};
+
+BEGIN {
+       unless (eval { require Locale::Po4a::Chooser }) {
+               eval q{
+                       use Test::More skip_all => "Locale::Po4a::Chooser::new is not available"
+               }
+       }
+       unless (eval { require Locale::Po4a::Po }) {
+               eval q{
+                       use Test::More skip_all => "Locale::Po4a::Po::new is not available"
+               }
+       }
+}
+
+use Test::More tests => 65;
+
+BEGIN { use_ok("IkiWiki"); }
+
+my $msgprefix;
+
+my $dir = tempdir("ikiwiki-test-po.XXXXXXXXXX",
+                 DIR => File::Spec->tmpdir,
+                 CLEANUP => 1);
+
+### Init
+%config=IkiWiki::defaultconfig();
+$config{srcdir} = "$dir/src";
+$config{destdir} = "$dir/dst";
+$config{discussion} = 0;
+$config{po_master_language} = { code => 'en',
+                               name => 'English'
+                             };
+$config{po_slave_languages} = {
+                              es => 'Castellano',
+                              fr => "Français"
+                             };
+$config{po_translatable_pages}='index or test1 or test2 or translatable';
+$config{po_link_to}='negotiated';
+IkiWiki::loadplugins();
+IkiWiki::checkconfig();
+ok(IkiWiki::loadplugin('po'), "po plugin loaded");
+
+### seed %pagesources and %pagecase
+$pagesources{'index'}='index.mdwn';
+$pagesources{'index.fr'}='index.fr.po';
+$pagesources{'index.es'}='index.es.po';
+$pagesources{'test1'}='test1.mdwn';
+$pagesources{'test1.fr'}='test1.fr.po';
+$pagesources{'test2'}='test2.mdwn';
+$pagesources{'test2.es'}='test2.es.po';
+$pagesources{'test2.fr'}='test2.fr.po';
+$pagesources{'test3'}='test3.mdwn';
+$pagesources{'test3.es'}='test3.es.mdwn';
+$pagesources{'translatable'}='translatable.mdwn';
+$pagesources{'translatable.fr'}='translatable.fr.po';
+$pagesources{'translatable.es'}='translatable.es.po';
+$pagesources{'nontranslatable'}='nontranslatable.mdwn';
+foreach my $page (keys %pagesources) {
+    $IkiWiki::pagecase{lc $page}=$page;
+}
+
+### populate srcdir
+writefile('index.mdwn', $config{srcdir}, '[[translatable]] [[nontranslatable]]');
+writefile('test1.mdwn', $config{srcdir}, 'test1 content');
+writefile('test2.mdwn', $config{srcdir}, 'test2 content');
+writefile('test3.mdwn', $config{srcdir}, 'test3 content');
+writefile('translatable.mdwn', $config{srcdir}, '[[nontranslatable]]');
+writefile('nontranslatable.mdwn', $config{srcdir}, '[[/]] [[translatable]]');
+
+### istranslatable/istranslation
+# we run these tests twice because memoization attempts made them
+# succeed once every two tries...
+foreach (1, 2) {
+ok(IkiWiki::Plugin::po::istranslatable('index'), "index is translatable");
+ok(IkiWiki::Plugin::po::istranslatable('/index'), "/index is translatable");
+ok(! IkiWiki::Plugin::po::istranslatable('index.fr'), "index.fr is not translatable");
+ok(! IkiWiki::Plugin::po::istranslatable('index.es'), "index.es is not translatable");
+ok(! IkiWiki::Plugin::po::istranslatable('/index.fr'), "/index.fr is not translatable");
+ok(! IkiWiki::Plugin::po::istranslation('index'), "index is not a translation");
+ok(IkiWiki::Plugin::po::istranslation('index.fr'), "index.fr is a translation");
+ok(IkiWiki::Plugin::po::istranslation('index.es'), "index.es is a translation");
+ok(IkiWiki::Plugin::po::istranslation('/index.fr'), "/index.fr is a translation");
+ok(IkiWiki::Plugin::po::istranslatable('test2'), "test2 is translatable");
+ok(! IkiWiki::Plugin::po::istranslation('test2'), "test2 is not a translation");
+ok(! IkiWiki::Plugin::po::istranslatable('test3'), "test3 is not translatable");
+ok(! IkiWiki::Plugin::po::istranslation('test3'), "test3 is not a translation");
+}
+
+### links
+require IkiWiki::Render;
+
+sub refresh_n_scan(@) {
+       my @masterfiles_rel=@_;
+       foreach my $masterfile_rel (@masterfiles_rel) {
+               my $masterfile=srcfile($masterfile_rel);
+               IkiWiki::scan($masterfile_rel);
+               next unless IkiWiki::Plugin::po::istranslatable(pagename($masterfile_rel));
+               my @pofiles=IkiWiki::Plugin::po::pofiles($masterfile);
+               IkiWiki::Plugin::po::refreshpot($masterfile);
+               IkiWiki::Plugin::po::refreshpofiles($masterfile, @pofiles);
+               map IkiWiki::scan(IkiWiki::abs2rel($_, $config{srcdir})), @pofiles;
+       }
+}
+
+$config{po_link_to}='negotiated';
+$msgprefix="links (po_link_to=negotiated)";
+refresh_n_scan('index.mdwn', 'translatable.mdwn', 'nontranslatable.mdwn');
+is_deeply(\@{$links{'index'}}, ['translatable', 'nontranslatable'], "$msgprefix index");
+is_deeply(\@{$links{'index.es'}}, ['translatable.es', 'nontranslatable'], "$msgprefix index.es");
+is_deeply(\@{$links{'index.fr'}}, ['translatable.fr', 'nontranslatable'], "$msgprefix index.fr");
+is_deeply(\@{$links{'translatable'}}, ['nontranslatable'], "$msgprefix translatable");
+is_deeply(\@{$links{'translatable.es'}}, ['nontranslatable'], "$msgprefix translatable.es");
+is_deeply(\@{$links{'translatable.fr'}}, ['nontranslatable'], "$msgprefix translatable.fr");
+is_deeply(\@{$links{'nontranslatable'}}, ['/', 'translatable', 'translatable.fr', 'translatable.es'], "$msgprefix nontranslatable");
+
+$config{po_link_to}='current';
+$msgprefix="links (po_link_to=current)";
+refresh_n_scan('index.mdwn', 'translatable.mdwn', 'nontranslatable.mdwn');
+is_deeply(\@{$links{'index'}}, ['translatable', 'nontranslatable'], "$msgprefix index");
+is_deeply(\@{$links{'index.es'}}, [ map bestlink('index.es', $_), ('translatable.es', 'nontranslatable')], "$msgprefix index.es");
+is_deeply(\@{$links{'index.fr'}}, [ map bestlink('index.fr', $_), ('translatable.fr', 'nontranslatable')], "$msgprefix index.fr");
+is_deeply(\@{$links{'translatable'}}, [bestlink('translatable', 'nontranslatable')], "$msgprefix translatable");
+is_deeply(\@{$links{'translatable.es'}}, ['nontranslatable'], "$msgprefix translatable.es");
+is_deeply(\@{$links{'translatable.fr'}}, ['nontranslatable'], "$msgprefix translatable.fr");
+is_deeply(\@{$links{'nontranslatable'}}, ['/', 'translatable', 'translatable.fr', 'translatable.es'], "$msgprefix nontranslatable");
+
+### targetpage
+$config{usedirs}=0;
+$msgprefix="targetpage (usedirs=0)";
+is(targetpage('test1', 'html'), 'test1.en.html', "$msgprefix test1");
+is(targetpage('test1.fr', 'html'), 'test1.fr.html', "$msgprefix test1.fr");
+$config{usedirs}=1;
+$msgprefix="targetpage (usedirs=1)";
+is(targetpage('index', 'html'), 'index.en.html', "$msgprefix index");
+is(targetpage('index.fr', 'html'), 'index.fr.html', "$msgprefix index.fr");
+is(targetpage('test1', 'html'), 'test1/index.en.html', "$msgprefix test1");
+is(targetpage('test1.fr', 'html'), 'test1/index.fr.html', "$msgprefix test1.fr");
+is(targetpage('test3', 'html'), 'test3/index.html', "$msgprefix test3 (non-translatable page)");
+is(targetpage('test3.es', 'html'), 'test3.es/index.html', "$msgprefix test3.es (non-translatable page)");
+
+### urlto -> index
+$config{po_link_to}='current';
+$msgprefix="urlto (po_link_to=current)";
+is(urlto('', 'index'), './index.en.html', "$msgprefix index -> ''");
+is(urlto('', 'nontranslatable'), '../index.en.html', "$msgprefix nontranslatable -> ''");
+is(urlto('', 'translatable.fr'), '../index.fr.html', "$msgprefix translatable.fr -> ''");
+$config{po_link_to}='negotiated';
+$msgprefix="urlto (po_link_to=negotiated)";
+is(urlto('', 'index'), './', "$msgprefix index -> ''");
+is(urlto('', 'nontranslatable'), '../', "$msgprefix nontranslatable -> ''");
+is(urlto('', 'translatable.fr'), '../', "$msgprefix translatable.fr -> ''");
+
+### bestlink
+$config{po_link_to}='current';
+$msgprefix="bestlink (po_link_to=current)";
+is(bestlink('test1.fr', 'test2'), 'test2.fr', "$msgprefix test1.fr -> test2");
+is(bestlink('test1.fr', 'test2.es'), 'test2.es', "$msgprefix test1.fr -> test2.es");
+$config{po_link_to}='negotiated';
+$msgprefix="bestlink (po_link_to=negotiated)";
+is(bestlink('test1.fr', 'test2'), 'test2.fr', "$msgprefix test1.fr -> test2");
+is(bestlink('test1.fr', 'test2.es'), 'test2.es', "$msgprefix test1.fr -> test2.es");
+
+### beautify_urlpath
+$config{po_link_to}='default';
+$msgprefix="beautify_urlpath (po_link_to=default)";
+is(IkiWiki::beautify_urlpath('test1/index.en.html'), './test1/index.en.html', "$msgprefix test1/index.en.html");
+is(IkiWiki::beautify_urlpath('test1/index.fr.html'), './test1/index.fr.html', "$msgprefix test1/index.fr.html");
+$config{po_link_to}='negotiated';
+$msgprefix="beautify_urlpath (po_link_to=negotiated)";
+is(IkiWiki::beautify_urlpath('test1/index.html'), './test1/', "$msgprefix test1/index.html");
+is(IkiWiki::beautify_urlpath('test1/index.en.html'), './test1/', "$msgprefix test1/index.en.html");
+is(IkiWiki::beautify_urlpath('test1/index.fr.html'), './test1/', "$msgprefix test1/index.fr.html");
index 05d955f33c1f36a26bd5beb4ed99b28f376ed865..a3760a2b2aa956b48bc1764dbff141335b0247ff 100755 (executable)
@@ -6,7 +6,7 @@ use Test::More;
 my @progs="ikiwiki.in";
 my @libs="IkiWiki.pm";
 # monotone, external, amazon_s3 skipped since they need perl modules
-push @libs, map { chomp; $_ } `find IkiWiki -type f -name \\*.pm | grep -v monotone.pm | grep -v external.pm | grep -v amazon_s3.pm`;
+push @libs, map { chomp; $_ } `find IkiWiki -type f -name \\*.pm | grep -v monotone.pm | grep -v external.pm | grep -v amazon_s3.pm | grep -v po.pm`;
 push @libs, 'IkiWiki/Plugin/skeleton.pm.example';
 
 plan(tests => (@progs + @libs));
index 29ba688c749de8b2823d67a465bab96be798d8a5..8622d1a013b0474d5133b387c4ad369a67b38ba2 100644 (file)
@@ -28,6 +28,9 @@
 </span>
 <span class="title">
 <TMPL_VAR TITLE>
+<TMPL_IF NAME="ISTRANSLATION">
+(<TMPL_VAR NAME="PERCENTTRANSLATED">&nbsp;%)
+</TMPL_IF>
 </span>
 </span><!--.header-->
 <TMPL_IF NAME="SEARCHFORM">
 </ul>
 </div>
 </TMPL_IF>
+
+<TMPL_IF NAME="OTHERLANGUAGES">
+<div id="otherlanguages">
+<ul>
+<TMPL_LOOP NAME="OTHERLANGUAGES">
+<li>
+<a href="<TMPL_VAR NAME="URL">"><TMPL_VAR NAME="LANGUAGE"></a>
+<TMPL_IF NAME="MASTER">
+(master)
+<TMPL_ELSE>
+(<TMPL_VAR NAME="PERCENT">&nbsp;%)
+</TMPL_IF>
+</li>
+</TMPL_LOOP>
+</ul>
+</div> <!-- #otherlanguages -->
+</TMPL_IF>
+
 </div> <!-- .pageheader -->
 
 <TMPL_IF SIDEBAR>
diff --git a/templates/pocreatepage.tmpl b/templates/pocreatepage.tmpl
new file mode 100644 (file)
index 0000000..96c8fdd
--- /dev/null
@@ -0,0 +1,3 @@
+<p>
+<b>WARNING</b> this page must be written in <TMPL_VAR NAME="LANG">.
+</p>
\ No newline at end of file
diff --git a/underlays/basewiki/ikiwiki/pagespec/po.mdwn b/underlays/basewiki/ikiwiki/pagespec/po.mdwn
new file mode 120000 (symlink)
index 0000000..255c3de
--- /dev/null
@@ -0,0 +1 @@
+../../../../doc/ikiwiki/pagespec/po.mdwn
\ No newline at end of file