Subject: bug#35786: Some manual @ref @xref @pxref fail when untranslated

From: Julien Lepiller <[email-masked]>
Date: Sat, 18 May 2019 09:40:42 +0200

Le 18 mai 2019 00:48:26 GMT+02:00, "pelzflorian (Florian Pelz)" <[email-masked]> a écrit :
>Meiyo Peng reports at
><https://lists.gnu.org/archive/html/guix-devel/2019-05/msg00275.html>
>
>On Tue, May 14, 2019 at 10:29:35AM +0800, Meiyo Peng wrote:
>> I just find out that the @pxref{Packages with Multiple Outputs} in
>> doc/contributing.texi has to be translated.  Or I will get an error
>> while running make:
>> 
>> #+begin_example
>>   doc/contributing.zh_CN.texi:567: @pxref reference to nonexistent
>node `Packages with Multiple Outputs'
>> #+end_example
>> 
>> I guess it's because the node name is in doc/guix.texi (another file
>> than doc/contributing.texi).  Any idea?
>> 
>
>The reason appears to be that when not translating (using the first
>attached patch that reverts back to @pxref{Packages with Multiple
>Outputs}), po4a-translate transforms
>
>@item
>Take a look at the profile reported by @command{guix size}
>(@pxref{Invoking guix size}).  This will allow you to notice references
>to other packages unwillingly retained.  It may also help determine
>whether to split the package (@pxref{Packages with Multiple Outputs}),
>and which optional dependencies should be used.  In particular, avoid
>adding
>@code{texlive} as a dependency: because of its extreme size, use
>@code{texlive-tiny} or @code{texlive-union} instead.
>
>to
>
>@item
>看一下@command{guix size}（@pxref{Invoking guix
>size}）的分析报告。这会让你注意到对其它软件包无意中的引用。它也可以帮助决定是否要把一个软件包分割成几个输出（@pxref{Packages
>with Multiple
>Outputs}），以及需要使用哪些可选的依赖。特别地，避免把@code{texlive}添加为依赖：因为它太大了，请使用@code{texlive-tiny}或@code{texlive-union}代替它。
>
>with the pxref split over three lines because the surrounding context
>has no space characters.  doc/local.mk’s xref_command can only deal
>with two lines however.
>
>The second attached patch makes xref_command grep three-line
>references too, so it finds the translation, *however* I cannot get
>this multiline sed to actually insert the translation into three line
>references.  Perhaps it would be better to just replace this complex
>xref_command with Guile code?  I will not do it however.
>
>I am Cc’ing the [email-masked]; I hope this is OK.
>
>Regards,
>Florian

We have some guile code for doing exactly that in guix pull, so we could reuse it here.