diff options
author | smcv <smcv@web> | 2018-12-01 17:28:11 -0400 |
---|---|---|
committer | admin <admin@branchable.com> | 2018-12-01 17:28:11 -0400 |
commit | 065cf1776c74c39835fd1fb0585699331cc47313 (patch) | |
tree | 9c460a52c789cdadbfa980a7963ad57c24d33eb0 /doc/bugs/po:_second_or_subsequent_inline_of_translated_page_inlines_.po_file__44___not_translated_content | |
parent | 20c9b9afd383db2d7dd09737334e703fd17da2f1 (diff) | |
download | ikiwiki-065cf1776c74c39835fd1fb0585699331cc47313.tar ikiwiki-065cf1776c74c39835fd1fb0585699331cc47313.tar.gz |
rename bugs/Re-use_translated_content_instead_of_skipping_if_previously_translated.mdwn to bugs/po:_second_or_subsequent_inline_of_translated_page_inlines_.po_file__44___not_translated_content.mdwn
Diffstat (limited to 'doc/bugs/po:_second_or_subsequent_inline_of_translated_page_inlines_.po_file__44___not_translated_content')
-rw-r--r-- | doc/bugs/po:_second_or_subsequent_inline_of_translated_page_inlines_.po_file__44___not_translated_content/20180628-patch.txt | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/doc/bugs/po:_second_or_subsequent_inline_of_translated_page_inlines_.po_file__44___not_translated_content/20180628-patch.txt b/doc/bugs/po:_second_or_subsequent_inline_of_translated_page_inlines_.po_file__44___not_translated_content/20180628-patch.txt new file mode 100644 index 000000000..217352f19 --- /dev/null +++ b/doc/bugs/po:_second_or_subsequent_inline_of_translated_page_inlines_.po_file__44___not_translated_content/20180628-patch.txt @@ -0,0 +1,85 @@ +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 |