* [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements
@ 2026-07-24 11:12 Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 01/11] make: catalog-%.mo: explicitly set template file Maximiliano Sandoval
` (11 more replies)
0 siblings, 12 replies; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
The main difference in behavior is that we add --previous to the msgmerge
command used to update the PO files. This can add some extra information to
translations, which can make it easier to determine whether the previous
translation is still valid or what kind of modifications it needs.
See individual commits and their notes.
Additionally:
- there are a couple of cleanups
- we move the LINGUAS to a dedicated file
- check LINGUAS and add languages to it on the init-%.po target
- split the do_update target on a per-language basis
Differences from v1:
- Move LINGUAS to a dedicated file
- split the do_update target on a per-language basis
Maximiliano Sandoval (11):
make: catalog-%.mo: explicitly set template file
make: simplify msgmerge commands
make: clean: remove *.mo files
make: use long options for msgmerge and msginit
make: do_update: add --update for msgmerge
make: do_update: add --previous flag to msgmerge
gitignore: remove proxmox-datacenter-manager.pot
make: move linguas to a file
make: add linguas checks
make: init-%.po: add language to linguas
make: add targets to update specific PO files
.gitignore | 1 -
LINGUAS | 32 ++++++++++++++++++++++++
Makefile | 72 ++++++++++++++++++++----------------------------------
3 files changed, 59 insertions(+), 46 deletions(-)
create mode 100644 LINGUAS
--
2.47.3
^ permalink raw reply [flat|nested] 21+ messages in thread
* [PATCH proxmox-i18n v2 01/11] make: catalog-%.mo: explicitly set template file
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
@ 2026-07-24 11:12 ` Maximiliano Sandoval
2026-07-24 13:06 ` Shannon Sterz
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 02/11] make: simplify msgmerge commands Maximiliano Sandoval
` (10 subsequent siblings)
11 siblings, 1 reply; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
msgmerge takes exactly two arguments. Fixes a regression from aacd4e7a.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 86f81e9b..b233828b 100644
--- a/Makefile
+++ b/Makefile
@@ -125,8 +125,8 @@ pve-lang-%.js: %.po
pbs-lang-%.js: %.po
./po2js.pl -t pbs -v "$(DEB_VERSION)" -o pbs-lang-$*.js $?
-catalog-%.mo: %.po
- msgmerge $^ | msgattrib --no-fuzzy --no-obsolete | msgfmt --verbose --output-file $@ $<;
+catalog-%.mo: %.po messages.pot
+ msgmerge $*.po messages.pot | msgattrib --no-fuzzy --no-obsolete | msgfmt --verbose --output-file $@ $<;
.INTERMEDIATE: pve-yew-mobile-all.pot
pve-yew-mobile-all.pot: pve-yew-mobile-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
--
2.47.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH proxmox-i18n v2 02/11] make: simplify msgmerge commands
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 01/11] make: catalog-%.mo: explicitly set template file Maximiliano Sandoval
@ 2026-07-24 11:12 ` Maximiliano Sandoval
2026-07-24 13:06 ` Shannon Sterz
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 03/11] make: clean: remove *.mo files Maximiliano Sandoval
` (9 subsequent siblings)
11 siblings, 1 reply; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
msgmerge has a --for-msgfmt which produces the same output ass filtering via
msgattrib. This removes the need for temporal files.
Some differences are that --for-msgfmt will also strip file location and
comments which do not serve any purpose when generating .mo files.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
Makefile | 10 +++-------
1 file changed, 3 insertions(+), 7 deletions(-)
diff --git a/Makefile b/Makefile
index b233828b..dcd742ea 100644
--- a/Makefile
+++ b/Makefile
@@ -126,25 +126,21 @@ pbs-lang-%.js: %.po
./po2js.pl -t pbs -v "$(DEB_VERSION)" -o pbs-lang-$*.js $?
catalog-%.mo: %.po messages.pot
- msgmerge $*.po messages.pot | msgattrib --no-fuzzy --no-obsolete | msgfmt --verbose --output-file $@ $<;
+ msgmerge $*.po messages.pot --for-msgfmt | msgfmt --verbose --output-file $@ -
.INTERMEDIATE: pve-yew-mobile-all.pot
pve-yew-mobile-all.pot: pve-yew-mobile-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
xgettext $^ --output $@
pve-yew-mobile-catalog-%.mo: %.po pve-yew-mobile-all.pot
- msgmerge $*.po pve-yew-mobile-all.pot| msgattrib --no-fuzzy --no-obsolete > $@.tmp
- msgfmt --verbose --output-file $@ $@.tmp;
- rm -rf $@.tmp
+ msgmerge $*.po pve-yew-mobile-all.pot --for-msgfmt | msgfmt --verbose --output-file $@ -
.INTERMEDIATE: pmg-yew-quarantine-all.pot
pmg-yew-quarantine-all.pot: pmg-yew-quarantine-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
xgettext $^ --output $@
pmg-yew-quarantine-catalog-%.mo: %.po pmg-yew-quarantine-all.pot
- msgmerge $*.po pmg-yew-quarantine-all.pot| msgattrib --no-fuzzy --no-obsolete > $@.tmp
- msgfmt --verbose --output-file $@ $@.tmp;
- rm -rf $@.tmp
+ msgmerge $*.po pmg-yew-quarantine-all.pot --for-msgfmt | msgfmt --verbose --output-file $@ -
# parameter 1 is the name
# parameter 2 is the directory
--
2.47.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH proxmox-i18n v2 03/11] make: clean: remove *.mo files
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 01/11] make: catalog-%.mo: explicitly set template file Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 02/11] make: simplify msgmerge commands Maximiliano Sandoval
@ 2026-07-24 11:12 ` Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 04/11] make: use long options for msgmerge and msginit Maximiliano Sandoval
` (8 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index dcd742ea..1873de31 100644
--- a/Makefile
+++ b/Makefile
@@ -215,7 +215,7 @@ distclean: clean
.PHONY: clean
clean:
- rm -rf $(DEB_SOURCE)-[0-9]*/ *.po.tmp *.js.tmp *.deb *.dsc *.tar.* *.build *.buildinfo *.changes *.js messages.pot
+ rm -rf $(DEB_SOURCE)-[0-9]*/ *.po.tmp *.js.tmp *.deb *.dsc *.tar.* *.build *.buildinfo *.changes *.js messages.pot *.mo
.PHONY: upload-pve upload-pmg upload-pbs upload-pdm upload
upload-%: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
--
2.47.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH proxmox-i18n v2 04/11] make: use long options for msgmerge and msginit
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
` (2 preceding siblings ...)
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 03/11] make: clean: remove *.mo files Maximiliano Sandoval
@ 2026-07-24 11:12 ` Maximiliano Sandoval
2026-07-24 13:06 ` Shannon Sterz
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 05/11] make: do_update: add --update for msgmerge Maximiliano Sandoval
` (7 subsequent siblings)
11 siblings, 1 reply; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
For improved readability and being consisten with the other commands.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 1873de31..77fd60a0 100644
--- a/Makefile
+++ b/Makefile
@@ -189,7 +189,7 @@ update_pot: submodule
do_update:
$(MAKE) update_pot
$(MAKE) messages.pot
- for i in $(LINGUAS); do echo -n "$$i: "; msgmerge -s -v $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
+ for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
update:
git submodule foreach 'git pull --ff-only origin master'
@@ -199,7 +199,7 @@ stats:
@for i in $(LINGUAS); do echo -n "$$i: "; msgfmt --statistics -o /dev/null $$i.po; done
init-%.po: messages.pot
- msginit -i $^ -l $^ -o $*.po --no-translator
+ msginit --input $^ --locale $^ --output-file $*.po --no-translator
.INTERMEDIATE: messages.pot
messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot proxmox-backup.pot proxmox-datacenter-manager-ui.pot pve-yew-mobile-gui.pot pmg-yew-quarantine-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
--
2.47.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH proxmox-i18n v2 05/11] make: do_update: add --update for msgmerge
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
` (3 preceding siblings ...)
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 04/11] make: use long options for msgmerge and msginit Maximiliano Sandoval
@ 2026-07-24 11:12 ` Maximiliano Sandoval
2026-07-24 13:06 ` Shannon Sterz
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 06/11] make: do_update: add --previous flag to msgmerge Maximiliano Sandoval
` (6 subsequent siblings)
11 siblings, 1 reply; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
Removes the need for temporal files.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index 77fd60a0..6ed80d2e 100644
--- a/Makefile
+++ b/Makefile
@@ -189,7 +189,7 @@ update_pot: submodule
do_update:
$(MAKE) update_pot
$(MAKE) messages.pot
- for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
+ for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose --update --backup=none $$i.po messages.pot; done;
update:
git submodule foreach 'git pull --ff-only origin master'
@@ -215,7 +215,7 @@ distclean: clean
.PHONY: clean
clean:
- rm -rf $(DEB_SOURCE)-[0-9]*/ *.po.tmp *.js.tmp *.deb *.dsc *.tar.* *.build *.buildinfo *.changes *.js messages.pot *.mo
+ rm -rf $(DEB_SOURCE)-[0-9]*/ *.js.tmp *.deb *.dsc *.tar.* *.build *.buildinfo *.changes *.js messages.pot *.mo
.PHONY: upload-pve upload-pmg upload-pbs upload-pdm upload
upload-%: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
--
2.47.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH proxmox-i18n v2 06/11] make: do_update: add --previous flag to msgmerge
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
` (4 preceding siblings ...)
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 05/11] make: do_update: add --update for msgmerge Maximiliano Sandoval
@ 2026-07-24 11:12 ` Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 07/11] gitignore: remove proxmox-datacenter-manager.pot Maximiliano Sandoval
` (5 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
When marking a string as fuzzy, this adds a hint with the previous msgid, e.g.
#: pve-manager/www/manager6/ceph/OSD.js:557
#, fuzzy
#| msgid "Apply"
msgid "Apply to"
msgstr "Aplicar"
would show that the previous msgid was Apply. This might be picked up by the
translator editor.
This provides context to translators and help determining if and how the msgstr
should be adjusted.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 6ed80d2e..4e1259f1 100644
--- a/Makefile
+++ b/Makefile
@@ -189,7 +189,7 @@ update_pot: submodule
do_update:
$(MAKE) update_pot
$(MAKE) messages.pot
- for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose --update --backup=none $$i.po messages.pot; done;
+ for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose --update --backup=none --previous $$i.po messages.pot; done;
update:
git submodule foreach 'git pull --ff-only origin master'
--
2.47.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH proxmox-i18n v2 07/11] gitignore: remove proxmox-datacenter-manager.pot
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
` (5 preceding siblings ...)
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 06/11] make: do_update: add --previous flag to msgmerge Maximiliano Sandoval
@ 2026-07-24 11:12 ` Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 08/11] make: move linguas to a file Maximiliano Sandoval
` (4 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
This file was removed at aacd4e7a.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
.gitignore | 1 -
1 file changed, 1 deletion(-)
diff --git a/.gitignore b/.gitignore
index 6a318aae..96633ff3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,5 +7,4 @@
/pmg-lang-*.js
/pve-lang-*.js
/messages.pot
-/proxmox-datacenter-manager.pot
/build-debs
--
2.47.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH proxmox-i18n v2 08/11] make: move linguas to a file
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
` (6 preceding siblings ...)
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 07/11] gitignore: remove proxmox-datacenter-manager.pot Maximiliano Sandoval
@ 2026-07-24 11:12 ` Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 09/11] make: add linguas checks Maximiliano Sandoval
` (3 subsequent siblings)
11 siblings, 0 replies; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
Similarly how this is handled by meson's i18n module [1]. This allows
automatically adding linguas as part of the init-%.po target or validating we
are not missing any.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
LINGUAS | 32 ++++++++++++++++++++++++++++++++
Makefile | 34 +---------------------------------
2 files changed, 33 insertions(+), 33 deletions(-)
create mode 100644 LINGUAS
diff --git a/LINGUAS b/LINGUAS
new file mode 100644
index 00000000..b157d968
--- /dev/null
+++ b/LINGUAS
@@ -0,0 +1,32 @@
+ar
+bg
+ca
+cs
+da
+de
+el_GR
+es
+eu
+fa
+fr
+ga
+gl
+he
+hr
+hu
+it
+ja
+ka
+ko
+nb
+nl
+nn
+pl
+pt_BR
+ru
+sl
+sv
+tr
+ukr
+zh_CN
+zh_TW
diff --git a/Makefile b/Makefile
index 4e1259f1..ceac4eab 100644
--- a/Makefile
+++ b/Makefile
@@ -1,38 +1,6 @@
include /usr/share/dpkg/pkg-info.mk
-LINGUAS ?= \
- ar \
- bg \
- ca \
- cs \
- da \
- de \
- el_GR \
- es \
- eu \
- fa \
- fr \
- ga \
- gl \
- he \
- hr \
- hu \
- it \
- ja \
- ka \
- ko \
- nb \
- nl \
- nn \
- pl \
- pt_BR \
- ru \
- sl \
- sv \
- tr \
- ukr \
- zh_CN \
- zh_TW \
+LINGUAS ?= $(shell xargs --arg-file LINGUAS)
BUILDDIR ?= $(DEB_SOURCE)-$(DEB_VERSION)
--
2.47.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH proxmox-i18n v2 09/11] make: add linguas checks
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
` (7 preceding siblings ...)
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 08/11] make: move linguas to a file Maximiliano Sandoval
@ 2026-07-24 11:12 ` Maximiliano Sandoval
2026-07-24 13:06 ` Shannon Sterz
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 10/11] make: init-%.po: add language to linguas Maximiliano Sandoval
` (2 subsequent siblings)
11 siblings, 1 reply; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
Cross-references the list of languages in LINGUAS and the *.po files.
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
Notes:
This should be equivalent to the less-verbose:
test "$(ls *.po | sed 's/.po//')" = "$(cat LINGUAS)"
but easier to understand why it fails on failure.
Makefile | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index ceac4eab..3dd30401 100644
--- a/Makefile
+++ b/Makefile
@@ -202,5 +202,19 @@ upload: upload-pve upload-pmg upload-pbs upload-pdm
check-%: %.po
msgfmt --check $*.po
+.PHONY: check-linguas
+check-linguas:
+ sort --check --uniq LINGUAS
+ set -e; for lang in $(LINGUAS); do \
+ echo "checking if $$lang.po exists"; \
+ test -f $$lang.po; \
+ done
+ set -e; for lang in $(shell ls *.po | sed 's/\.po//'); do \
+ echo "checking if $$lang is in LINGUAS"; \
+ grep --quiet --line-regexp $$lang LINGUAS; \
+ done
+
.PHONY: check
-check: $(addprefix check-, $(LINGUAS))
+check:
+ $(MAKE) $(addprefix check-, $(LINGUAS))
+ $(MAKE) check-linguas
--
2.47.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH proxmox-i18n v2 10/11] make: init-%.po: add language to linguas
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
` (8 preceding siblings ...)
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 09/11] make: add linguas checks Maximiliano Sandoval
@ 2026-07-24 11:12 ` Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 11/11] make: add targets to update specific PO files Maximiliano Sandoval
2026-07-24 13:08 ` [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Shannon Sterz
11 siblings, 0 replies; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
Notes:
The command avoids writing to LINGUAS until we have a final output, e.g. we
avoid
echo $* >> LINGUAS && sort LINGUAS --uniq --output LINGUAS
Makefile | 1 +
1 file changed, 1 insertion(+)
diff --git a/Makefile b/Makefile
index 3dd30401..f024fddf 100644
--- a/Makefile
+++ b/Makefile
@@ -168,6 +168,7 @@ stats:
init-%.po: messages.pot
msginit --input $^ --locale $^ --output-file $*.po --no-translator
+ echo $* | cat LINGUAS - | sort --uniq --output LINGUAS
.INTERMEDIATE: messages.pot
messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot proxmox-backup.pot proxmox-datacenter-manager-ui.pot pve-yew-mobile-gui.pot pmg-yew-quarantine-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
--
2.47.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* [PATCH proxmox-i18n v2 11/11] make: add targets to update specific PO files
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
` (9 preceding siblings ...)
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 10/11] make: init-%.po: add language to linguas Maximiliano Sandoval
@ 2026-07-24 11:12 ` Maximiliano Sandoval
2026-07-24 13:08 ` [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Shannon Sterz
11 siblings, 0 replies; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 11:12 UTC (permalink / raw)
To: pve-devel
Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
---
Notes:
Taken from https://lore.proxmox.com/all/20260302095125.146700-2-m.sandoval@proxmox.com/T/#u but different in that the target is named update-%.po and only depends on messages.pot.
Makefile | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index f024fddf..bea3c4e6 100644
--- a/Makefile
+++ b/Makefile
@@ -153,11 +153,14 @@ update_pot: submodule
$(call xtrpotupdate,proxmox-yew-widget-toolkit,proxmox-yew-widget-toolkit/src/lib.rs)
for i in $(EXCLUDED_PWT_FILES); do mv -f proxmox-yew-widget-toolkit/src/$$i.org proxmox-yew-widget-toolkit/src/$$i; done
+.PHONY: update-%.po
+update-%.po: %.po messages.pot
+ msgmerge --sort-output --verbose --update --backup=none --previous $*.po messages.pot
do_update:
$(MAKE) update_pot
$(MAKE) messages.pot
- for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose --update --backup=none --previous $$i.po messages.pot; done;
+ $(MAKE) $(patsubst %,update-%.po, $(LINGUAS))
update:
git submodule foreach 'git pull --ff-only origin master'
--
2.47.3
^ permalink raw reply related [flat|nested] 21+ messages in thread
* Re: [PATCH proxmox-i18n v2 01/11] make: catalog-%.mo: explicitly set template file
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 01/11] make: catalog-%.mo: explicitly set template file Maximiliano Sandoval
@ 2026-07-24 13:06 ` Shannon Sterz
0 siblings, 0 replies; 21+ messages in thread
From: Shannon Sterz @ 2026-07-24 13:06 UTC (permalink / raw)
To: Maximiliano Sandoval, pve-devel
On Fri Jul 24, 2026 at 1:12 PM CEST, Maximiliano Sandoval wrote:
> msgmerge takes exactly two arguments. Fixes a regression from aacd4e7a.
tiny nit: quoting the commit message here might be nice, but that's not
really much of a problem. the commit message was this btw:
> buildsys: use combined message catalogue for now
>
> Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
> ---
> Makefile | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 86f81e9b..b233828b 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -125,8 +125,8 @@ pve-lang-%.js: %.po
> pbs-lang-%.js: %.po
> ./po2js.pl -t pbs -v "$(DEB_VERSION)" -o pbs-lang-$*.js $?
>
> -catalog-%.mo: %.po
> - msgmerge $^ | msgattrib --no-fuzzy --no-obsolete | msgfmt --verbose --output-file $@ $<;
> +catalog-%.mo: %.po messages.pot
> + msgmerge $*.po messages.pot | msgattrib --no-fuzzy --no-obsolete | msgfmt --verbose --output-file $@ $<;
imo `msmerge $< message.po |...` would convey your intend here a little
bit more clearly. `$<` being the first full prerequisite. `$*` as the
target file stems is imo a bit harder to understand personally. but as
this is more of a personal taste issue, it shouldn't be blocker imo.
since you use that throughout, it won't mention it everytime.
>
> .INTERMEDIATE: pve-yew-mobile-all.pot
> pve-yew-mobile-all.pot: pve-yew-mobile-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH proxmox-i18n v2 02/11] make: simplify msgmerge commands
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 02/11] make: simplify msgmerge commands Maximiliano Sandoval
@ 2026-07-24 13:06 ` Shannon Sterz
0 siblings, 0 replies; 21+ messages in thread
From: Shannon Sterz @ 2026-07-24 13:06 UTC (permalink / raw)
To: Maximiliano Sandoval, pve-devel
On Fri Jul 24, 2026 at 1:12 PM CEST, Maximiliano Sandoval wrote:
> msgmerge has a --for-msgfmt which produces the same output ass filtering via
nit: slightly unfortunate typo
> msgattrib. This removes the need for temporal files.
>
> Some differences are that --for-msgfmt will also strip file location and
> comments which do not serve any purpose when generating .mo files.
>
> Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
> ---
> Makefile | 10 +++-------
> 1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index b233828b..dcd742ea 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -126,25 +126,21 @@ pbs-lang-%.js: %.po
> ./po2js.pl -t pbs -v "$(DEB_VERSION)" -o pbs-lang-$*.js $?
>
> catalog-%.mo: %.po messages.pot
> - msgmerge $*.po messages.pot | msgattrib --no-fuzzy --no-obsolete | msgfmt --verbose --output-file $@ $<;
> + msgmerge $*.po messages.pot --for-msgfmt | msgfmt --verbose --output-file $@ -
>
> .INTERMEDIATE: pve-yew-mobile-all.pot
> pve-yew-mobile-all.pot: pve-yew-mobile-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
> xgettext $^ --output $@
>
> pve-yew-mobile-catalog-%.mo: %.po pve-yew-mobile-all.pot
> - msgmerge $*.po pve-yew-mobile-all.pot| msgattrib --no-fuzzy --no-obsolete > $@.tmp
> - msgfmt --verbose --output-file $@ $@.tmp;
> - rm -rf $@.tmp
> + msgmerge $*.po pve-yew-mobile-all.pot --for-msgfmt | msgfmt --verbose --output-file $@ -
>
> .INTERMEDIATE: pmg-yew-quarantine-all.pot
> pmg-yew-quarantine-all.pot: pmg-yew-quarantine-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
> xgettext $^ --output $@
>
> pmg-yew-quarantine-catalog-%.mo: %.po pmg-yew-quarantine-all.pot
> - msgmerge $*.po pmg-yew-quarantine-all.pot| msgattrib --no-fuzzy --no-obsolete > $@.tmp
> - msgfmt --verbose --output-file $@ $@.tmp;
> - rm -rf $@.tmp
> + msgmerge $*.po pmg-yew-quarantine-all.pot --for-msgfmt | msgfmt --verbose --output-file $@ -
>
> # parameter 1 is the name
> # parameter 2 is the directory
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH proxmox-i18n v2 04/11] make: use long options for msgmerge and msginit
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 04/11] make: use long options for msgmerge and msginit Maximiliano Sandoval
@ 2026-07-24 13:06 ` Shannon Sterz
2026-07-24 13:12 ` Shannon Sterz
0 siblings, 1 reply; 21+ messages in thread
From: Shannon Sterz @ 2026-07-24 13:06 UTC (permalink / raw)
To: Maximiliano Sandoval, pve-devel
On Fri Jul 24, 2026 at 1:12 PM CEST, Maximiliano Sandoval wrote:
> For improved readability and being consisten with the other commands.
>
> Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
> ---
> Makefile | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 1873de31..77fd60a0 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -189,7 +189,7 @@ update_pot: submodule
> do_update:
> $(MAKE) update_pot
> $(MAKE) messages.pot
> - for i in $(LINGUAS); do echo -n "$$i: "; msgmerge -s -v $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
> + for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
small question since you are
>
> update:
> git submodule foreach 'git pull --ff-only origin master'
> @@ -199,7 +199,7 @@ stats:
> @for i in $(LINGUAS); do echo -n "$$i: "; msgfmt --statistics -o /dev/null $$i.po; done
>
> init-%.po: messages.pot
> - msginit -i $^ -l $^ -o $*.po --no-translator
> + msginit --input $^ --locale $^ --output-file $*.po --no-translator
>
> .INTERMEDIATE: messages.pot
> messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot proxmox-backup.pot proxmox-datacenter-manager-ui.pot pve-yew-mobile-gui.pot pmg-yew-quarantine-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH proxmox-i18n v2 05/11] make: do_update: add --update for msgmerge
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 05/11] make: do_update: add --update for msgmerge Maximiliano Sandoval
@ 2026-07-24 13:06 ` Shannon Sterz
0 siblings, 0 replies; 21+ messages in thread
From: Shannon Sterz @ 2026-07-24 13:06 UTC (permalink / raw)
To: Maximiliano Sandoval, pve-devel
On Fri Jul 24, 2026 at 1:12 PM CEST, Maximiliano Sandoval wrote:
> Removes the need for temporal files.
tiniest nit: temporary files ^^
>
> Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
> ---
> Makefile | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 77fd60a0..6ed80d2e 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -189,7 +189,7 @@ update_pot: submodule
> do_update:
> $(MAKE) update_pot
> $(MAKE) messages.pot
> - for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
> + for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose --update --backup=none $$i.po messages.pot; done;
>
> update:
> git submodule foreach 'git pull --ff-only origin master'
> @@ -215,7 +215,7 @@ distclean: clean
>
> .PHONY: clean
> clean:
> - rm -rf $(DEB_SOURCE)-[0-9]*/ *.po.tmp *.js.tmp *.deb *.dsc *.tar.* *.build *.buildinfo *.changes *.js messages.pot *.mo
> + rm -rf $(DEB_SOURCE)-[0-9]*/ *.js.tmp *.deb *.dsc *.tar.* *.build *.buildinfo *.changes *.js messages.pot *.mo
>
> .PHONY: upload-pve upload-pmg upload-pbs upload-pdm upload
> upload-%: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH proxmox-i18n v2 09/11] make: add linguas checks
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 09/11] make: add linguas checks Maximiliano Sandoval
@ 2026-07-24 13:06 ` Shannon Sterz
0 siblings, 0 replies; 21+ messages in thread
From: Shannon Sterz @ 2026-07-24 13:06 UTC (permalink / raw)
To: Maximiliano Sandoval, pve-devel
On Fri Jul 24, 2026 at 1:12 PM CEST, Maximiliano Sandoval wrote:
> Cross-references the list of languages in LINGUAS and the *.po files.
>
> Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
> ---
>
> Notes:
> This should be equivalent to the less-verbose:
>
> test "$(ls *.po | sed 's/.po//')" = "$(cat LINGUAS)"
>
> but easier to understand why it fails on failure.
>
> Makefile | 16 +++++++++++++++-
> 1 file changed, 15 insertions(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index ceac4eab..3dd30401 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -202,5 +202,19 @@ upload: upload-pve upload-pmg upload-pbs upload-pdm
> check-%: %.po
> msgfmt --check $*.po
>
> +.PHONY: check-linguas
> +check-linguas:
> + sort --check --uniq LINGUAS
> + set -e; for lang in $(LINGUAS); do \
> + echo "checking if $$lang.po exists"; \
> + test -f $$lang.po; \
> + done
isn't this check covered by the specific `check-${langcode}` checks?
make will just fail if a prerequisite isn't present and there is no
target to produce it. so here removing a .po file will make the
accompanying check-${langcode} fail as there is no target to make it.
> + set -e; for lang in $(shell ls *.po | sed 's/\.po//'); do \
> + echo "checking if $$lang is in LINGUAS"; \
> + grep --quiet --line-regexp $$lang LINGUAS; \
> + done
> +
> .PHONY: check
> -check: $(addprefix check-, $(LINGUAS))
> +check:
> + $(MAKE) $(addprefix check-, $(LINGUAS))
> + $(MAKE) check-linguas
any reason you do a second invocation of make here instead of sticking
to make's prerequisite mechanism? iirc the latter has the upside of
being more nicely parallelizable with `-j`
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
` (10 preceding siblings ...)
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 11/11] make: add targets to update specific PO files Maximiliano Sandoval
@ 2026-07-24 13:08 ` Shannon Sterz
11 siblings, 0 replies; 21+ messages in thread
From: Shannon Sterz @ 2026-07-24 13:08 UTC (permalink / raw)
To: Maximiliano Sandoval, pve-devel
On Fri Jul 24, 2026 at 1:12 PM CEST, Maximiliano Sandoval wrote:
> The main difference in behavior is that we add --previous to the msgmerge
> command used to update the PO files. This can add some extra information to
> translations, which can make it easier to determine whether the previous
> translation is still valid or what kind of modifications it needs.
>
> See individual commits and their notes.
>
> Additionally:
> - there are a couple of cleanups
> - we move the LINGUAS to a dedicated file
> - check LINGUAS and add languages to it on the init-%.po target
> - split the do_update target on a per-language basis
>
> Differences from v1:
> - Move LINGUAS to a dedicated file
> - split the do_update target on a per-language basis
>
> Maximiliano Sandoval (11):
> make: catalog-%.mo: explicitly set template file
> make: simplify msgmerge commands
> make: clean: remove *.mo files
> make: use long options for msgmerge and msginit
> make: do_update: add --update for msgmerge
> make: do_update: add --previous flag to msgmerge
> gitignore: remove proxmox-datacenter-manager.pot
> make: move linguas to a file
> make: add linguas checks
> make: init-%.po: add language to linguas
> make: add targets to update specific PO files
>
> .gitignore | 1 -
> LINGUAS | 32 ++++++++++++++++++++++++
> Makefile | 72 ++++++++++++++++++++----------------------------------
> 3 files changed, 59 insertions(+), 46 deletions(-)
> create mode 100644 LINGUAS
gave the targets here a quick spin and it looked alright to me. i left a
few small comments on style and make file structure, but nothing to
major so consider this:
Reviewed-by: Shannon Sterz <s.sterz@proxmox.com>
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH proxmox-i18n v2 04/11] make: use long options for msgmerge and msginit
2026-07-24 13:06 ` Shannon Sterz
@ 2026-07-24 13:12 ` Shannon Sterz
2026-07-24 13:25 ` Maximiliano Sandoval
0 siblings, 1 reply; 21+ messages in thread
From: Shannon Sterz @ 2026-07-24 13:12 UTC (permalink / raw)
To: Shannon Sterz, Maximiliano Sandoval, pve-devel
On Fri Jul 24, 2026 at 3:06 PM CEST, Shannon Sterz wrote:
> On Fri Jul 24, 2026 at 1:12 PM CEST, Maximiliano Sandoval wrote:
>> For improved readability and being consisten with the other commands.
>>
>> Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
>> ---
>> Makefile | 4 ++--
>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/Makefile b/Makefile
>> index 1873de31..77fd60a0 100644
>> --- a/Makefile
>> +++ b/Makefile
>> @@ -189,7 +189,7 @@ update_pot: submodule
>> do_update:
>> $(MAKE) update_pot
>> $(MAKE) messages.pot
>> - for i in $(LINGUAS); do echo -n "$$i: "; msgmerge -s -v $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
>> + for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
>
> small question since you are
>
to complete my thought here: `--sort-output` is deprecated (according to
`man 1 msgmerge`). since you are touching this code already, maybe we
want to switch to `--sort-by-file` or stop sorting all together?
>>
>> update:
>> git submodule foreach 'git pull --ff-only origin master'
>> @@ -199,7 +199,7 @@ stats:
>> @for i in $(LINGUAS); do echo -n "$$i: "; msgfmt --statistics -o /dev/null $$i.po; done
>>
>> init-%.po: messages.pot
>> - msginit -i $^ -l $^ -o $*.po --no-translator
>> + msginit --input $^ --locale $^ --output-file $*.po --no-translator
>>
>> .INTERMEDIATE: messages.pot
>> messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot proxmox-backup.pot proxmox-datacenter-manager-ui.pot pve-yew-mobile-gui.pot pmg-yew-quarantine-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH proxmox-i18n v2 04/11] make: use long options for msgmerge and msginit
2026-07-24 13:12 ` Shannon Sterz
@ 2026-07-24 13:25 ` Maximiliano Sandoval
2026-07-24 13:31 ` Shannon Sterz
0 siblings, 1 reply; 21+ messages in thread
From: Maximiliano Sandoval @ 2026-07-24 13:25 UTC (permalink / raw)
To: Shannon Sterz; +Cc: pve-devel
"Shannon Sterz" <s.sterz@proxmox.com> writes:
> On Fri Jul 24, 2026 at 3:06 PM CEST, Shannon Sterz wrote:
>> On Fri Jul 24, 2026 at 1:12 PM CEST, Maximiliano Sandoval wrote:
>>> For improved readability and being consisten with the other commands.
>>>
>>> Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
>>> ---
>>> Makefile | 4 ++--
>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>
>>> diff --git a/Makefile b/Makefile
>>> index 1873de31..77fd60a0 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -189,7 +189,7 @@ update_pot: submodule
>>> do_update:
>>> $(MAKE) update_pot
>>> $(MAKE) messages.pot
>>> - for i in $(LINGUAS); do echo -n "$$i: "; msgmerge -s -v $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
>>> + for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
>>
>> small question since you are
>>
>
> to complete my thought here: `--sort-output` is deprecated (according to
> `man 1 msgmerge`). since you are touching this code already, maybe we
> want to switch to `--sort-by-file` or stop sorting all together?
This is on my todo-list but I would not touch it here. Stop using
--sort-output would result in a massive diff after updating the PO
files, just regenerating es.po gives:
- Replacing --sort-output with --sort-by-file:
1 file changed, 21451 insertions(+), 21434 deletions(-)
- Removing --sort-output:
1 file changed, 16763 insertions(+), 16763 deletions(-)
And we currently have 32 languages so...
At some point I have to look into how to do it properly.
>>>
>>> update:
>>> git submodule foreach 'git pull --ff-only origin master'
>>> @@ -199,7 +199,7 @@ stats:
>>> @for i in $(LINGUAS); do echo -n "$$i: "; msgfmt --statistics -o /dev/null $$i.po; done
>>>
>>> init-%.po: messages.pot
>>> - msginit -i $^ -l $^ -o $*.po --no-translator
>>> + msginit --input $^ --locale $^ --output-file $*.po --no-translator
>>>
>>> .INTERMEDIATE: messages.pot
>>> messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot proxmox-backup.pot proxmox-datacenter-manager-ui.pot pve-yew-mobile-gui.pot pmg-yew-quarantine-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
--
Maximiliano
^ permalink raw reply [flat|nested] 21+ messages in thread
* Re: [PATCH proxmox-i18n v2 04/11] make: use long options for msgmerge and msginit
2026-07-24 13:25 ` Maximiliano Sandoval
@ 2026-07-24 13:31 ` Shannon Sterz
0 siblings, 0 replies; 21+ messages in thread
From: Shannon Sterz @ 2026-07-24 13:31 UTC (permalink / raw)
To: Maximiliano Sandoval; +Cc: pve-devel
On Fri Jul 24, 2026 at 3:25 PM CEST, Maximiliano Sandoval wrote:
> "Shannon Sterz" <s.sterz@proxmox.com> writes:
>
>> On Fri Jul 24, 2026 at 3:06 PM CEST, Shannon Sterz wrote:
>>> On Fri Jul 24, 2026 at 1:12 PM CEST, Maximiliano Sandoval wrote:
>>>> For improved readability and being consisten with the other commands.
>>>>
>>>> Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
>>>> ---
>>>> Makefile | 4 ++--
>>>> 1 file changed, 2 insertions(+), 2 deletions(-)
>>>>
>>>> diff --git a/Makefile b/Makefile
>>>> index 1873de31..77fd60a0 100644
>>>> --- a/Makefile
>>>> +++ b/Makefile
>>>> @@ -189,7 +189,7 @@ update_pot: submodule
>>>> do_update:
>>>> $(MAKE) update_pot
>>>> $(MAKE) messages.pot
>>>> - for i in $(LINGUAS); do echo -n "$$i: "; msgmerge -s -v $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
>>>> + for i in $(LINGUAS); do echo -n "$$i: "; msgmerge --sort-output --verbose $$i.po messages.pot >$$i.po.tmp && mv $$i.po.tmp $$i.po; done;
>>>
>>> small question since you are
>>>
>>
>> to complete my thought here: `--sort-output` is deprecated (according to
>> `man 1 msgmerge`). since you are touching this code already, maybe we
>> want to switch to `--sort-by-file` or stop sorting all together?
>
> This is on my todo-list but I would not touch it here. Stop using
> --sort-output would result in a massive diff after updating the PO
> files, just regenerating es.po gives:
>
> - Replacing --sort-output with --sort-by-file:
> 1 file changed, 21451 insertions(+), 21434 deletions(-)
>
> - Removing --sort-output:
> 1 file changed, 16763 insertions(+), 16763 deletions(-)
>
> And we currently have 32 languages so...
>
> At some point I have to look into how to do it properly.
alright, makes sense, jsut noticed it and thought id mention it.
probably best to take a similar approach then to how formatting with
tidy or biome was implemented.
>>>>
>>>> update:
>>>> git submodule foreach 'git pull --ff-only origin master'
>>>> @@ -199,7 +199,7 @@ stats:
>>>> @for i in $(LINGUAS); do echo -n "$$i: "; msgfmt --statistics -o /dev/null $$i.po; done
>>>>
>>>> init-%.po: messages.pot
>>>> - msginit -i $^ -l $^ -o $*.po --no-translator
>>>> + msginit --input $^ --locale $^ --output-file $*.po --no-translator
>>>>
>>>> .INTERMEDIATE: messages.pot
>>>> messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot proxmox-backup.pot proxmox-datacenter-manager-ui.pot pve-yew-mobile-gui.pot pmg-yew-quarantine-gui.pot proxmox-yew-comp.pot proxmox-yew-widget-toolkit.pot
^ permalink raw reply [flat|nested] 21+ messages in thread
end of thread, other threads:[~2026-07-24 13:31 UTC | newest]
Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-24 11:12 [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 01/11] make: catalog-%.mo: explicitly set template file Maximiliano Sandoval
2026-07-24 13:06 ` Shannon Sterz
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 02/11] make: simplify msgmerge commands Maximiliano Sandoval
2026-07-24 13:06 ` Shannon Sterz
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 03/11] make: clean: remove *.mo files Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 04/11] make: use long options for msgmerge and msginit Maximiliano Sandoval
2026-07-24 13:06 ` Shannon Sterz
2026-07-24 13:12 ` Shannon Sterz
2026-07-24 13:25 ` Maximiliano Sandoval
2026-07-24 13:31 ` Shannon Sterz
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 05/11] make: do_update: add --update for msgmerge Maximiliano Sandoval
2026-07-24 13:06 ` Shannon Sterz
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 06/11] make: do_update: add --previous flag to msgmerge Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 07/11] gitignore: remove proxmox-datacenter-manager.pot Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 08/11] make: move linguas to a file Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 09/11] make: add linguas checks Maximiliano Sandoval
2026-07-24 13:06 ` Shannon Sterz
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 10/11] make: init-%.po: add language to linguas Maximiliano Sandoval
2026-07-24 11:12 ` [PATCH proxmox-i18n v2 11/11] make: add targets to update specific PO files Maximiliano Sandoval
2026-07-24 13:08 ` [PATCH proxmox-i18n v2 00/11] Makefile simplifications and improvements Shannon Sterz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox