Message ID | 20210122213402.1f964c7f@tachikoma.lepiller.eu |
---|---|
State | Accepted |
Headers | show |
Series | [bug#46044] Improvements to handling po files | expand |
Context | Check | Description |
---|---|---|
cbaines/submitting builds | success | |
cbaines/comparison | success | View comparision |
cbaines/git branch | success | View Git branch |
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Hi! Julien Lepiller <julien@lepiller.eu> skribis: > here are two patches to improve our handling of po files. Yesterday I > pushed again new po files that were broken, and I didn't notice. The > first patch ensure po files are normalized. The TP automatically > normalized po, but weblate doesn't, using the indent method instead. > This creates huge patches like yesterday. Instead, normalizing ensures > we only see relevant changes. Makes sense. > The second patch adds a check-po target to the Makefile that runs > msgfmt on every po file we have, to make sure they are at least > correct. That's not enough for manual translations, but that can be > spotted easily when running "make". This would have spotted the issues > I introduced yesterday. Yes, or running “make as-derivation” (sometimes just “make” isn’t enough to catch issues it seems, not sure why.) >>From 42aa42512dba281f3d33e7883c922c0f5704bee4 Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@lepiller.eu> > Date: Fri, 22 Jan 2021 21:28:28 +0100 > Subject: [PATCH 1/2] Makefile.am: Normalize downloaded po files. > > * Makefile.am (make-download-po-rule): Normalize po files. OK! >>From 8be36b2d651be108bc1e7fe7790f889dd19c679d Mon Sep 17 00:00:00 2001 > From: Julien Lepiller <julien@lepiller.eu> > Date: Fri, 22 Jan 2021 21:24:23 +0100 > Subject: [PATCH 2/2] Makefile.am: Add check-po rule. > > * Makefile.am (make-check-po-rule): New definition. > Add top-level 'eval' and calls to 'make-check-po-rule' to generate > 'check-po.DOMAIN' rules. > (check-po): New rule. [...] > +# make-check-po-rule DOMAIN DIRECTORY [FILE-NAME-PREFIX] > +define make-check-po-rule Could you add a line or two above the definition explaining what it does? > +check-po.$(1): > + if [ -f "$(top_srcdir)/$(2)/LINGUAS" ]; then \ > + LINGUAS="`grep -v '^[[:blank:]]*#' < $(top_srcdir)/$(2)/LINGUAS`" ; \ > + else \ > + LINGUAS="`(cd $(top_srcdir)/$(2); \ > + for i in *.po; do echo $$$$i; done) | cut -d . -f 2`" ; \ > + fi ; \ > + for lang in $$$$LINGUAS; do \ > + if [ -f "$(top_srcdir)/$(2)/$(3)$$$$lang.po" ]; \ > + then \ > + if ! msgfmt -c "$(top_srcdir)/$(2)/$(3)$$$$lang.po" ; \ > + then \ > + exit 1 ; \ > + fi ; \ > + fi ; \ Would be great if you could align backslashes. :-) Otherwise LGTM, thanks! Ludo’.
Pushed as c891e7c828d21530f110c04dabe70515447c7d67 and b91165460e71f427c30f22ace02a5d775ecea23d, thank you!
From 8be36b2d651be108bc1e7fe7790f889dd19c679d Mon Sep 17 00:00:00 2001 From: Julien Lepiller <julien@lepiller.eu> Date: Fri, 22 Jan 2021 21:24:23 +0100 Subject: [PATCH 2/2] Makefile.am: Add check-po rule. * Makefile.am (make-check-po-rule): New definition. Add top-level 'eval' and calls to 'make-check-po-rule' to generate 'check-po.DOMAIN' rules. (check-po): New rule. --- Makefile.am | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/Makefile.am b/Makefile.am index d479032f83..371fc42394 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1003,14 +1003,46 @@ download-po.$(1): endef +# make-check-po-rule DOMAIN DIRECTORY [FILE-NAME-PREFIX] +define make-check-po-rule + +check-po.$(1): + if [ -f "$(top_srcdir)/$(2)/LINGUAS" ]; then \ + LINGUAS="`grep -v '^[[:blank:]]*#' < $(top_srcdir)/$(2)/LINGUAS`" ; \ + else \ + LINGUAS="`(cd $(top_srcdir)/$(2); \ + for i in *.po; do echo $$$$i; done) | cut -d . -f 2`" ; \ + fi ; \ + for lang in $$$$LINGUAS; do \ + if [ -f "$(top_srcdir)/$(2)/$(3)$$$$lang.po" ]; \ + then \ + if ! msgfmt -c "$(top_srcdir)/$(2)/$(3)$$$$lang.po" ; \ + then \ + exit 1 ; \ + fi ; \ + fi ; \ + done + +.PHONY: check-po.$(1) + +endef + $(eval $(call make-download-po-rule,documentation-cookbook,po/doc,guix-cookbook.)) $(eval $(call make-download-po-rule,documentation-manual,po/doc,guix-manual.)) $(eval $(call make-download-po-rule,guix,po/guix)) $(eval $(call make-download-po-rule,packages,po/packages)) +$(eval $(call make-check-po-rule,documentation-cookbook,po/doc,guix-cookbook.)) +$(eval $(call make-check-po-rule,documentation-manual,po/doc,guix-manual.)) +$(eval $(call make-check-po-rule,guix,po/guix)) +$(eval $(call make-check-po-rule,packages,po/packages)) + download-po: $(foreach domain,guix packages documentation-manual documentation-cookbook,download-po.$(domain)) .PHONY: download-po +check-po: $(foreach domain,guix packages documentation-manual documentation-cookbook,check-po.$(domain)) +.PHONY: check-po + ## -------------- ## ## Silent rules. ## ## -------------- ## -- 2.30.0