From 140504026807af6d4e94154b629edb6c7bdf3c27 Mon Sep 17 00:00:00 2001 From: Maxime Devos Date: Tue, 2 Mar 2021 14:13:59 +0100 Subject: [PATCH] doc: Define canned recipes for creating translated manuals. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It is expected that at some point in the future, the manual's source will be split in several files per-chapter. Prevent the build recipes from diverging by defining and using two ‘canned recipes’ in the makefile for translating the manual and individual chapters. * doc/local.mk (guix.%.texi, guix-cookbook.%.texi): move recipe ... (translate_manual_command): ... to here. (contributing.%.texi): move recipe ... (translate_chapter_command): ... to here. --- doc/local.mk | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/doc/local.mk b/doc/local.mk index 97122c737d..fb1a6a2b37 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -5,6 +5,7 @@ # Copyright © 2016 Taylan Ulrich Bayırlı/Kammer # Copyright © 2016, 2018 Mathieu Lirzin # Copyright © 2018 Julien Lepiller +# Copyright © 2021 Maxime Devos # # This file is part of GNU Guix. # @@ -109,22 +110,33 @@ cat "$@.tmp" | egrep '@p?x?ref' -A1 | sed 'N;s|--\n||g;P;D' | sed 's|^| |g' | \ done endef -$(srcdir)/%D%/guix.%.texi: po/doc/guix-manual.%.po $(srcdir)/%D%/contributing.%.texi - -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/guix.texi" -p "$<" -l "$@.tmp" - -sed -i "s|guix\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp" +# This canned recipe translates is used in the rules below +# to translate a texinfo manual, using the translations +# in po/doc. The argument $(1) is the name of the untranslated +# manual, without a .texi extension or directory prefixes. +define translate_manual_command + -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/$(1).texi" -p "$<" -l "$@.tmp" + -sed -i "s|$(1)\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp" -$(AM_V_POXREF)$(xref_command) -mv "$@.tmp" "$@" +endef -$(srcdir)/%D%/guix-cookbook.%.texi: po/doc/guix-cookbook.%.po - -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/guix-cookbook.texi" -p "$<" -l "$@.tmp" - -sed -i "s|guix-cookbook\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp" +# Likewise, but for individual chapters (or sections), which do not have +# an info file name to modify. +define translate_chapter_command + -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/$(1).texi" -p "$<" -l "$@.tmp" -$(AM_V_POXREF)$(xref_command) -mv "$@.tmp" "$@" +endef + +$(srcdir)/%D%/guix.%.texi: po/doc/guix-manual.%.po $(srcdir)/%D%/contributing.%.texi + $(call translate_manual_command,guix) + +$(srcdir)/%D%/guix-cookbook.%.texi: po/doc/guix-cookbook.%.po + $(call translate_manual_command,guix-cookbook) $(srcdir)/%D%/contributing.%.texi: po/doc/guix-manual.%.po - -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "%D%/contributing.texi" -p "$<" -l "$@.tmp" - -$(AM_V_POXREF)$(xref_command) - -mv "$@.tmp" "$@" + $(call translate_chapter_command,contributing) %D%/os-config-%.texi: gnu/system/examples/%.tmpl $(AM_V_GEN)$(MKDIR_P) "`dirname $@`"; \ -- 2.30.1