X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/81bad6a03ff9c2412c34c2a20bfcd0f710cc0c03..cf1290eb464f1256aa5c12d973fff774e4f83e5e:/doc/todo/Re-use_translated_content_instead_of_skipping_if_previously_translated.mdwn diff --git a/doc/todo/Re-use_translated_content_instead_of_skipping_if_previously_translated.mdwn b/doc/todo/Re-use_translated_content_instead_of_skipping_if_previously_translated.mdwn index 57386ad75..140ffbf70 100644 --- a/doc/todo/Re-use_translated_content_instead_of_skipping_if_previously_translated.mdwn +++ b/doc/todo/Re-use_translated_content_instead_of_skipping_if_previously_translated.mdwn @@ -1,99 +1 @@ - From: Chris Lamb - Date: Thu, 28 Jun 2018 19:30:15 +0100 - Subject: [PATCH] Re-use translated content instead of skipping if previously - translated. - - This fixes an issue where an initial `inline` directive would be translated - correctly, but subsequent inlines of the same would result in the raw - contents of the `.po` file being inserted into the page instead. - - For example, given a `index.mdwn` containing: - - \[[!inline pages="inline" raw="yes"]] - \[[!inline pages="inline" raw="yes"]] - - .. and an `index.de.po` of: - - msgid "\[[!inline pages=\"inline\" raw=\"yes\"]]\n" - msgstr "\[[!inline pages=\"inline.de\" raw=\"yes\"]]\n" - - .. together with an `inline.mdwn` of: - - This is inlined content. - - .. and an `inline.de.po` of: - - msgid "This is inlined content." - msgstr "This is German inlined content." - - .. would result in the following translation: - - This is the inlined content. - # SOME DESCRIPTIVE TITLE - # Copyright (C) YEAR Free Software Foundation, Inc. - # This file is distributed under the same license as the PACKAGE package. - # FIRST AUTHOR , YEAR. - - .. instead of, of course: - - This is the inlined content. - This is the inlined content. - --- - IkiWiki/Plugin/po.pm | 15 +++++++++------ - 1 file changed, 9 insertions(+), 6 deletions(-) - - diff --git a/IkiWiki/Plugin/po.pm b/IkiWiki/Plugin/po.pm - index 418e8e58a..ecd1f5499 100644 - --- a/IkiWiki/Plugin/po.pm - +++ b/IkiWiki/Plugin/po.pm - @@ -303,9 +303,12 @@ sub filter (@) { - 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); - + if (istranslation($page)) { - + if (!defined(alreadyfiltered($page, $destpage))) { - + $content = po_to_markup($page, $content); - + setalreadyfiltered($page, $destpage, $content); - + } - + $content = alreadyfiltered($page, $destpage); - } - return $content; - } - @@ -747,15 +750,15 @@ sub myisselflink ($$) { - my $page=shift; - my $destpage=shift; - - - return exists $filtered{$page}{$destpage} - - && $filtered{$page}{$destpage} eq 1; - + return $filtered{$page}{$destpage}; - } - - sub setalreadyfiltered($$) { - my $page=shift; - my $destpage=shift; - + my $content=shift; - - - $filtered{$page}{$destpage}=1; - + $filtered{$page}{$destpage}=$content; - } - - sub unsetalreadyfiltered($$) { - -- - 2.18.0 - -[[!tag patch]] - -> Thank you Chris! I've reviewed the patch (with my "original author of the po plugin" hat on) and it looks good to me. I'm not 100% sure about `alreadyfiltered` being the best name for something that's not a predicated anymore but it's good enough. Then I wore my end-user hat and confirmed that with Chris' patch applied, the reproducer we had for this bug at Tails works fine. So IMO we're good to go and I recommend to apply this patch. Thanks in advance! -- [[intrigeri]] - - -> Any update on getting this merged? — [[lamby]], Fri, 24 Aug 2018 12:36:37 +0200 - -> Indeed, would love to see this merged! What might be the next steps here? — [[lamby]], Thu, 18 Oct 2018 17:57:37 -0400 - -> I've filed this in Debian GNU/Linux at https://bugs.debian.org/911356 — [[lamby]], Thu, 18 Oct 2018 20:18:58 -0400 - - - +[[!meta redir="bugs/po:_second_or_subsequent_inline_of_translated_page_inlines_.po_file__44___not_translated_content"]]