]> git.proxmox.com Git - proxmox-i18n.git/blob - Makefile
buildsys: split to one language per line and sort
[proxmox-i18n.git] / Makefile
1 include /usr/share/dpkg/pkg-info.mk
2
3 LINGUAS=\
4 ar \
5 ca \
6 da \
7 de \
8 es \
9 eu \
10 fa \
11 fr \
12 gl \
13 he \
14 hu \
15 it \
16 ja \
17 kr \
18 nb \
19 nl \
20 nn \
21 pl \
22 pt_BR \
23 ru \
24 sl \
25 sv \
26 tr \
27 zh_CN \
28 zh_TW \
29
30 PVE_I18N_DEB=pve-i18n_${DEB_VERSION_UPSTREAM_REVISION}_all.deb
31 PMG_I18N_DEB=pmg-i18n_${DEB_VERSION_UPSTREAM_REVISION}_all.deb
32 PBS_I18N_DEB=pbs-i18n_${DEB_VERSION_UPSTREAM_REVISION}_all.deb
33
34 DEBS=${PMG_I18N_DEB} $(PVE_I18N_DEB) $(PBS_I18N_DEB)
35
36 PMGLOCALEDIR=${DESTDIR}/usr/share/pmg-i18n
37 PVELOCALEDIR=${DESTDIR}/usr/share/pve-i18n
38 PBSLOCALEDIR=${DESTDIR}/usr/share/pbs-i18n
39
40 PMG_LANG_FILES=$(patsubst %, pmg-lang-%.js, $(LINGUAS))
41 PVE_LANG_FILES=$(patsubst %, pve-lang-%.js, $(LINGUAS))
42 PBS_LANG_FILES=$(patsubst %, pbs-lang-%.js, $(LINGUAS))
43
44 all:
45
46 .PHONY: deb
47 deb: $(DEBS)
48 $(PMG_I18N_DEB): $(PVE_I18N_DEB)
49 $(PBS_I18N_DEB): $(PVE_I18N_DEB)
50 $(PVE_I18N_DEB): | submodule
51 rm -rf dest
52 rsync -a * dest
53 cd dest; dpkg-buildpackage -b -us -uc
54 lintian $(DEBS)
55
56 .PHONY: submodule
57 submodule:
58 test -f pmg-gui/Makefile -a -f proxmox-backup/Makefile -a -f pve-manager/Makefile \
59 || git submodule update --init
60
61 .PHONY: install
62 install: ${PMG_LANG_FILES} ${PVE_LANG_FILES} ${PBS_LANG_FILES}
63 install -d ${PMGLOCALEDIR}
64 install -m 0644 ${PMG_LANG_FILES} ${PMGLOCALEDIR}
65 install -d ${PVELOCALEDIR}
66 install -m 0644 ${PVE_LANG_FILES} ${PVELOCALEDIR}
67 install -d ${PBSLOCALEDIR}
68 install -m 0644 ${PBS_LANG_FILES} ${PBSLOCALEDIR}
69
70 pmg-lang-%.js: %.po
71 ./po2js.pl -t pmg -v "${VERSION}-${PKGREL}" -o pmg-lang-$*.js $?
72
73 pve-lang-%.js: %.po
74 ./po2js.pl -t pve -v "${VERSION}-${PKGREL}" -o pve-lang-$*.js $?
75
76 pbs-lang-%.js: %.po
77 ./po2js.pl -t pbs -v "${VERSION}-${PKGREL}" -o pbs-lang-$*.js $?
78
79 # parameter 1 is the name
80 # parameter 2 is the directory
81 define potupdate
82 ./jsgettext.pl -p "$(1) $(shell cd $(2);git rev-parse HEAD)" -o $(1).pot $(2)
83 endef
84
85 .PHONY: update update_pot do_update
86 update_pot: submodule
87 $(call potupdate,proxmox-widget-toolkit,proxmox-widget-toolkit/)
88 $(call potupdate,pve-manager,pve-manager/www/manager6/)
89 $(call potupdate,proxmox-mailgateway,pmg-gui/js/)
90 $(call potupdate,proxmox-backup,proxmox-backup/www/)
91
92 do_update:
93 $(MAKE) update_pot
94 $(MAKE) messages.pot
95 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;
96
97 update:
98 git submodule foreach 'git pull --ff-only origin master'
99 $(MAKE) do_update
100
101 stats:
102 @for i in $(LINGUAS); do echo -n "$$i: "; msgfmt --statistics -o /dev/null $$i.po; done
103
104 init-%.po: messages.pot
105 msginit -i $^ -l $^ -o $*.po --no-translator
106
107 .INTERMEDIATE: messages.pot
108 messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot proxmox-backup.pot
109 msgcat $^ > $@
110
111 .PHONY: distclean
112 distclean: clean
113
114 .PHONY: clean
115 clean:
116 find . -name '*~' -exec rm {} ';'
117 rm -rf dest *.po.tmp *.js.tmp *.deb *.buildinfo *.changes *.js messages.pot
118
119 .PHONY: upload-pve upload-pmg upload-pbs upload
120 upload-pve: ${PVE_I18N_DEB}
121 tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pve --dist bullseye
122 upload-pmg: ${PMG_I18N_DEB}
123 tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pmg --dist bullseye
124 upload-pbs: ${PBS_I18N_DEB}
125 tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pbs --dist bullseye
126
127 upload: upload-pve upload-pmg upload-pbs