5
0
mirror of git://git.proxmox.com/git/proxmox-i18n.git synced 2024-12-24 01:33:51 +03:00
proxmox-i18n/Makefile
Thomas Lamprecht 910254e897 buildsys: add intermediate target for doing the update and rework ordering
calling do_update allows one to refresh the .po files without pulling
in new submodule updates, that is useful when external contributors
send in a translations update by sending the whole .po file via mail,
with a possible older git commit as base. This way one can refresh
line numbers and new messages while keeping the updated state they
send.

Doing the order via explicit `$(MAKE) target` invocations seems
simpler and less error prone too.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-09-01 10:45:32 +02:00

103 lines
3.2 KiB
Makefile

include /usr/share/dpkg/pkg-info.mk
LINGUAS=de it fr ja es sv ru tr zh_CN zh_TW da ca pl sl nb nn pt_BR eu fa gl hu he ar nl kr
PVE_I18N_DEB=pve-i18n_${DEB_VERSION_UPSTREAM_REVISION}_all.deb
PMG_I18N_DEB=pmg-i18n_${DEB_VERSION_UPSTREAM_REVISION}_all.deb
PBS_I18N_DEB=pbs-i18n_${DEB_VERSION_UPSTREAM_REVISION}_all.deb
DEBS=${PMG_I18N_DEB} $(PVE_I18N_DEB) $(PBS_I18N_DEB)
PMGLOCALEDIR=${DESTDIR}/usr/share/pmg-i18n
PVELOCALEDIR=${DESTDIR}/usr/share/pve-i18n
PBSLOCALEDIR=${DESTDIR}/usr/share/pbs-i18n
PMG_LANG_FILES=$(patsubst %, pmg-lang-%.js, $(LINGUAS))
PVE_LANG_FILES=$(patsubst %, pve-lang-%.js, $(LINGUAS))
PBS_LANG_FILES=$(patsubst %, pbs-lang-%.js, $(LINGUAS))
all:
.PHONY: deb
deb: $(DEBS)
$(PMG_I18N_DEB): $(PVE_I18N_DEB)
$(PBS_I18N_DEB): $(PVE_I18N_DEB)
$(PVE_I18N_DEB): | submodule
rm -rf dest
rsync -a * dest
cd dest; dpkg-buildpackage -b -us -uc
lintian $(DEBS)
.PHONY: submodule
submodule:
test -f pmg-gui/Makefile -a -f proxmox-backup/Makefile -a -f pve-manager/Makefile \
|| git submodule update --init
.PHONY: install
install: ${PMG_LANG_FILES} ${PVE_LANG_FILES} ${PBS_LANG_FILES}
install -d ${PMGLOCALEDIR}
install -m 0644 ${PMG_LANG_FILES} ${PMGLOCALEDIR}
install -d ${PVELOCALEDIR}
install -m 0644 ${PVE_LANG_FILES} ${PVELOCALEDIR}
install -d ${PBSLOCALEDIR}
install -m 0644 ${PBS_LANG_FILES} ${PBSLOCALEDIR}
pmg-lang-%.js: %.po
./po2js.pl -t pmg -v "${VERSION}-${PKGREL}" -o pmg-lang-$*.js $?
pve-lang-%.js: %.po
./po2js.pl -t pve -v "${VERSION}-${PKGREL}" -o pve-lang-$*.js $?
pbs-lang-%.js: %.po
./po2js.pl -t pbs -v "${VERSION}-${PKGREL}" -o pbs-lang-$*.js $?
# parameter 1 is the name
# parameter 2 is the directory
define potupdate
./jsgettext.pl -p "$(1) $(shell cd $(2);git rev-parse HEAD)" -o $(1).pot $(2)
endef
.PHONY: update update_pot do_update
update_pot: submodule
$(call potupdate,proxmox-widget-toolkit,proxmox-widget-toolkit/)
$(call potupdate,pve-manager,pve-manager/www/manager6/)
$(call potupdate,proxmox-mailgateway,pmg-gui/js/)
$(call potupdate,proxmox-backup,proxmox-backup/www/)
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;
update:
git submodule foreach 'git pull --ff-only origin master'
$(MAKE) do_update
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
.INTERMEDIATE: messages.pot
messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot proxmox-backup.pot
msgcat $^ > $@
.PHONY: distclean
distclean: clean
.PHONY: clean
clean:
find . -name '*~' -exec rm {} ';'
rm -rf dest *.po.tmp *.js.tmp *.deb *.buildinfo *.changes *.js messages.pot
.PHONY: upload-pve upload-pmg upload-pbs upload
upload-pve: ${PVE_I18N_DEB}
tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pve --dist bullseye
upload-pmg: ${PMG_I18N_DEB}
tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pmg --dist bullseye
upload-pbs: ${PBS_I18N_DEB}
tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pbs --dist bullseye
upload: upload-pve upload-pmg upload-pbs