Subject: Re: bug#64881: [translation] M-x texinfo-all-menus-update breaks translated cookbook

From: "pelzflorian (Florian Pelz)" <[email-masked]>
Date: Thu, 27 Jul 2023 21:05:32 +0200

Maxim Cournoyer <[email-masked]> writes:
> M-x texinfo-update-all-menus is available out-of-the-box in Emacs, when
> visiting a .texi file (you invoke it via Alt-x texinfo-update-all-menus
> or by visiting the 'Texinfo -> Update All Menus' menu).

Oops my bad.  I should have expected that Emacs commands are invisible
unless the right Emacs mode is used.  Thank you for clarifying and
presenting as a patch.

Josselin Poiret <[email-masked]> writes:
> `make as-derivation` uses #:select? git? to restrict to only files
> that are checked out in git.  It doesn't try to get the contents of HEAD
> though, the working directory's state is used instead.

Oh hmm doc/guix-cookbook.de.texi is not checked in, so even `make
as-derivation` should have worked ...

This got nothing to do with stray .de.texi files.  Apparently it is
because the menu entries lack menu descriptions (which should be
optional according to `info texinfo').

The attached patch on top of your patch helps ...

Either we add optional descriptions everywhere or not update menu
entries without description or change how po4a translates the menu
entries in po4a source file lib/Locale/Po4a/Texinfo.pm in
translate_buffer_menuentry, to make po4a translate when there is no
description.  I don’t plan to do that though.

Regards,
Florian
From: Florian Pelz <[email-masked]>
Date: Thu, 27 Jul 2023 20:12:15 +0200
Subject: [PATCH] doc: guix-cookbook: Also add Texinfo menu description
 dummies.

* doc/guix-cookbook.texi: Add dummy menu descriptions to Texinfo menus.
---
 doc/guix-cookbook.texi | 100 ++++++++++++++++++++---------------------
 1 file changed, 50 insertions(+), 50 deletions(-)

diff --git a/doc/guix-cookbook.texi b/doc/guix-cookbook.texi
index 5698614c00..2697331412 100644
--- a/doc/guix-cookbook.texi
+++ b/doc/guix-cookbook.texi
@@ -89,7 +89,7 @@ Top
 
 Scheme tutorials
 
-* A Scheme Crash Course::
+* A Scheme Crash Course::    a.
 
 Packaging
 
@@ -97,26 +97,26 @@ Top
 
 Packaging Tutorial
 
-* A ``Hello World'' package::
-* Setup::
-* Extended example::
-* Other build systems::
-* Programmable and automated package definition::
-* Getting help::
-* Conclusion::
-* References::
+* A ``Hello World'' package::  b.
+* Setup::  c.
+* Extended example::  d.
+* Other build systems::  e.
+* Programmable and automated package definition::  f.
+* Getting help::  g.
+* Conclusion::  h.
+* References::  i.
 
 Setup
 
-* Local file::
-* Channels::
-* Direct checkout hacking::
+* Local file::  j.
+* Channels::  k.
+* Direct checkout hacking::  l.
 
 Programmable and automated package definition
 
-* Recursive importers::
-* Automatic update::
-* Inheritance::
+* Recursive importers::  m.
+* Automatic update::  n.
+* Inheritance::  o.
 
 System Configuration
 
@@ -134,12 +134,12 @@ Top
 
 Customizing a Window Manager
 
-* StumpWM::
-* Session lock::
+* StumpWM::  p.
+* Session lock::  q.
 
 Session lock
 
-* Xorg::
+* Xorg::  r.
 
 Containers
 
@@ -148,8 +148,8 @@ Top
 
 Guix System Containers
 
-* A Database Container::
-* Container Networking::
+* A Database Container::  s.
+* Container Networking::  t.
 
 Advanced package management
 
@@ -157,11 +157,11 @@ Top
 
 Guix Profiles in Practice
 
-* Basic setup with manifests::
-* Required packages::
-* Default profile::
-* The benefits of manifests::
-* Reproducible profiles::
+* Basic setup with manifests::  u.
+* Required packages::  v.
+* Default profile::  w.
+* The benefits of manifests::  x.
+* Reproducible profiles::  y.
 
 Environment management
 
@@ -194,7 +194,7 @@ Scheme tutorials
 Let's get started!
 
 @menu
-* A Scheme Crash Course::
+* A Scheme Crash Course::  z.
 @end menu
 
 @node A Scheme Crash Course
@@ -492,14 +492,14 @@ Packaging Tutorial
 basic programming knowledge.
 
 @menu
-* A ``Hello World'' package::
-* Setup::
-* Extended example::
-* Other build systems::
-* Programmable and automated package definition::
-* Getting help::
-* Conclusion::
-* References::
+* A ``Hello World'' package::  aa.
+* Setup::  ab.
+* Extended example::  ac.
+* Other build systems::  ad.
+* Programmable and automated package definition::  ae.
+* Getting help::  af.
+* Conclusion::  ag.
+* References::  ah.
 @end menu
 
 @node A ``Hello World'' package
@@ -708,9 +708,9 @@ Setup
 But first, let's look at other possibilities.
 
 @menu
-* Local file::
-* Channels::
-* Direct checkout hacking::
+* Local file::  ai.
+* Channels::  aj.
+* Direct checkout hacking::  ak.
 @end menu
 
 @node Local file
@@ -1364,9 +1364,9 @@ Programmable and automated package definition
 Let's illustrate this with some awesome features of Guix!
 
 @menu
-* Recursive importers::
-* Automatic update::
-* Inheritance::
+* Recursive importers::  al.
+* Automatic update::  am.
+* Inheritance::  an.
 @end menu
 
 @node Recursive importers
@@ -2180,8 +2180,8 @@ Customizing a Window Manager
 @cindex wm
 
 @menu
-* StumpWM::
-* Session lock::
+* StumpWM::  ao.
+* Session lock::  ap.
 @end menu
 
 @node StumpWM
@@ -2240,7 +2240,7 @@ Session lock
 StumpWM or EXWM, you might have to set it up yourself.
 
 @menu
-* Xorg::
+* Xorg::  aq.
 @end menu
 
 @node Xorg
@@ -3092,8 +3092,8 @@ Guix System Containers

 @menu
-* A Database Container::
-* Container Networking::
+* A Database Container::  ar.
+* Container Networking::  as.
 @end menu
 
 @node A Database Container
@@ -3378,11 +3378,11 @@ Guix Profiles in Practice
 Let's dive in the set up!
 
 @menu
-* Basic setup with manifests::
-* Required packages::
-* Default profile::
-* The benefits of manifests::
-* Reproducible profiles::
+* Basic setup with manifests::  at.
+* Required packages::  au.
+* Default profile::  av.
+* The benefits of manifests::  aw.
+* Reproducible profiles::  ax.
 @end menu
 
 @node Basic setup with manifests

base-commit: c7e45139faa27b60f2c7d0a4bc140f9793d97d47
prerequisite-patch-id: 44bba9c6a1eb16e10d96a8b736a9836366000060
-- 
2.40.1