* [WIP]: localize guix.texi @ 2018-02-19 22:34 Julien Lepiller 2018-02-19 22:45 ` Julien Lepiller 2018-03-02 23:07 ` [WIP] " Julien Lepiller 0 siblings, 2 replies; 14+ messages in thread From: Julien Lepiller @ 2018-02-19 22:34 UTC (permalink / raw) To: guix-devel 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? ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [WIP]: localize guix.texi 2018-02-19 22:34 [WIP]: localize guix.texi Julien Lepiller @ 2018-02-19 22:45 ` Julien Lepiller 2018-03-02 13:31 ` Ludovic Courtès 2018-03-02 23:07 ` [WIP] " Julien Lepiller 1 sibling, 1 reply; 14+ messages in thread From: Julien Lepiller @ 2018-02-19 22:45 UTC (permalink / raw) To: guix-devel [-- Attachment #1: Type: text/plain, Size: 912 bytes --] Le Mon, 19 Feb 2018 23:34:37 +0100, Julien Lepiller <julien@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. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-doc-Allow-documentation-to-be-translated.patch --] [-- Type: text/x-patch, Size: 4148 bytes --] From 7443ce7407a7194a9d9487f95f940b4b9adf5d82 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@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 <julien@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 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [WIP]: localize guix.texi 2018-02-19 22:45 ` Julien Lepiller @ 2018-03-02 13:31 ` Ludovic Courtès 2018-03-02 15:57 ` Gábor Boskovits 0 siblings, 1 reply; 14+ messages in thread From: Ludovic Courtès @ 2018-03-02 13:31 UTC (permalink / raw) To: Julien Lepiller; +Cc: guix-devel Hi Julien, Thanks a lot for taking this initiative. To me localization is super important if we are to make free software a viable option for everyone. Julien Lepiller <julien@lepiller.eu> skribis: >> 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. From the patch I can’t really see how translation works. Do translators get a list of msgids to translate? >> 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. What about doing what we do for man pages? We include generated man pages in the distributed tarball (that’s what the ‘dist_’ prefix in ‘dist_man1_MANS’ means, in doc/local.mk). Thus help2man is needed only if you’re building from a checkout. Furthermore, we use AM_MISSING_PROG so that users get a helpful message if they end up in a situation where they would need help2man. > From 7443ce7407a7194a9d9487f95f940b4b9adf5d82 Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@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 You’re missing bullets for each item here. :-) > +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 Nitpick: leave spaces around assignment operators. > +$(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 $@ [...] > +$(srcdir)/po/doc/%.po: doc/guix.texi > + po4a-updatepo -M UTF-8 -f texinfo -m $< -p $@ If you use AM_MISSING_PROG, then you can use $(PO4A_TRANSLATE) and $(PO4A_UPDATEPO) instead of directly using the program names here. Last thing: please enclose file names in double quotes: "$@", "$<", etc. With these changes, I’m all for applying the patch to master. Thank you! Ludo’. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [WIP]: localize guix.texi 2018-03-02 13:31 ` Ludovic Courtès @ 2018-03-02 15:57 ` Gábor Boskovits 0 siblings, 0 replies; 14+ messages in thread From: Gábor Boskovits @ 2018-03-02 15:57 UTC (permalink / raw) To: Ludovic Courtès; +Cc: Guix-devel [-- Attachment #1: Type: text/plain, Size: 2998 bytes --] 2018-03-02 14:31 GMT+01:00 Ludovic Courtès <ludo@gnu.org>: > Hi Julien, > > Thanks a lot for taking this initiative. To me localization is super > important if we are to make free software a viable option for everyone. > > Julien Lepiller <julien@lepiller.eu> skribis: > > >> 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. > > From the patch I can’t really see how translation works. Do translators > get a list of msgids to translate? > > >> 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. > > What about doing what we do for man pages? We include generated man > pages in the distributed tarball (that’s what the ‘dist_’ prefix in > ‘dist_man1_MANS’ means, in doc/local.mk). Thus help2man is needed only > if you’re building from a checkout. Furthermore, we use AM_MISSING_PROG > so that users get a helpful message if they end up in a situation where > they would need help2man. > > > From 7443ce7407a7194a9d9487f95f940b4b9adf5d82 Mon Sep 17 00:00:00 2001 > > From: Julien Lepiller <julien@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 > > You’re missing bullets for each item here. :-) > > > +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 > > Nitpick: leave spaces around assignment operators. > > > +$(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 $@ > > [...] > > > +$(srcdir)/po/doc/%.po: doc/guix.texi > > + po4a-updatepo -M UTF-8 -f texinfo -m $< -p $@ > > If you use AM_MISSING_PROG, then you can use $(PO4A_TRANSLATE) and > $(PO4A_UPDATEPO) instead of directly using the program names here. > > Last thing: please enclose file names in double quotes: "$@", "$<", etc. > > With these changes, I’m all for applying the patch to master. > > Once this is in master I'm also willing to do this for my language. I'm waiting for the final style to settle. Thanks for the initiative! > Thank you! > > Ludo’. > > [-- Attachment #2: Type: text/html, Size: 4160 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* [WIP] localize guix.texi 2018-02-19 22:34 [WIP]: localize guix.texi Julien Lepiller 2018-02-19 22:45 ` Julien Lepiller @ 2018-03-02 23:07 ` Julien Lepiller 2018-03-02 23:07 ` [PATCH 1/3] gnu: doc: Alloc documentation to be translated Julien Lepiller ` (2 more replies) 1 sibling, 3 replies; 14+ messages in thread From: Julien Lepiller @ 2018-03-02 23:07 UTC (permalink / raw) To: guix-devel Hi, this new version of the patch takes your feedback into account. I tried to put guix.fr.texi in dist_info_TEXINFOS, but automake didn't generate the rules for building guix.fr.info in that case. I don't like the fact that both the po and texi files are commited and will be changed together whenever someone makes a change in the manual. The French translation is just the beginning: I translated only the Introduction and the Installation pages. Also, I used the po file to add the @documentlanguage macro to change the texinfo strings to French (like "see", "next page", "up", etc). There's an issue with changes that add references: when that happens, the default translation would be the English version, so the reference would be to the English name (for instance, @pxref{Invoking guix package}), resulting in a build failure when the name has been changed (for instance "Invoquer guix package" in French). I would like to be able to localize the section name because it appears in link names. Any ideas? ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 1/3] gnu: doc: Alloc documentation to be translated. 2018-03-02 23:07 ` [WIP] " Julien Lepiller @ 2018-03-02 23:07 ` Julien Lepiller 2018-03-05 9:10 ` Ludovic Courtès 2018-03-02 23:07 ` [PATCH 2/3] gnu: guix: Add po4a input Julien Lepiller 2018-03-05 9:08 ` [WIP] localize guix.texi Ludovic Courtès 2 siblings, 1 reply; 14+ messages in thread From: Julien Lepiller @ 2018-03-02 23:07 UTC (permalink / raw) To: guix-devel * po/doc/local.mk: New file. * Makefile.am: Include it. Add silent rules for po4a. * configure.ac: Look for po4a-translate and po4a-updatepo. * doc/local.mk: Add rules to generate gettext files. (TRANSLATED_INFO): New variable. (BUILT_SOURCES, EXTRA_DIST, MAINTAINERCLEANFILES): Add it. * .gitignore: Add generated files. --- .gitignore | 17 +++++++++++++++++ Makefile.am | 8 +++++++- configure.ac | 4 ++++ doc/local.mk | 22 +++++++++++++++++++--- po/doc/local.mk | 27 +++++++++++++++++++++++++++ 5 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 po/doc/local.mk diff --git a/.gitignore b/.gitignore index 4a110fb1f..0145a7d86 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,21 @@ /configure /doc/*.1 /doc/.dirstamp +/doc/guix.*.aux +/doc/guix.*.cp +/doc/guix.*.cps +/doc/guix.*.fn +/doc/guix.*.fns +/doc/guix.*.html +/doc/guix.*.info +/doc/guix.*.info-[0-9] +/doc/guix.*.ky +/doc/guix.*.pg +/doc/guix.*.toc +/doc/guix.*.t2p +/doc/guix.*.tp +/doc/guix.*.vr +/doc/guix.*.vrs /doc/guix.aux /doc/guix.cp /doc/guix.cps @@ -47,6 +62,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 @@ -79,6 +95,7 @@ /nix/scripts/list-runtime-roots /nix/scripts/offload /nix/scripts/substitute +/po/doc/*.mo /po/guix/*.gmo /po/guix/*.insert-header /po/guix/*.mo diff --git a/Makefile.am b/Makefile.am index 6556799e6..757ca9b2f 100644 --- a/Makefile.am +++ b/Makefile.am @@ -10,6 +10,7 @@ # Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> # Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> # Copyright © 2018 ng0 <ng0@n0.is> +# Copyright © 2018 Julien Lepiller <julien@lepiller.eu> # # This file is part of GNU Guix. # @@ -51,6 +52,7 @@ MODULES_NOT_COMPILED = \ guix/man-db.scm include gnu/local.mk +include po/doc/local.mk MODULES = \ guix/base16.scm \ @@ -451,7 +453,7 @@ dist_fishcompletion_DATA = etc/completion/fish/guix.fish # SELinux policy dist_selinux_policy_DATA = etc/guix-daemon.cil -EXTRA_DIST = \ +EXTRA_DIST += \ HACKING \ ROADMAP \ TODO \ @@ -778,3 +780,7 @@ AM_V_DOT_0 = @echo " DOT " $@; AM_V_HELP2MAN = $(AM_V_HELP2MAN_$(V)) AM_V_HELP2MAN_ = $(AM_V_HELP2MAN_$(AM_DEFAULT_VERBOSITY)) AM_V_HELP2MAN_0 = @echo " HELP2MAN" $@; + +AM_V_PO4A = $(AM_V_PO4A_$(V)) +AM_V_PO4A_ = $(AM_V_PO4A_$(AM_DEFAULT_VERBOSITY)) +AM_V_PO4A_0 = @echo " PO4A" $@; diff --git a/configure.ac b/configure.ac index 5872a8482..557da6318 100644 --- a/configure.ac +++ b/configure.ac @@ -263,6 +263,10 @@ AM_MISSING_PROG([DOT], [dot]) dnl Manual pages. AM_MISSING_PROG([HELP2MAN], [help2man]) +dnl Documentation translation. +AM_MISSING_PROG([PO4A_TRANSLATE], [po4a-translate]) +AM_MISSING_PROG([PO4A_UPDATEPO], [po4a-updatepo]) + dnl Emacs (optional), for 'etc/indent-package.el'. AC_PATH_PROG([EMACS], [emacs], [/usr/bin/emacs]) AC_SUBST([EMACS]) diff --git a/doc/local.mk b/doc/local.mk index 397ade050..f8cf969aa 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -4,6 +4,7 @@ # Copyright © 2013 Andreas Enge <andreas@enge.fr> # Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> # Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org> +# Copyright © 2018 Julien Lepiller <julien@lepiller.eu> # # This file is part of GNU Guix. # @@ -51,10 +52,25 @@ OS_CONFIG_EXAMPLES_TEXI = \ %D%/os-config-desktop.texi \ %D%/os-config-lightweight-desktop.texi +TRANSLATED_INFO = + # 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/guix.%.po + -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "$<" -p "$(word 2,$^)" -l "$@.tmp" + sed -i "s|guix\.info|$$(basename $@ | sed 's|texi$$|info|')|" "$@.tmp" + mv "$@.tmp" "$@" + +$(srcdir)/%D%/contributing.%.texi: %D%/contributing.texi po/doc/contributing.%.po + -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "$<" -p "$(word 2,$^)" -l "$@" + -touch "$@" %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..0e4ad352c --- /dev/null +++ b/po/doc/local.mk @@ -0,0 +1,27 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2018 Julien Lepiller <julien@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 = + +$(srcdir)/po/doc/contributing.%.po: doc/contributing.texi + -$(AM_V_PO4A)$(PO4A_UPDATEPO) -M UTF-8 -f texinfo -m "$<" -p "$@" + -touch "$@" + +$(srcdir)/po/doc/guix.%.po: doc/guix.texi + -$(AM_V_PO4A)$(PO4A_UPDATEPO) -M UTF-8 -f texinfo -m "$<" -p "$@" + -touch "$@" -- 2.16.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] gnu: doc: Alloc documentation to be translated. 2018-03-02 23:07 ` [PATCH 1/3] gnu: doc: Alloc documentation to be translated Julien Lepiller @ 2018-03-05 9:10 ` Ludovic Courtès 2018-03-28 21:05 ` Julien Lepiller 0 siblings, 1 reply; 14+ messages in thread From: Ludovic Courtès @ 2018-03-05 9:10 UTC (permalink / raw) To: Julien Lepiller; +Cc: guix-devel Julien Lepiller <julien@lepiller.eu> skribis: > * po/doc/local.mk: New file. > * Makefile.am: Include it. Add silent rules for po4a. > * configure.ac: Look for po4a-translate and po4a-updatepo. > * doc/local.mk: Add rules to generate gettext files. > (TRANSLATED_INFO): New variable. > (BUILT_SOURCES, EXTRA_DIST, MAINTAINERCLEANFILES): Add it. > * .gitignore: Add generated files. LGTM! For good measure, please check whether “make distcheck” doesn’t show any regression (I haven’t checked in recent master though, it could be that there are currently unrelated issues.) Thanks, Ludo’. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] gnu: doc: Alloc documentation to be translated. 2018-03-05 9:10 ` Ludovic Courtès @ 2018-03-28 21:05 ` Julien Lepiller 2018-03-31 21:33 ` Ludovic Courtès 0 siblings, 1 reply; 14+ messages in thread From: Julien Lepiller @ 2018-03-28 21:05 UTC (permalink / raw) To: guix-devel [-- Attachment #1: Type: text/plain, Size: 1138 bytes --] Le Mon, 05 Mar 2018 10:10:19 +0100, ludo@gnu.org (Ludovic Courtès) a écrit : > Julien Lepiller <julien@lepiller.eu> skribis: > > > * po/doc/local.mk: New file. > > * Makefile.am: Include it. Add silent rules for po4a. > > * configure.ac: Look for po4a-translate and po4a-updatepo. > > * doc/local.mk: Add rules to generate gettext files. > > (TRANSLATED_INFO): New variable. > > (BUILT_SOURCES, EXTRA_DIST, MAINTAINERCLEANFILES): Add it. > > * .gitignore: Add generated files. > > LGTM! > > For good measure, please check whether “make distcheck” doesn’t show > any regression (I haven’t checked in recent master though, it could > be that there are currently unrelated issues.) > > Thanks, > Ludo’. Here is a newer version of the patches. I "fixed" the issue with translated references, but a change in the English manual will still create a change in the translated manuals and po files. I tried to run make distcheck, but even on master, I get this error message: make[2]: *** Aucune règle pour fabriquer la cible « bin/guix.in », nécessaire pour « distdir-am ». Arrêt. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-gnu-doc-Alloc-documentation-to-be-translated.patch --] [-- Type: text/x-patch, Size: 7814 bytes --] From bbad37ae7ca918c894f4aa4d46f6694991a97f29 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Fri, 2 Mar 2018 23:05:28 +0100 Subject: [PATCH 1/3] gnu: doc: Alloc documentation to be translated. * po/doc/local.mk: New file. * Makefile.am: Include it. Add silent rules for po4a. * configure.ac: Look for po4a-translate and po4a-updatepo. * doc/local.mk: Add rules to generate gettext files. (TRANSLATED_INFO): New variable. (BUILT_SOURCES, EXTRA_DIST, MAINTAINERCLEANFILES): Add it. * .gitignore: Add generated files. --- .gitignore | 17 +++++++++++++++++ Makefile.am | 8 +++++++- configure.ac | 4 ++++ doc/local.mk | 48 +++++++++++++++++++++++++++++++++++++++++++++--- po/doc/local.mk | 27 +++++++++++++++++++++++++++ 5 files changed, 100 insertions(+), 4 deletions(-) create mode 100644 po/doc/local.mk diff --git a/.gitignore b/.gitignore index 4a110fb1f..38a55a3b5 100644 --- a/.gitignore +++ b/.gitignore @@ -28,6 +28,21 @@ /configure /doc/*.1 /doc/.dirstamp +/doc/guix.*.aux +/doc/guix.*.cp +/doc/guix.*.cps +/doc/guix.*.fn +/doc/guix.*.fns +/doc/guix.*.html +/doc/guix.*.info +/doc/guix.*.info-[0-9] +/doc/guix.*.ky +/doc/guix.*.pg +/doc/guix.*.toc +/doc/guix.*.t2p +/doc/guix.*.tp +/doc/guix.*.vr +/doc/guix.*.vrs /doc/guix.aux /doc/guix.cp /doc/guix.cps @@ -47,6 +62,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 @@ -79,6 +95,7 @@ /nix/scripts/list-runtime-roots /nix/scripts/offload /nix/scripts/substitute +/po/doc/*.mo /po/guix/*.gmo /po/guix/*.insert-header /po/guix/*.mo diff --git a/Makefile.am b/Makefile.am index feb99490d..36f5856b4 100644 --- a/Makefile.am +++ b/Makefile.am @@ -10,6 +10,7 @@ # Copyright © 2017 Jan Nieuwenhuizen <janneke@gnu.org> # Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net> # Copyright © 2018 Nils Gillmann <ng0@n0.is> +# Copyright © 2018 Julien Lepiller <julien@lepiller.eu> # # This file is part of GNU Guix. # @@ -51,6 +52,7 @@ MODULES_NOT_COMPILED = \ guix/man-db.scm include gnu/local.mk +include po/doc/local.mk MODULES = \ guix/base16.scm \ @@ -452,7 +454,7 @@ dist_fishcompletion_DATA = etc/completion/fish/guix.fish # SELinux policy dist_selinux_policy_DATA = etc/guix-daemon.cil -EXTRA_DIST = \ +EXTRA_DIST += \ HACKING \ ROADMAP \ TODO \ @@ -779,3 +781,7 @@ AM_V_DOT_0 = @echo " DOT " $@; AM_V_HELP2MAN = $(AM_V_HELP2MAN_$(V)) AM_V_HELP2MAN_ = $(AM_V_HELP2MAN_$(AM_DEFAULT_VERBOSITY)) AM_V_HELP2MAN_0 = @echo " HELP2MAN" $@; + +AM_V_PO4A = $(AM_V_PO4A_$(V)) +AM_V_PO4A_ = $(AM_V_PO4A_$(AM_DEFAULT_VERBOSITY)) +AM_V_PO4A_0 = @echo " PO4A" $@; diff --git a/configure.ac b/configure.ac index 5872a8482..557da6318 100644 --- a/configure.ac +++ b/configure.ac @@ -263,6 +263,10 @@ AM_MISSING_PROG([DOT], [dot]) dnl Manual pages. AM_MISSING_PROG([HELP2MAN], [help2man]) +dnl Documentation translation. +AM_MISSING_PROG([PO4A_TRANSLATE], [po4a-translate]) +AM_MISSING_PROG([PO4A_UPDATEPO], [po4a-updatepo]) + dnl Emacs (optional), for 'etc/indent-package.el'. AC_PATH_PROG([EMACS], [emacs], [/usr/bin/emacs]) AC_SUBST([EMACS]) diff --git a/doc/local.mk b/doc/local.mk index 397ade050..922d7581a 100644 --- a/doc/local.mk +++ b/doc/local.mk @@ -4,6 +4,7 @@ # Copyright © 2013 Andreas Enge <andreas@enge.fr> # Copyright © 2016 Taylan Ulrich Bayırlı/Kammer <taylanbayirli@gmail.com> # Copyright © 2016, 2018 Mathieu Lirzin <mthl@gnu.org> +# Copyright © 2018 Julien Lepiller <julien@lepiller.eu> # # This file is part of GNU Guix. # @@ -51,10 +52,51 @@ OS_CONFIG_EXAMPLES_TEXI = \ %D%/os-config-desktop.texi \ %D%/os-config-lightweight-desktop.texi +TRANSLATED_INFO = + # 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 + +# When a change to guix.texi occurs, it is not translated immediately. +# Because @pxref and @xref commands are reference to a section by name, they +# should be translated. If a modification adds a reference to a section, this +# reference is not translated, which means it references a section that does not +# exist. +# This command loops through the translated files looking for references. For +# each of these references, it tries to find the translation and replaces the +# reference name, even in untranslated strings. +# The last sed is a multiline sed because some references span multiple lines. +define xref_command +cat "$@.tmp" | egrep '@p?x?ref' -A1 | sed 'N;s|--\n||g;P;D' | sed 's|^| |g' | \ + tr -d '\012' | sed 's|\(@p\?x\?ref\)|\n\1|g' | egrep '@p?x?ref' | \ + sed 's|^.*@p\?x\?ref{\([^,}]*\).*$$|\1|g' | sort | uniq | while read e; do \ + line=$$(grep -n "msgid \"$$e\"" "$(word 2,$^)" | cut -f1 --delimiter=":") ;\ + ((line++)) ;\ + if [ "$$line" != "1" ]; then \ + translation=$$(head -n $$line "$(word 2,$^)" | tail -1 | grep msgstr | sed 's|msgstr "\(.*\)"|\1|') ;\ + if [ "$$translation" != "" ]; then \ + sed "N;s@\(p\?x\?ref\){$$(echo $$e | sed 's| |[\\n ]|g')\(,\|}\)@\1{$$translation\2@g;P;D" -i "$@.tmp" ;\ + fi ;\ + fi ;\ +done +endef + +$(srcdir)/%D%/guix.%.texi: %D%/guix.texi po/doc/guix.%.po $(srcdir)/%D%/contributing.%.texi + -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "$<" -p "$(word 2,$^)" -l "$@.tmp" + -sed -i "s|guix\.info|$$(basename "$@" | sed 's|texi$$|info|')|" "$@.tmp" + -$(xref_command) + -mv "$@.tmp" "$@" + +$(srcdir)/%D%/contributing.%.texi: %D%/contributing.texi po/doc/guix.%.po po/doc/contributing.%.po + -$(AM_V_PO4A)$(PO4A_TRANSLATE) $(PO4A_PARAMS) -m "$<" -p "$(word 3,$^)" -l "$@.tmp" + -$(xref_command) + -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..0e4ad352c --- /dev/null +++ b/po/doc/local.mk @@ -0,0 +1,27 @@ +# GNU Guix --- Functional package management for GNU +# Copyright © 2018 Julien Lepiller <julien@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 = + +$(srcdir)/po/doc/contributing.%.po: doc/contributing.texi + -$(AM_V_PO4A)$(PO4A_UPDATEPO) -M UTF-8 -f texinfo -m "$<" -p "$@" + -touch "$@" + +$(srcdir)/po/doc/guix.%.po: doc/guix.texi + -$(AM_V_PO4A)$(PO4A_UPDATEPO) -M UTF-8 -f texinfo -m "$<" -p "$@" + -touch "$@" -- 2.16.3 [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #3: 0002-gnu-guix-Add-po4a-input.patch --] [-- Type: text/x-patch, Size: 1282 bytes --] From 8b5871cfc00f15dfe22131eaa4ba5b5fc6458c24 Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Fri, 2 Mar 2018 23:11:46 +0100 Subject: [PATCH 2/3] gnu: guix: Add po4a input. * gnu/packages/package-management.scm (guix)[inputs]: Add po4a. --- gnu/packages/package-management.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index a90ba7a21..f86afb1cb 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -244,7 +245,8 @@ ("gettext" ,gettext-minimal) ("texinfo" ,texinfo) ("graphviz" ,graphviz) - ("help2man" ,help2man))) + ("help2man" ,help2man) + ("po4a" ,po4a))) (inputs `(("bzip2" ,bzip2) ("gzip" ,gzip) -- 2.16.3 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 1/3] gnu: doc: Alloc documentation to be translated. 2018-03-28 21:05 ` Julien Lepiller @ 2018-03-31 21:33 ` Ludovic Courtès 0 siblings, 0 replies; 14+ messages in thread From: Ludovic Courtès @ 2018-03-31 21:33 UTC (permalink / raw) To: Julien Lepiller; +Cc: guix-devel Hi Julien, Julien Lepiller <julien@lepiller.eu> skribis: > Le Mon, 05 Mar 2018 10:10:19 +0100, > ludo@gnu.org (Ludovic Courtès) a écrit : [...] >> For good measure, please check whether “make distcheck” doesn’t show >> any regression (I haven’t checked in recent master though, it could >> be that there are currently unrelated issues.) >> >> Thanks, >> Ludo’. > > Here is a newer version of the patches. I "fixed" the issue with > translated references, but a change in the English manual will still > create a change in the translated manuals and po files. > > I tried to run make distcheck, but even on master, I get this error > message: > > make[2]: *** Aucune règle pour fabriquer la cible « bin/guix.in », > nécessaire pour « distdir-am ». Arrêt. Fixed in c92e5612996e98cde005a572b83fc66aae32bcd7. Could you try again and commit if it works? Thanks, Ludo’. ^ permalink raw reply [flat|nested] 14+ messages in thread
* [PATCH 2/3] gnu: guix: Add po4a input. 2018-03-02 23:07 ` [WIP] " Julien Lepiller 2018-03-02 23:07 ` [PATCH 1/3] gnu: doc: Alloc documentation to be translated Julien Lepiller @ 2018-03-02 23:07 ` Julien Lepiller 2018-03-05 9:10 ` Ludovic Courtès 2018-03-05 9:08 ` [WIP] localize guix.texi Ludovic Courtès 2 siblings, 1 reply; 14+ messages in thread From: Julien Lepiller @ 2018-03-02 23:07 UTC (permalink / raw) To: guix-devel * gnu/packages/package-management.scm (guix)[inputs]: Add po4a. --- gnu/packages/package-management.scm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gnu/packages/package-management.scm b/gnu/packages/package-management.scm index 6ec70b12f..5aeea5cbd 100644 --- a/gnu/packages/package-management.scm +++ b/gnu/packages/package-management.scm @@ -5,6 +5,7 @@ ;;; Copyright © 2017 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2017 Roel Janssen <roel@gnu.org> ;;; Copyright © 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr> +;;; Copyright © 2018 Julien Lepiller <julien@lepiller.eu> ;;; ;;; This file is part of GNU Guix. ;;; @@ -244,7 +245,8 @@ ("gettext" ,gettext-minimal) ("texinfo" ,texinfo) ("graphviz" ,graphviz) - ("help2man" ,help2man))) + ("help2man" ,help2man) + ("po4a" ,po4a))) (inputs `(("bzip2" ,bzip2) ("gzip" ,gzip) -- 2.16.1 ^ permalink raw reply related [flat|nested] 14+ messages in thread
* Re: [PATCH 2/3] gnu: guix: Add po4a input. 2018-03-02 23:07 ` [PATCH 2/3] gnu: guix: Add po4a input Julien Lepiller @ 2018-03-05 9:10 ` Ludovic Courtès 0 siblings, 0 replies; 14+ messages in thread From: Ludovic Courtès @ 2018-03-05 9:10 UTC (permalink / raw) To: Julien Lepiller; +Cc: guix-devel Julien Lepiller <julien@lepiller.eu> skribis: > * gnu/packages/package-management.scm (guix)[inputs]: Add po4a. OK. And OK for patch 3/3, which I guess is the French translation. Ludo’. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [WIP] localize guix.texi 2018-03-02 23:07 ` [WIP] " Julien Lepiller 2018-03-02 23:07 ` [PATCH 1/3] gnu: doc: Alloc documentation to be translated Julien Lepiller 2018-03-02 23:07 ` [PATCH 2/3] gnu: guix: Add po4a input Julien Lepiller @ 2018-03-05 9:08 ` Ludovic Courtès 2018-03-05 9:58 ` julien lepiller 2 siblings, 1 reply; 14+ messages in thread From: Ludovic Courtès @ 2018-03-05 9:08 UTC (permalink / raw) To: Julien Lepiller; +Cc: guix-devel Hi, Julien Lepiller <julien@lepiller.eu> skribis: > Hi, this new version of the patch takes your feedback into account. I tried > to put guix.fr.texi in dist_info_TEXINFOS, but automake didn't generate the > rules for building guix.fr.info in that case. > > I don't like the fact that both the po and texi files are commited and will > be changed together whenever someone makes a change in the manual. I think this can be addressed by adding: PO_DEPENDS_ON_POT = no in ‘Makevars’. This variable is documented like this: --8<---------------cut here---------------start------------->8--- # This tells whether or not to regenerate a PO file when $(DOMAIN).pot # has changed. Possible values are "yes" and "no". Set this to no if # the POT file is checked in the repository and the version control # program ignores timestamps. PO_DEPENDS_ON_POT = yes --8<---------------cut here---------------end--------------->8--- > The French translation is just the beginning: I translated only the Introduction > and the Installation pages. Also, I used the po file to add the > @documentlanguage macro to change the texinfo strings to French (like "see", > "next page", "up", etc). Sounds good. I think ‘makeinfo --html’ would also need to run in fr_FR locale no? Or does @documentlanguage take care of everything, including strings automatically added by makeinfo, such as those that appear at the top of each HTML page? > There's an issue with changes that add references: when that happens, the > default translation would be the English version, so the reference would be > to the English name (for instance, @pxref{Invoking guix package}), resulting > in a build failure when the name has been changed (for instance > "Invoquer guix package" in French). I would like to be able to localize the > section name because it appears in link names. Any ideas? No idea. Can po4a help with that? At worst, if .po files are committed and not systematically generated, we can let translators handle this before they commit? Thanks, Ludo’. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [WIP] localize guix.texi 2018-03-05 9:08 ` [WIP] localize guix.texi Ludovic Courtès @ 2018-03-05 9:58 ` julien lepiller 2018-03-05 11:00 ` Ludovic Courtès 0 siblings, 1 reply; 14+ messages in thread From: julien lepiller @ 2018-03-05 9:58 UTC (permalink / raw) To: guix-devel Le 2018-03-05 10:08, ludo@gnu.org a écrit : > Hi, > > Julien Lepiller <julien@lepiller.eu> skribis: > >> Hi, this new version of the patch takes your feedback into account. I >> tried >> to put guix.fr.texi in dist_info_TEXINFOS, but automake didn't >> generate the >> rules for building guix.fr.info in that case. >> >> I don't like the fact that both the po and texi files are commited and >> will >> be changed together whenever someone makes a change in the manual. > > I think this can be addressed by adding: > > PO_DEPENDS_ON_POT = no > > in ‘Makevars’. This variable is documented like this: > > --8<---------------cut here---------------start------------->8--- > # This tells whether or not to regenerate a PO file when $(DOMAIN).pot > # has changed. Possible values are "yes" and "no". Set this to no if > # the POT file is checked in the repository and the version control > # program ignores timestamps. > PO_DEPENDS_ON_POT = yes > --8<---------------cut here---------------end--------------->8--- Well, since there's no pot file, it doesn't really help. > >> The French translation is just the beginning: I translated only the >> Introduction >> and the Installation pages. Also, I used the po file to add the >> @documentlanguage macro to change the texinfo strings to French (like >> "see", >> "next page", "up", etc). > > Sounds good. I think ‘makeinfo --html’ would also need to run in fr_FR > locale no? Or does @documentlanguage take care of everything, > including > strings automatically added by makeinfo, such as those that appear at > the top of each HTML page? @documentlanguage is enough > >> There's an issue with changes that add references: when that happens, >> the >> default translation would be the English version, so the reference >> would be >> to the English name (for instance, @pxref{Invoking guix package}), >> resulting >> in a build failure when the name has been changed (for instance >> "Invoquer guix package" in French). I would like to be able to >> localize the >> section name because it appears in link names. Any ideas? > > No idea. Can po4a help with that? It doesn't seem so. But that may be an improvement of po4a. > > At worst, if .po files are committed and not systematically generated, > we can let translators handle this before they commit? I don't understand? The issue is when translators are not involved. IIUC in texinfo, the section name (reference) and title (displayed) are the same, so section names have to be translated. When someone makes a change to the English manual and adds a reference to an existing section, po4a cannot generate a translation, so it will leave it as is. So we will get a reference to an invalid section in the translated manuals and they will refuse to build. There is enough information in the po file though, so I think po4a can be improved (or we could add our own script for that). Thank you! > > Thanks, > Ludo’. ^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [WIP] localize guix.texi 2018-03-05 9:58 ` julien lepiller @ 2018-03-05 11:00 ` Ludovic Courtès 0 siblings, 0 replies; 14+ messages in thread From: Ludovic Courtès @ 2018-03-05 11:00 UTC (permalink / raw) To: julien lepiller; +Cc: guix-devel Hi, julien lepiller <julien@lepiller.eu> skribis: > Le 2018-03-05 10:08, ludo@gnu.org a écrit : [...] >> I think this can be addressed by adding: >> >> PO_DEPENDS_ON_POT = no >> >> in ‘Makevars’. This variable is documented like this: >> >> --8<---------------cut here---------------start------------->8--- >> # This tells whether or not to regenerate a PO file when $(DOMAIN).pot >> # has changed. Possible values are "yes" and "no". Set this to no if >> # the POT file is checked in the repository and the version control >> # program ignores timestamps. >> PO_DEPENDS_ON_POT = yes >> --8<---------------cut here---------------end--------------->8--- > > Well, since there's no pot file, it doesn't really help. Oh, I thought po4a would generate a pot file from the texi source. >> At worst, if .po files are committed and not systematically generated, >> we can let translators handle this before they commit? > > I don't understand? The issue is when translators are not > involved. IIUC in > texinfo, the section name (reference) and title (displayed) are the > same, so > section names have to be translated. When someone makes a change to > the English > manual and adds a reference to an existing section, po4a cannot > generate a > translation, so it will leave it as is. So we will get a reference to > an invalid > section in the translated manuals and they will refuse to build. Right, but the “we” in the sentence above corresponds to translators, right? As long as only translators see the problem, that should be fine. > There is enough information in the po file though, so I think po4a can > be > improved (or we could add our own script for that). Great. Thanks! Ludo’. ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2018-03-31 21:33 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-02-19 22:34 [WIP]: localize guix.texi Julien Lepiller 2018-02-19 22:45 ` Julien Lepiller 2018-03-02 13:31 ` Ludovic Courtès 2018-03-02 15:57 ` Gábor Boskovits 2018-03-02 23:07 ` [WIP] " Julien Lepiller 2018-03-02 23:07 ` [PATCH 1/3] gnu: doc: Alloc documentation to be translated Julien Lepiller 2018-03-05 9:10 ` Ludovic Courtès 2018-03-28 21:05 ` Julien Lepiller 2018-03-31 21:33 ` Ludovic Courtès 2018-03-02 23:07 ` [PATCH 2/3] gnu: guix: Add po4a input Julien Lepiller 2018-03-05 9:10 ` Ludovic Courtès 2018-03-05 9:08 ` [WIP] localize guix.texi Ludovic Courtès 2018-03-05 9:58 ` julien lepiller 2018-03-05 11:00 ` Ludovic Courtès
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/guix.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.