Le Mon, 19 Feb 2018 23:34:37 +0100,
Julien Lepiller <jul...@lepiller.eu> a écrit :

> Hi,
> 
> here is my first attempt at localizing guix.texi. This patch adds
> guix.fr.texi, a localized version of the manual. It uses po4a to
> generate the .po file and use that same file to generate the localized
> manual.
> 
> I had to include the guix.fr.texi in the commit because it is
> necessary that it exists in order to add it to info_TEXINFOS. This
> means that this version of guix now requires po4a and will always
> build the localized manuals in every available language. I don't
> really like that though.
> 
> I had to add a rule in Makefile.am without which guix.fr.info wouldn't
> be built. Similar rules are required for generating the html and pdf
> versions.
> 
> thoughts?

I forgot the patch, here it is. I removed guix.fr.texi and fr.po from
the patch as they are ~1MB each.
From 7443ce7407a7194a9d9487f95f940b4b9adf5d82 Mon Sep 17 00:00:00 2001
From: Julien Lepiller <jul...@lepiller.eu>
Date: Mon, 19 Feb 2018 23:24:30 +0100
Subject: [PATCH] doc: Allow documentation to be translated.

po/doc/local.mk: New file.
Makefile.am: Include it.
doc/local.mk (info_TEXINFOS, BUILT_SOURCES, EXTRA_DIST, MAINTAINERCLEANFILES):
Add guix.fr.texi
(rules): New rule to build localized texi files
.gitignore: Ignore doc/version.*.texi
---
 .gitignore      |  1 +
 Makefile.am     |  3 +++
 doc/local.mk    | 21 +++++++++++++++++----
 po/doc/local.mk | 23 +++++++++++++++++++++++
 4 files changed, 44 insertions(+), 4 deletions(-)
 create mode 100644 po/doc/local.mk

diff --git a/.gitignore b/.gitignore
index 4a110fb1f..f4119bc28 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,6 +47,7 @@
 /doc/os-config-desktop.texi
 /doc/stamp-vti
 /doc/version.texi
+/doc/version.*.texi
 /etc/guix-daemon.cil
 /etc/guix-daemon.conf
 /etc/guix-daemon.service
diff --git a/Makefile.am b/Makefile.am
index e2c940ca8..856075e7a 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -41,6 +41,8 @@ scripts/guix: scripts/guix.in Makefile
 	$(AM_V_GEN)$(do_subst) < "$(srcdir)/$@.in" > "$@-t"
 	$(AM_V_at)chmod a+x,a-w "$@-t" && mv -f "$@-t" "$@"
 
+doc/guix.fr.info: doc/guix.fr.texi
+
 nodist_noinst_SCRIPTS =				\
   pre-inst-env					\
   test-env
@@ -535,6 +537,7 @@ SUBDIRS = po/guix po/packages
 BUILT_SOURCES =
 
 include doc/local.mk
+include po/doc/local.mk
 
 if BUILD_DAEMON
 
diff --git a/doc/local.mk b/doc/local.mk
index 397ade050..f8aa31d5a 100644
--- a/doc/local.mk
+++ b/doc/local.mk
@@ -20,7 +20,8 @@
 # You should have received a copy of the GNU General Public License
 # along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
-info_TEXINFOS = %D%/guix.texi
+info_TEXINFOS = %D%/guix.texi \
+  %D%/guix.fr.texi
 
 %C%_guix_TEXINFOS = \
   %D%/contributing.texi \
@@ -51,10 +52,22 @@ OS_CONFIG_EXAMPLES_TEXI =			\
   %D%/os-config-desktop.texi			\
   %D%/os-config-lightweight-desktop.texi
 
+TRANSLATED_INFO =			\
+  %D%/guix.fr.texi
+
 # Bundle this file so that makeinfo finds it in out-of-source-tree builds.
-BUILT_SOURCES        += $(OS_CONFIG_EXAMPLES_TEXI)
-EXTRA_DIST           += $(OS_CONFIG_EXAMPLES_TEXI)
-MAINTAINERCLEANFILES  = $(OS_CONFIG_EXAMPLES_TEXI)
+BUILT_SOURCES        += $(OS_CONFIG_EXAMPLES_TEXI) $(TRANSLATED_INFO)
+EXTRA_DIST           += $(OS_CONFIG_EXAMPLES_TEXI) $(TRANSLATED_INFO)
+MAINTAINERCLEANFILES  = $(OS_CONFIG_EXAMPLES_TEXI) $(TRANSLATED_INFO)
+
+PO4A_PARAMS:=-M UTF-8 -L UTF-8 #master and localized encoding
+PO4A_PARAMS+=-k 0 # produce an output even if the translation is not complete
+PO4A_PARAMS+=-f texinfo # texinfo format
+
+$(srcdir)/%D%/guix.%.texi: %D%/guix.texi po/doc/%.po
+	po4a-translate $(PO4A_PARAMS) -m $< -p $(word 2,$^) -l $@.tmp
+	sed -i 's|guix\.info|guix.fr.info|' $@.tmp
+	mv $@.tmp $@
 
 %D%/os-config-%.texi: gnu/system/examples/%.tmpl
 	$(AM_V_GEN)$(MKDIR_P) "`dirname $@`";	\
diff --git a/po/doc/local.mk b/po/doc/local.mk
new file mode 100644
index 000000000..84d43123d
--- /dev/null
+++ b/po/doc/local.mk
@@ -0,0 +1,23 @@
+# GNU Guix --- Functional package management for GNU
+# Copyright © 2018 Julien Lepiller <jul...@lepiller.eu>
+#
+# This file is part of GNU Guix.
+#
+# GNU Guix is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or (at
+# your option) any later version.
+#
+# GNU Guix is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+EXTRA_DIST += \
+  %D%/fr.po
+
+$(srcdir)/po/doc/%.po: doc/guix.texi
+	po4a-updatepo -M UTF-8 -f texinfo -m $< -p $@
-- 
2.16.1

Reply via email to