]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/todo/Re-use_translated_content_instead_of_skipping_if_previously_translated.mdwn
tag properly
[git.ikiwiki.info.git] / doc / todo / Re-use_translated_content_instead_of_skipping_if_previously_translated.mdwn
index 037b5925dd2e5fc2cdcf960b9c8fcc6f08c19588..140ffbf70a384a96f3e41c199ab97d5c1bd61ae6 100644 (file)
@@ -1,89 +1 @@
-    From: Chris Lamb <lamby@debian.org>
-    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 <EMAIL@ADDRESS>, 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]]
+[[!meta redir="bugs/po:_second_or_subsequent_inline_of_translated_page_inlines_.po_file__44___not_translated_content"]]