X-Git-Url: https://git.proxmox.com/?p=proxmox-i18n.git;a=blobdiff_plain;f=Makefile;h=d6d26a30ac418150de885a1c5085845e05485212;hp=4f8bbb52824398c34a005f70800d812f18b11443;hb=HEAD;hpb=80273b308826c21f4b7639a34416cf35107a6271 diff --git a/Makefile b/Makefile index 4f8bbb5..dd9cfe1 100644 --- a/Makefile +++ b/Makefile @@ -1,83 +1,149 @@ -LINGUAS=de fr es it - -VERSION=1.0 -PKGREL=2 - -PVE_I18N_DEB=pve-i18n_${VERSION}-${PKGREL}_all.deb -PMG_I18N_DEB=pmg-i18n_${VERSION}-${PKGREL}_all.deb - -DEBS=${PMG_I18N_DEB} ${PVE_I18N_DEB} - -PMGLOCALEDIR=${DESTDIR}/usr/share/pmg-i18n -PVELOCALEDIR=${DESTDIR}/usr/share/pve-i18n +include /usr/share/dpkg/pkg-info.mk + +LINGUAS=\ + ar \ + ca \ + da \ + de \ + es \ + eu \ + fa \ + fr \ + gl \ + he \ + hr \ + hu \ + it \ + ja \ + ka \ + ko \ + nb \ + nl \ + nn \ + pl \ + pt_BR \ + ru \ + sl \ + sv \ + tr \ + ukr \ + zh_CN \ + zh_TW \ + +BUILDDIR ?= $(DEB_SOURCE)-$(DEB_VERSION) + +DSC=$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM_REVISION).dsc +PVE_I18N_DEB=pve-i18n_$(DEB_VERSION)_all.deb +PMG_I18N_DEB=pmg-i18n_$(DEB_VERSION)_all.deb +PBS_I18N_DEB=pbs-i18n_$(DEB_VERSION)_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: | submodule +all: + +$(BUILDDIR): submodule + rm -rf $@ $@.tmp + rsync -a * $@.tmp + mv $@.tmp $@ .PHONY: deb deb: $(DEBS) -$(DEBS): | submodule - rm -rf dest - mkdir dest - rsync -a debian dest - make DESTDIR=dest install - cd dest; dpkg-buildpackage -b -us -uc - lintian ${PMG_I18N_DEB} - lintian ${PVE_I18N_DEB} - -.PHONY: submodule -submodule: - test -f "pmg-gui/Makefile" || git submodule update --init +$(DEBS): build-debs -.PHONY: install -install: ${PMG_LANG_FILES} ${PVE_LANG_FILES} - install -d ${PMGLOCALEDIR} - install -m 0644 ${PMG_LANG_FILES} ${PMGLOCALEDIR} - install -d ${PVELOCALEDIR} - install -m 0644 ${PVE_LANG_FILES} ${PVELOCALEDIR} +build-debs: $(BUILDDIR) + cd $(BUILDDIR); dpkg-buildpackage -b -us -uc + lintian $(DEBS) + touch "$@" +sbuild: $(DSC) + sbuild $(DSC) -pmg-lang-%.js: proxmox-widget-toolkit-%.po proxmox-mailgateway-%.po - ./po2js.pl -o pmg-lang-$*.js $? +.PHONY: dsc +dsc: $(DSC) +$(DSC): $(BUILDDIR) + cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d + lintian $(DSC) -pve-lang-%.js: proxmox-widget-toolkit-%.po pve-manager-%.po - ./po2js.pl -o pve-lang-$*.js $? +submodule: + test -f pmg-gui/Makefile -a -f proxmox-backup/Makefile -a -f pve-manager/Makefile \ + || git submodule update --init -.PHONY: update -update: - ./jsgettext.pl -p "proxmox-widget-toolkit 1.0" -o proxmox-widget-toolkit.pot proxmox-widget-toolkit/ - ./jsgettext.pl -p "proxmox-mailgateway 5.0" -o proxmox-mailgateway.pot -b proxmox-widget-toolkit.pot pmg-gui/js/ - ./jsgettext.pl -p "pve-manager 5.0" -o pve-manager.pot -b proxmox-widget-toolkit.pot pve-manager/www/manager6/ - for j in proxmox-widget-toolkit proxmox-mailgateway pve-manager; do for i in $(LINGUAS); do echo -n "$$j-$$i: ";msgmerge -s -v $$j-$$i.po $$j.pot >$$j-$$i.po.tmp && mv $$j-$$i.po.tmp $$j-$$i.po; done; done +.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) +# compat symlinks for kr -> ko correction. + ln -s pmg-lang-ko.js $(PMGLOCALEDIR)/pmg-lang-kr.js + ln -s pve-lang-ko.js $(PVELOCALEDIR)/pve-lang-kr.js + ln -s pbs-lang-ko.js $(PBSLOCALEDIR)/pbs-lang-kr.js + +pmg-lang-%.js: %.po + ./po2js.pl -t pmg -v "$(DEB_VERSION)" -o pmg-lang-$*.js $? + +pve-lang-%.js: %.po + ./po2js.pl -t pve -v "$(DEB_VERSION)" -o pve-lang-$*.js $? + +pbs-lang-%.js: %.po + ./po2js.pl -t pbs -v "$(DEB_VERSION)" -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; -# try to generate po files when someone add a new language -.SECONDARY: # do not delete generated intermediate file -proxmox-widget-toolkit-%.po: proxmox-widget-toolkit.pot - msginit -i proxmox-widget-toolkit.pot -l $* -o proxmox-widget-toolkit-$*.po +update: + git submodule foreach 'git pull --ff-only origin master' + $(MAKE) do_update -.SECONDARY: # do not delete generated intermediate file -proxmox-mailgateway-%.po: proxmox-mailgateway.pot - msginit -i proxmox-mailgateway.pot -l $* -o proxmox-mailgateway-$*.po +stats: + @for i in $(LINGUAS); do echo -n "$$i: "; msgfmt --statistics -o /dev/null $$i.po; done -.SECONDARY: # do not delete generated intermediate file -pve-manager-%.po: pve-manager.pot - msginit -i pve-manager.pot -l $* -o pve-manager-$*.po +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 pve-lang-*.js pmg-lang-*.js - -.PHONY: upload-pve -upload-pve: ${PVE_I18N_DEB} - tar cf - ${PVE_I18N_DEB}|ssh -X repoman@repo.proxmox.com -- upload --product pve --dist stretch - -.PHONY: upload-pmg -upload-pmg: ${PMG_I18N_DEB} - tar cf - ${PMG_I18N_DEB}|ssh -X repoman@repo.proxmox.com -- upload --product pmg --dist stretch + rm -rf $(DEB_SOURCE)-[0-9]*/ *.po.tmp *.js.tmp *.deb *.dsc *.tar.* *.build *.buildinfo *.changes *.js messages.pot + +.PHONY: upload-pve upload-pmg upload-pbs upload +upload-%: UPLOAD_DIST ?= $(DEB_DISTRIBUTION) +upload-pve: $(PVE_I18N_DEB) + tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pve --dist $(UPLOAD_DIST) +upload-pmg: $(PMG_I18N_DEB) + tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pmg --dist $(UPLOAD_DIST) +upload-pbs: $(PBS_I18N_DEB) + tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pbs --dist $(UPLOAD_DIST) + +upload: upload-pve upload-pmg upload-pbs