]> git.proxmox.com Git - proxmox-i18n.git/blob - Makefile
add Ukrainian translations
[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 ukr \
28 zh_CN \
29 zh_TW \
30
31 BUILDDIR ?= $(DEB_SOURCE)-$(DEB_VERSION)
32
33 DSC=$(DEB_SOURCE)_$(DEB_VERSION_UPSTREAM_REVISION).dsc
34 PVE_I18N_DEB=pve-i18n_$(DEB_VERSION)_all.deb
35 PMG_I18N_DEB=pmg-i18n_$(DEB_VERSION)_all.deb
36 PBS_I18N_DEB=pbs-i18n_$(DEB_VERSION)_all.deb
37
38 DEBS=$(PMG_I18N_DEB) $(PVE_I18N_DEB) $(PBS_I18N_DEB)
39
40 PMGLOCALEDIR=$(DESTDIR)/usr/share/pmg-i18n
41 PVELOCALEDIR=$(DESTDIR)/usr/share/pve-i18n
42 PBSLOCALEDIR=$(DESTDIR)/usr/share/pbs-i18n
43
44 PMG_LANG_FILES=$(patsubst %, pmg-lang-%.js, $(LINGUAS))
45 PVE_LANG_FILES=$(patsubst %, pve-lang-%.js, $(LINGUAS))
46 PBS_LANG_FILES=$(patsubst %, pbs-lang-%.js, $(LINGUAS))
47
48 all:
49
50 $(BUILDDIR): submodule
51 rm -rf $@ $@.tmp
52 rsync -a * $@.tmp
53 mv $@.tmp $@
54
55 .PHONY: deb
56 deb: $(DEBS)
57 $(DEBS): build-debs
58
59 build-debs: $(BUILDDIR)
60 cd $(BUILDDIR); dpkg-buildpackage -b -us -uc
61 lintian $(DEBS)
62 touch "$@"
63
64 sbuild: $(DSC)
65 sbuild $(DSC)
66
67 .PHONY: dsc
68 dsc: $(DSC)
69 $(DSC): $(BUILDDIR)
70 cd $(BUILDDIR); dpkg-buildpackage -S -us -uc -d
71 lintian $(DSC)
72
73 submodule:
74 test -f pmg-gui/Makefile -a -f proxmox-backup/Makefile -a -f pve-manager/Makefile \
75 || git submodule update --init
76
77 .PHONY: install
78 install: $(PMG_LANG_FILES) $(PVE_LANG_FILES) $(PBS_LANG_FILES)
79 install -d $(PMGLOCALEDIR)
80 install -m 0644 $(PMG_LANG_FILES) $(PMGLOCALEDIR)
81 install -d $(PVELOCALEDIR)
82 install -m 0644 $(PVE_LANG_FILES) $(PVELOCALEDIR)
83 install -d $(PBSLOCALEDIR)
84 install -m 0644 $(PBS_LANG_FILES) $(PBSLOCALEDIR)
85
86 pmg-lang-%.js: %.po
87 ./po2js.pl -t pmg -v "$(DEB_VERSION)" -o pmg-lang-$*.js $?
88
89 pve-lang-%.js: %.po
90 ./po2js.pl -t pve -v "$(DEB_VERSION)" -o pve-lang-$*.js $?
91
92 pbs-lang-%.js: %.po
93 ./po2js.pl -t pbs -v "$(DEB_VERSION)" -o pbs-lang-$*.js $?
94
95 # parameter 1 is the name
96 # parameter 2 is the directory
97 define potupdate
98 ./jsgettext.pl -p "$(1) $(shell cd $(2);git rev-parse HEAD)" -o $(1).pot $(2)
99 endef
100
101 .PHONY: update update_pot do_update
102 update_pot: submodule
103 $(call potupdate,proxmox-widget-toolkit,proxmox-widget-toolkit/)
104 $(call potupdate,pve-manager,pve-manager/www/manager6/)
105 $(call potupdate,proxmox-mailgateway,pmg-gui/js/)
106 $(call potupdate,proxmox-backup,proxmox-backup/www/)
107
108 do_update:
109 $(MAKE) update_pot
110 $(MAKE) messages.pot
111 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;
112
113 update:
114 git submodule foreach 'git pull --ff-only origin master'
115 $(MAKE) do_update
116
117 stats:
118 @for i in $(LINGUAS); do echo -n "$$i: "; msgfmt --statistics -o /dev/null $$i.po; done
119
120 init-%.po: messages.pot
121 msginit -i $^ -l $^ -o $*.po --no-translator
122
123 .INTERMEDIATE: messages.pot
124 messages.pot: proxmox-widget-toolkit.pot proxmox-mailgateway.pot pve-manager.pot proxmox-backup.pot
125 msgcat $^ > $@
126
127 .PHONY: distclean
128 distclean: clean
129
130 .PHONY: clean
131 clean:
132 rm -rf $(DEB_SOURCE)-[0-9]*/ *.po.tmp *.js.tmp *.deb *.dsc *.tar.* *.build *.buildinfo *.changes *.js messages.pot
133
134 .PHONY: upload-pve upload-pmg upload-pbs upload
135 upload-%: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
136 upload-pve: $(PVE_I18N_DEB)
137 tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pve --dist $(UPLOAD_DIST)
138 upload-pmg: $(PMG_I18N_DEB)
139 tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pmg --dist $(UPLOAD_DIST)
140 upload-pbs: $(PBS_I18N_DEB)
141 tar cf - $^|ssh -X repoman@repo.proxmox.com -- upload --product pbs --dist $(UPLOAD_DIST)
142
143 upload: upload-pve upload-pmg upload-pbs