]> git.evergreen-ils.org Git - Evergreen.git/blob - build/i18n/Makefile
LP#1778972: make it possible to translate the Bootstrap OPAC
[Evergreen.git] / build / i18n / Makefile
1 PO=po
2 PROJECT=locale
3 LOCALE=fr-CA
4 STARTDIR=$(shell pwd)
5 POTLIST=$(shell ls -d po/*)
6 DTDDIR=../../Open-ILS/web/opac/locale
7 CHROME_PROPSDIR=../../Open-ILS/xul/staff_client/chrome/locale
8 SERVER_PROPSDIR=../../Open-ILS/xul/staff_client/server/locale
9 DOJO_LOCALE := $(shell echo ${LOCALE} | tr '[:upper:]' '[:lower:]')
10 DOJO_ACQ_SRC=../../Open-ILS/web/js/dojo/openils/acq/nls
11 DOJO_ACTOR_SRC=../../Open-ILS/web/js/dojo/openils/actor/nls
12 DOJO_AUTHORITY_SRC=../../Open-ILS/web/js/dojo/openils/authority/nls
13 DOJO_BOOKING_SRC=../../Open-ILS/web/js/dojo/openils/booking/nls
14 DOJO_CIRC_SRC=../../Open-ILS/web/js/dojo/openils/circ/nls
15 DOJO_CON_SRC=../../Open-ILS/web/js/dojo/openils/conify/nls
16 DOJO_OPAC_SRC=../../Open-ILS/web/js/dojo/openils/opac/nls
17 DOJO_RPT_SRC=../../Open-ILS/web/js/dojo/openils/reports/nls
18 DOJO_SERIAL_SRC=../../Open-ILS/web/js/dojo/openils/serial/nls
19 DOJO_URLVERIFY_SRC=../../Open-ILS/web/js/dojo/openils/URLVerify/nls
20 DOJO_USER_SRC=../../Open-ILS/web/js/dojo/openils/User/nls
21 DOJO_VANDELAY_SRC=../../Open-ILS/web/js/dojo/openils/vandelay/nls
22 DOJO_WIDGET_SRC=../../Open-ILS/web/js/dojo/openils/widget/nls
23 FMIDLSRC=../../Open-ILS/examples/fm_IDL.xml
24 FMIDLOUT=fm_IDL.dtd.pot
25 FMIDLENT=fm_IDL.xml
26 FMIDLENTITY=fm_IDL.dtd
27 EVTSRC=../../Open-ILS/src/extras/ils_events.xml
28 EVTOUT=ils_events.xml.pot
29 EVTPO=ils_events.xml.po
30 EVTXML=ils_events.xml
31 REPORTDIR=../../Open-ILS/web/reports/
32 SQLSRCDIR=../../Open-ILS/src/sql/Pg/
33 SQLSRCFILE=950.data.seed-values.sql
34 SQLPOT=db.seed.pot
35 SQLPO=db.seed.po
36 SQLOUT=950.data.seed-values
37 TT2_OPAC_DATA_DIR=../../Open-ILS/src/data/locale/opac
38 TT2_BOOTSTRAP_OPAC_DATA_DIR=../../Open-ILS/src/data/locale/bootstrap-opac
39 TT2_WEBSTAFF_DATA_DIR=../../Open-ILS/src/data/locale/staff
40 TEMPLATES_ACQ_DATA_DIR=../../Open-ILS/src/data/locale/acq
41 TEMPLATES_ACTOR_DATA_DIR=../../Open-ILS/src/data/locale/actor
42 TEMPLATES_BOOKING_DATA_DIR=../../Open-ILS/src/data/locale/booking
43 TEMPLATES_CAT_DATA_DIR=../../Open-ILS/src/data/locale/cat
44 TEMPLATES_CIRC_DATA_DIR=../../Open-ILS/src/data/locale/circ
45 TEMPLATES_CONIFY_DATA_DIR=../../Open-ILS/src/data/locale/conify
46 TEMPLATES_KPAC_DATA_DIR=../../Open-ILS/src/data/locale/kpac
47 TEMPLATES_SERIAL_DATA_DIR=../../Open-ILS/src/data/locale/serial
48 TEMPLATES_URLVERIFY_DATA_DIR=../../Open-ILS/src/data/locale/url_verify
49 TEMPLATES_VANDELAY_DATA_DIR=../../Open-ILS/src/data/locale/vandelay
50 TEMPLATES_ACQ_SRC=../../Open-ILS/src/templates/acq/
51 TEMPLATES_ACTOR_SRC=../../Open-ILS/src/templates/actor/
52 TEMPLATES_BOOKING_SRC=../../Open-ILS/src/templates/booking/
53 TEMPLATES_CAT_SRC=../../Open-ILS/src/templates/cat/
54 TEMPLATES_CIRC_SRC=../../Open-ILS/src/templates/circ/
55 TEMPLATES_CONIFY_SRC=../../Open-ILS/src/templates/conify/
56 TEMPLATES_KPAC_SRC=../../Open-ILS/src/templates/kpac/
57 TEMPLATES_SERIAL_SRC=../../Open-ILS/src/templates/serial/
58 TEMPLATES_URLVERIFY_SRC=../../Open-ILS/src/templates/url_verify/
59 TEMPLATES_VANDELAY_SRC=../../Open-ILS/src/templates/vandelay/
60 TPAC_SRC=../../Open-ILS/src/templates/opac/
61 BOOPAC_SRC=../../Open-ILS/src/templates-bootstrap/opac/
62 TT_LOCALE=../../Open-ILS/src/templates/locale/
63 WEBSTAFF_SRC=../../Open-ILS/src/templates/staff/
64 PROGRESS=--progress none
65
66 # This Makefile can be used to generate and update PO files for Evergreen,
67 # as well as generate updated SQL, fieldmapper IDL, DTD and JavaScript
68 # property files from the PO.
69 #
70 # Usage:
71 #
72 # To create a new set of untranslated PO files for locale ll-LL:
73 #   make LOCALE=ll-LL newpo
74 #
75 # To create a new set of POT files from the en-US source:
76 #   make LOCALE=ll-LL newpot
77 #
78 # To update a set of translated PO files with new or changed en-US strings:
79 #   make LOCALE=ll-LL updatepo
80 #
81 # To create a set of translated project files (DTDs, JavaScript message catalogs):
82 #   make LOCALE=ll-LL project
83 #
84 # To install a set of translated project files:
85 #   make LOCALE=ll-LL install
86
87 # Generate PO files from all POT files in PO for locale LOCALE
88 #
89 # The template for the standard GNU gettext format is
90 # template1/template1.pot
91 # template1/ll-LL.po
92 # template2/template2.pot
93 # template2/ll-LL.po
94
95 # So, iterate over the list of POT directories and 
96 # generate / update the specified locale PO file
97 newpo: 
98         @pot2po $(PROGRESS) -i po/acq.js/acq.js.pot -o $(PO)/acq.js/$(LOCALE).po 
99         @pot2po $(PROGRESS) -i po/admin.properties/admin.properties.pot -o $(PO)/admin.properties/$(LOCALE).po 
100         @pot2po $(PROGRESS) -i po/auth.properties/auth.properties.pot -o $(PO)/auth.properties/$(LOCALE).po 
101         @pot2po $(PROGRESS) -i po/authority.js/authority.js.pot -o $(PO)/authority.js/$(LOCALE).po 
102         @pot2po $(PROGRESS) -i po/capture.js/capture.js.pot -o $(PO)/capture.js/$(LOCALE).po 
103         @pot2po $(PROGRESS) -i po/cat.properties/cat.properties.pot -o $(PO)/cat.properties/$(LOCALE).po 
104         @pot2po $(PROGRESS) -i po/circ.properties/circ.properties.pot -o $(PO)/circ.properties/$(LOCALE).po 
105         @pot2po $(PROGRESS) -i po/common.properties/common.properties.pot -o $(PO)/common.properties/$(LOCALE).po 
106         @pot2po $(PROGRESS) -i po/conify.dtd/conify.dtd.pot -o $(PO)/conify.dtd/$(LOCALE).po 
107         @pot2po $(PROGRESS) -i po/conify.js/conify.js.pot -o $(PO)/conify.js/$(LOCALE).po 
108         @pot2po $(PROGRESS) -i po/db.seed/db.seed.pot -o $(PO)/db.seed/$(LOCALE).po 
109         @pot2po $(PROGRESS) -i po/fm_IDL.dtd/fm_IDL.dtd.pot -o $(PO)/fm_IDL.dtd/$(LOCALE).po 
110         @pot2po $(PROGRESS) -i po/ils_events.xml/ils_events.xml.pot -o $(PO)/ils_events.xml/$(LOCALE).po 
111         @pot2po $(PROGRESS) -i po/lang.dtd/lang.dtd.pot -o $(PO)/lang.dtd/$(LOCALE).po 
112         @pot2po $(PROGRESS) -i po/multiclass_search_help.html/multiclass_search_help.html.pot -o $(PO)/multiclass_search_help.html/$(LOCALE).po 
113         @pot2po $(PROGRESS) -i po/offline.properties/offline.properties.pot -o $(PO)/offline.properties/$(LOCALE).po 
114         @pot2po $(PROGRESS) -i po/opac.dtd/opac.dtd.pot -o $(PO)/opac.dtd/$(LOCALE).po 
115         @pot2po $(PROGRESS) -i po/opac.js/opac.js.pot -o $(PO)/opac.js/$(LOCALE).po 
116         @pot2po $(PROGRESS) -i po/patron.properties/patron.properties.pot -o $(PO)/patron.properties/$(LOCALE).po 
117         @pot2po $(PROGRESS) -i po/pickup_and_return.js/pickup_and_return.js.pot -o $(PO)/pickup_and_return.js/$(LOCALE).po 
118         @pot2po $(PROGRESS) -i po/pull_list.js/pull_list.js.pot -o $(PO)/pull_list.js/$(LOCALE).po 
119         @pot2po $(PROGRESS) -i po/register.js/register.js.pot -o $(PO)/register.js/$(LOCALE).po 
120         @pot2po $(PROGRESS) -i po/reports.dtd/reports.dtd.pot -o $(PO)/reports.dtd/$(LOCALE).po 
121         @pot2po $(PROGRESS) -i po/reports.js/reports.js.pot -o $(PO)/reports.js/$(LOCALE).po 
122         @pot2po $(PROGRESS) -i po/reservation.js/reservation.js.pot -o $(PO)/reservation.js/$(LOCALE).po 
123         @pot2po $(PROGRESS) -i po/selfcheck.js/selfcheck.js.pot -o $(PO)/selfcheck.js/$(LOCALE).po 
124         @pot2po $(PROGRESS) -i po/serial.properties/serial.properties.pot -o $(PO)/serial.properties/$(LOCALE).po 
125         @pot2po $(PROGRESS) -i po/tpac/tpac.pot -o $(PO)/tpac/$(LOCALE).po 
126         @pot2po $(PROGRESS) -i po/bootstrap-opac/bootstrap-opac.pot -o $(PO)/bootstrap-opac/$(LOCALE).po 
127         @pot2po $(PROGRESS) -i po/webstaff/webstaff.pot -o $(PO)/webstaff/$(LOCALE).po 
128         @pot2po $(PROGRESS) -i po/acq/acq.pot -o $(PO)/acq/$(LOCALE).po
129         @pot2po $(PROGRESS) -i po/actor/actor.pot -o $(PO)/actor/$(LOCALE).po
130         @pot2po $(PROGRESS) -i po/booking/booking.pot -o $(PO)/booking/$(LOCALE).po
131         @pot2po $(PROGRESS) -i po/cat/cat.pot -o $(PO)/cat/$(LOCALE).po
132         @pot2po $(PROGRESS) -i po/circ/circ.pot -o $(PO)/circ/$(LOCALE).po
133         @pot2po $(PROGRESS) -i po/conify/conify.pot -o $(PO)/conify/$(LOCALE).po
134         @pot2po $(PROGRESS) -i po/kpac/kpac.pot -o $(PO)/kpac/$(LOCALE).po
135         @pot2po $(PROGRESS) -i po/serial/serial.pot -o $(PO)/serial/$(LOCALE).po
136         @pot2po $(PROGRESS) -i po/urlverify/urlverify.pot -o $(PO)/urlverify/$(LOCALE).po
137         @pot2po $(PROGRESS) -i po/vandelay/vandelay.pot -o $(PO)/vandelay/$(LOCALE).po
138         @pot2po $(PROGRESS) -i po/AutoFieldWidget.js/AutoFieldWidget.js.pot -o $(PO)/AutoFieldWidget.js/$(LOCALE).po 
139         @pot2po $(PROGRESS) -i po/FlattenerGrid.js/FlattenerGrid.js.pot -o $(PO)/FlattenerGrid.js/$(LOCALE).po 
140         @pot2po $(PROGRESS) -i po/PCrudFilterPane.js/PCrudFilterPane.js.pot -o $(PO)/PCrudFilterPane.js/$(LOCALE).po 
141         @pot2po $(PROGRESS) -i po/Searcher.js/Searcher.js.pot -o $(PO)/Searcher.js/$(LOCALE).po 
142         @pot2po $(PROGRESS) -i po/TranslatorPopup.js/TranslatorPopup.js.pot -o $(PO)/TranslatorPopup.js/$(LOCALE).po 
143         @pot2po $(PROGRESS) -i po/XULTermLoader.js/XULTermLoader.js.pot -o $(PO)/XULTermLoader.js/$(LOCALE).po 
144         @pot2po $(PROGRESS) -i po/User.js/User.js.pot -o $(PO)/User.js/$(LOCALE).po 
145         @pot2po $(PROGRESS) -i po/serial.js/serial.js.pot -o $(PO)/serial.js/$(LOCALE).po 
146         @pot2po $(PROGRESS) -i po/URLVerify.js/URLVerify.js.pot -o $(PO)/URLVerify.js/$(LOCALE).po 
147         @pot2po $(PROGRESS) -i po/match_set.js/match_set.js.pot -o $(PO)/match_set.js/$(LOCALE).po 
148         @pot2po $(PROGRESS) -i po/vandelay.js/vandelay.js.pot -o $(PO)/vandelay.js/$(LOCALE).po 
149         @echo "Generated new PO files for locale $(LOCALE)"
150
151 # Generate a new set of POT files and entityized fieldmapper IDL
152 newpot: fmidl2pot fmidl2fmidlent ils2pot sql2pot dojo2pot tpac2pot boopac2pot webstaff2pot templates2pot
153         @echo "Generated new POT files"
154
155 # Generate DTD, JavaScript message catalogs, fieldmapper IDL,
156 # and SQL insert files from PO for locale LOCALE
157 project: prep_output po2sql fmidlpo2entity po2ils po2dojo
158         @echo "Generated project files for locale $(LOCALE)"
159
160 # Update PO files with new and changed strings from POT files
161 updatepo: prep_output  
162         @pot2po $(PROGRESS) -i po/acq.js/acq.js.pot -o $(PO)/acq.js/$(LOCALE).po  -t $(PO)/acq.js/$(LOCALE).po 
163         @pot2po $(PROGRESS) -i po/admin.properties/admin.properties.pot -o $(PO)/admin.properties/$(LOCALE).po  -t $(PO)/admin.properties/$(LOCALE).po 
164         @pot2po $(PROGRESS) -i po/auth.properties/auth.properties.pot -o $(PO)/auth.properties/$(LOCALE).po  -t $(PO)/auth.properties/$(LOCALE).po 
165         @pot2po $(PROGRESS) -i po/authority.js/authority.js.pot -o $(PO)/authority.js/$(LOCALE).po  -t $(PO)/authority.js/$(LOCALE).po 
166         @pot2po $(PROGRESS) -i po/capture.js/capture.js.pot -o $(PO)/capture.js/$(LOCALE).po  -t $(PO)/capture.js/$(LOCALE).po 
167         @pot2po $(PROGRESS) -i po/cat.properties/cat.properties.pot -o $(PO)/cat.properties/$(LOCALE).po  -t $(PO)/cat.properties/$(LOCALE).po 
168         @pot2po $(PROGRESS) -i po/circ.properties/circ.properties.pot -o $(PO)/circ.properties/$(LOCALE).po  -t $(PO)/circ.properties/$(LOCALE).po 
169         @pot2po $(PROGRESS) -i po/common.properties/common.properties.pot -o $(PO)/common.properties/$(LOCALE).po  -t $(PO)/common.properties/$(LOCALE).po 
170         @pot2po $(PROGRESS) -i po/conify.dtd/conify.dtd.pot -o $(PO)/conify.dtd/$(LOCALE).po  -t $(PO)/conify.dtd/$(LOCALE).po 
171         @pot2po $(PROGRESS) -i po/conify.js/conify.js.pot -o $(PO)/conify.js/$(LOCALE).po  -t $(PO)/conify.js/$(LOCALE).po 
172         pocommentclean $(PO)/db.seed/$(LOCALE).po
173         @pot2po $(PROGRESS) -i po/db.seed/db.seed.pot -o $(PO)/db.seed/$(LOCALE).po  -t $(PO)/db.seed/$(LOCALE).po 
174         @pot2po $(PROGRESS) -i po/fm_IDL.dtd/fm_IDL.dtd.pot -o $(PO)/fm_IDL.dtd/$(LOCALE).po  -t $(PO)/fm_IDL.dtd/$(LOCALE).po 
175         @pot2po $(PROGRESS) -i po/ils_events.xml/ils_events.xml.pot -o $(PO)/ils_events.xml/$(LOCALE).po  -t $(PO)/ils_events.xml/$(LOCALE).po 
176         @pot2po $(PROGRESS) -i po/lang.dtd/lang.dtd.pot -o $(PO)/lang.dtd/$(LOCALE).po  -t $(PO)/lang.dtd/$(LOCALE).po 
177         @pot2po $(PROGRESS) -i po/multiclass_search_help.html/multiclass_search_help.html.pot -o $(PO)/multiclass_search_help.html/$(LOCALE).po  -t $(PO)/multiclass_search_help.html/$(LOCALE).po 
178         @pot2po $(PROGRESS) -i po/offline.properties/offline.properties.pot -o $(PO)/offline.properties/$(LOCALE).po  -t $(PO)/offline.properties/$(LOCALE).po 
179         @pot2po $(PROGRESS) -i po/opac.dtd/opac.dtd.pot -o $(PO)/opac.dtd/$(LOCALE).po  -t $(PO)/opac.dtd/$(LOCALE).po 
180         @pot2po $(PROGRESS) -i po/opac.js/opac.js.pot -o $(PO)/opac.js/$(LOCALE).po  -t $(PO)/opac.js/$(LOCALE).po 
181         @pot2po $(PROGRESS) -i po/patron.properties/patron.properties.pot -o $(PO)/patron.properties/$(LOCALE).po  -t $(PO)/patron.properties/$(LOCALE).po 
182         @pot2po $(PROGRESS) -i po/pickup_and_return.js/pickup_and_return.js.pot -o $(PO)/pickup_and_return.js/$(LOCALE).po  -t $(PO)/pickup_and_return.js/$(LOCALE).po 
183         @pot2po $(PROGRESS) -i po/pull_list.js/pull_list.js.pot -o $(PO)/pull_list.js/$(LOCALE).po  -t $(PO)/pull_list.js/$(LOCALE).po 
184         @pot2po $(PROGRESS) -i po/register.js/register.js.pot -o $(PO)/register.js/$(LOCALE).po  -t $(PO)/register.js/$(LOCALE).po 
185         @pot2po $(PROGRESS) -i po/reports.dtd/reports.dtd.pot -o $(PO)/reports.dtd/$(LOCALE).po  -t $(PO)/reports.dtd/$(LOCALE).po 
186         @pot2po $(PROGRESS) -i po/reports.js/reports.js.pot -o $(PO)/reports.js/$(LOCALE).po  -t $(PO)/reports.js/$(LOCALE).po 
187         @pot2po $(PROGRESS) -i po/reservation.js/reservation.js.pot -o $(PO)/reservation.js/$(LOCALE).po  -t $(PO)/reservation.js/$(LOCALE).po 
188         @pot2po $(PROGRESS) -i po/selfcheck.js/selfcheck.js.pot -o $(PO)/selfcheck.js/$(LOCALE).po  -t $(PO)/selfcheck.js/$(LOCALE).po 
189         @pot2po $(PROGRESS) -i po/serial.properties/serial.properties.pot -o $(PO)/serial.properties/$(LOCALE).po  -t $(PO)/serial.properties/$(LOCALE).po 
190         @pot2po $(PROGRESS) -i po/tpac/tpac.pot -o $(PO)/tpac/$(LOCALE).po -t $(PO)/tpac/$(LOCALE).po 
191         @pot2po $(PROGRESS) -i po/bootstrap-opac/bootstrap-opac.pot -o $(PO)/bootstrap-opac/$(LOCALE).po -t $(PO)/bootstrap-opac/$(LOCALE).po 
192         @pot2po $(PROGRESS) -i po/webstaff/webstaff.pot -o $(PO)/webstaff/$(LOCALE).po -t $(PO)/webstaff/$(LOCALE).po 
193         @pot2po $(PROGRESS) -i po/acq/acq.pot -o $(PO)/acq/$(LOCALE).po -t $(PO)/acq/$(LOCALE).po
194         @pot2po $(PROGRESS) -i po/actor/actor.pot -o $(PO)/actor/$(LOCALE).po -t $(PO)/actor/$(LOCALE).po
195         @pot2po $(PROGRESS) -i po/booking/booking.pot -o $(PO)/booking/$(LOCALE).po -t $(PO)/booking/$(LOCALE).po
196         @pot2po $(PROGRESS) -i po/cat/cat.pot -o $(PO)/cat/$(LOCALE).po -t $(PO)/cat/$(LOCALE).po
197         @pot2po $(PROGRESS) -i po/circ/circ.pot -o $(PO)/circ/$(LOCALE).po -t $(PO)/circ/$(LOCALE).po
198         @pot2po $(PROGRESS) -i po/conify/conify.pot -o $(PO)/conify/$(LOCALE).po -t $(PO)/conify/$(LOCALE).po
199         @pot2po $(PROGRESS) -i po/kpac/kpac.pot -o $(PO)/kpac/$(LOCALE).po -t $(PO)/kpac/$(LOCALE).po
200         @pot2po $(PROGRESS) -i po/serial/serial.pot -o $(PO)/serial/$(LOCALE).po -t $(PO)/serial/$(LOCALE).po
201         @pot2po $(PROGRESS) -i po/urlverify/urlverify.pot -o $(PO)/urlverify/$(LOCALE).po -t $(PO)/urlverify/$(LOCALE).po
202         @pot2po $(PROGRESS) -i po/vandelay/vandelay.pot -o $(PO)/vandelay/$(LOCALE).po -t $(PO)/vandelay/$(LOCALE).po
203         @pot2po $(PROGRESS) -i po/AutoFieldWidget.js/AutoFieldWidget.js.pot -o $(PO)/AutoFieldWidget.js/$(LOCALE).po  -t $(PO)/AutoFieldWidget.js/$(LOCALE).po 
204         @pot2po $(PROGRESS) -i po/FlattenerGrid.js/FlattenerGrid.js.pot -o $(PO)/FlattenerGrid.js/$(LOCALE).po  -t $(PO)/FlattenerGrid.js/$(LOCALE).po 
205         @pot2po $(PROGRESS) -i po/PCrudFilterPane.js/PCrudFilterPane.js.pot -o $(PO)/PCrudFilterPane.js/$(LOCALE).po  -t $(PO)/PCrudFilterPane.js/$(LOCALE).po 
206         @pot2po $(PROGRESS) -i po/Searcher.js/Searcher.js.pot -o $(PO)/Searcher.js/$(LOCALE).po  -t $(PO)/Searcher.js/$(LOCALE).po 
207         @pot2po $(PROGRESS) -i po/TranslatorPopup.js/TranslatorPopup.js.pot -o $(PO)/TranslatorPopup.js/$(LOCALE).po  -t $(PO)/TranslatorPopup.js/$(LOCALE).po 
208         @pot2po $(PROGRESS) -i po/User.js/User.js.pot -o $(PO)/User.js/$(LOCALE).po  -t $(PO)/User.js/$(LOCALE).po 
209         @pot2po $(PROGRESS) -i po/XULTermLoader.js/XULTermLoader.js.pot -o $(PO)/XULTermLoader.js/$(LOCALE).po  -t $(PO)/XULTermLoader.js/$(LOCALE).po 
210         @pot2po $(PROGRESS) -i po/serial.js/serial.js.pot -o $(PO)/serial.js/$(LOCALE).po  -t $(PO)/serial.js/$(LOCALE).po 
211         @pot2po $(PROGRESS) -i po/URLVerify.js/URLVerify.js.pot -o $(PO)/URLVerify.js/$(LOCALE).po  -t $(PO)/URLVerify.js/$(LOCALE).po 
212         @pot2po $(PROGRESS) -i po/match_set.js/match_set.js.pot -o $(PO)/match_set.js/$(LOCALE).po  -t $(PO)/match_set.js/$(LOCALE).po 
213         @pot2po $(PROGRESS) -i po/vandelay.js/vandelay.js.pot -o $(PO)/vandelay.js/$(LOCALE).po  -t $(PO)/vandelay.js/$(LOCALE).po 
214         @echo "Updated PO files for locale $(LOCALE)"
215
216 dtds2pot:
217         @moz2po -P $(PROGRESS) -o $(PO)/conify.dtd/conify.dtd.pot -i $(DTDDIR)/en-US/conify.dtd 2>&1
218         @moz2po -P $(PROGRESS) -o $(PO)/lang.dtd/lang.dtd.pot -i $(DTDDIR)/en-US/lang.dtd 2>&1
219         @moz2po -P $(PROGRESS) -o $(PO)/opac.dtd/opac.dtd.pot -i $(DTDDIR)/en-US/opac.dtd 2>&1
220         @moz2po -P $(PROGRESS) -o $(PO)/reports.dtd/reports.dtd.pot -i $(DTDDIR)/en-US/reports.dtd 2>&1
221
222 dojo2pot:
223         @scripts/dojo_resource.py --pot $(DOJO_ACQ_SRC)/acq.js --output $(PO)/acq.js/acq.js.pot
224         @scripts/dojo_resource.py --pot $(DOJO_ACTOR_SRC)/register.js --output $(PO)/register.js/register.js.pot
225         @scripts/dojo_resource.py --pot $(DOJO_AUTHORITY_SRC)/authority.js --output $(PO)/authority.js/authority.js.pot
226         @scripts/dojo_resource.py --pot $(DOJO_BOOKING_SRC)/capture.js --output $(PO)/capture.js/capture.js.pot
227         @scripts/dojo_resource.py --pot $(DOJO_BOOKING_SRC)/pickup_and_return.js --output $(PO)/pickup_and_return.js/pickup_and_return.js.pot
228         @scripts/dojo_resource.py --pot $(DOJO_BOOKING_SRC)/pull_list.js --output $(PO)/pull_list.js/pull_list.js.pot
229         @scripts/dojo_resource.py --pot $(DOJO_BOOKING_SRC)/reservation.js --output $(PO)/reservation.js/reservation.js.pot
230         @scripts/dojo_resource.py --pot $(DOJO_CIRC_SRC)/selfcheck.js --output $(PO)/selfcheck.js/selfcheck.js.pot
231         @scripts/dojo_resource.py --pot $(DOJO_CON_SRC)/conify.js --output $(PO)/conify.js/conify.js.pot
232         @scripts/dojo_resource.py --pot $(DOJO_OPAC_SRC)/opac.js --output $(PO)/opac.js/opac.js.pot
233         @scripts/dojo_resource.py --pot $(DOJO_RPT_SRC)/reports.js --output $(PO)/reports.js/reports.js.pot
234         @scripts/dojo_resource.py --pot $(DOJO_SERIAL_SRC)/serial.js --output $(PO)/serial.js/serial.js.pot
235         @scripts/dojo_resource.py --pot $(DOJO_URLVERIFY_SRC)/URLVerify.js --output $(PO)/URLVerify.js/URLVerify.js.pot
236         @scripts/dojo_resource.py --pot $(DOJO_USER_SRC)/User.js --output $(PO)/User.js/User.js.pot
237         @scripts/dojo_resource.py --pot $(DOJO_VANDELAY_SRC)/match_set.js --output $(PO)/match_set.js/match_set.js.pot
238         @scripts/dojo_resource.py --pot $(DOJO_VANDELAY_SRC)/vandelay.js --output $(PO)/vandelay.js/vandelay.js.pot
239         @scripts/dojo_resource.py --pot $(DOJO_WIDGET_SRC)/AutoFieldWidget.js --output $(PO)/AutoFieldWidget.js/AutoFieldWidget.js.pot
240         @scripts/dojo_resource.py --pot $(DOJO_WIDGET_SRC)/FlattenerGrid.js --output $(PO)/FlattenerGrid.js/FlattenerGrid.js.pot
241         @scripts/dojo_resource.py --pot $(DOJO_WIDGET_SRC)/PCrudFilterPane.js --output $(PO)/PCrudFilterPane.js/PCrudFilterPane.js.pot
242         @scripts/dojo_resource.py --pot $(DOJO_WIDGET_SRC)/Searcher.js --output $(PO)/Searcher.js/Searcher.js.pot
243         @scripts/dojo_resource.py --pot $(DOJO_WIDGET_SRC)/TranslatorPopup.js --output $(PO)/TranslatorPopup.js/TranslatorPopup.js.pot
244         @scripts/dojo_resource.py --pot $(DOJO_WIDGET_SRC)/XULTermLoader.js --output $(PO)/XULTermLoader.js/XULTermLoader.js.pot
245
246 po2dojo: mklocale
247         @scripts/dojo_resource.py --create $(PO)/acq.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/acq.js
248         @scripts/dojo_resource.py --create $(PO)/authority.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/authority.js
249         @scripts/dojo_resource.py --create $(PO)/capture.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/capture.js
250         @scripts/dojo_resource.py --create $(PO)/conify.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/conify.js
251         @scripts/dojo_resource.py --create $(PO)/opac.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/opac.js
252         @scripts/dojo_resource.py --create $(PO)/pickup_and_return.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/pickup_and_return.js
253         @scripts/dojo_resource.py --create $(PO)/pull_list.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/pull_list.js
254         @scripts/dojo_resource.py --create $(PO)/register.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/register.js
255         @scripts/dojo_resource.py --create $(PO)/reservation.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/reservation.js
256         @scripts/dojo_resource.py --create $(PO)/reports.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/reports.js
257         @scripts/dojo_resource.py --create $(PO)/selfcheck.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/selfcheck.js
258         @scripts/dojo_resource.py --create $(PO)/AutoFieldWidget.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/AutoFieldWidget.js
259         @scripts/dojo_resource.py --create $(PO)/FlattenerGrid.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/FlattenerGrid.js
260         @scripts/dojo_resource.py --create $(PO)/PCrudFilterPane.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/PCrudFilterPane.js
261         @scripts/dojo_resource.py --create $(PO)/Searcher.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/Searcher.js
262         @scripts/dojo_resource.py --create $(PO)/TranslatorPopup.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/TranslatorPopup.js
263         @scripts/dojo_resource.py --create $(PO)/User.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/User.js
264         @scripts/dojo_resource.py --create $(PO)/XULTermLoader.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/XULTermLoader.js
265         @scripts/dojo_resource.py --create $(PO)/serial.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/serial.js
266         @scripts/dojo_resource.py --create $(PO)/URLVerify.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/URLVerify.js
267         @scripts/dojo_resource.py --create $(PO)/match_set.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/match_set.js
268         @scripts/dojo_resource.py --create $(PO)/vandelay.js/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/vandelay.js
269
270 ils2pot:
271         @scripts/ils_events.py --pot $(EVTSRC) --output $(PO)/ils_events.xml/$(EVTOUT)
272
273 po2ils: mklocale
274         @scripts/ils_events.py --create $(PO)/ils_events.xml/$(LOCALE).po --locale $(LOCALE) --output $(PROJECT)/$(LOCALE)/$(EVTXML) 
275
276 props2pot: mklocale
277         @moz2po -P $(PROGRESS) -o $(PO)/auth.properties/auth.properties.pot -i $(CHROME_PROPSDIR)/en-US/auth.properties 2>&1
278         @moz2po -P $(PROGRESS) -o $(PO)/offline.properties/offline.properties.pot -i $(CHROME_PROPSDIR)/en-US/offline.properties 2>&1
279         @moz2po -P $(PROGRESS) -o $(PO)/admin.properties/admin.properties.pot -i $(SERVER_PROPSDIR)/en-US/admin.properties 2>&1
280         @moz2po -P $(PROGRESS) -o $(PO)/cat.properties/cat.properties.pot -i $(SERVER_PROPSDIR)/en-US/cat.properties 2>&1
281         @moz2po -P $(PROGRESS) -o $(PO)/circ.properties/circ.properties.pot -i $(SERVER_PROPSDIR)/en-US/circ.properties 2>&1
282         @moz2po -P $(PROGRESS) -o $(PO)/common.properties/common.properties.pot -i $(SERVER_PROPSDIR)/en-US/common.properties 2>&1
283         @moz2po -P $(PROGRESS) -o $(PO)/multiclass_search_help.html/multiclass_search_help.html.pot -i $(SERVER_PROPSDIR)/en-US/multiclass_search_help.html 2>&1
284         @moz2po -P $(PROGRESS) -o $(PO)/patron.properties/patron.properties.pot -i $(SERVER_PROPSDIR)/en-US/patron.properties 2>&1
285         @moz2po -P $(PROGRESS) -o $(PO)/serial.properties/serial.properties.pot -i $(SERVER_PROPSDIR)/en-US/serial.properties 2>&1
286
287 templates2pot: mklocale
288         @mkdir -p po/acq
289         @xgettext.pl --plugin=tt2 --directory=$(TEMPLATES_ACQ_SRC) --output-dir=po/acq/ --output=acq.pot
290         @mkdir -p po/actor
291         @xgettext.pl --plugin=tt2 --directory=$(TEMPLATES_ACTOR_SRC) --output-dir=po/actor/ --output=actor.pot
292         @mkdir -p po/booking
293         @xgettext.pl --plugin=tt2 --directory=$(TEMPLATES_BOOKING_SRC) --output-dir=po/booking/ --output=booking.pot
294         @mkdir -p po/cat
295         @xgettext.pl --plugin=tt2 --directory=$(TEMPLATES_CAT_SRC) --output-dir=po/cat/ --output=cat.pot
296         @mkdir -p po/circ
297         @xgettext.pl --plugin=tt2 --directory=$(TEMPLATES_CIRC_SRC) --output-dir=po/circ/ --output=circ.pot
298         @mkdir -p po/conify
299         @xgettext.pl --plugin=tt2 --directory=$(TEMPLATES_CONIFY_SRC) --output-dir=po/conify/ --output=conify.pot
300         @mkdir -p po/kpac
301         @xgettext.pl --plugin=tt2 --directory=$(TEMPLATES_KPAC_SRC) --output-dir=po/kpac/ --output=kpac.pot
302         @mkdir -p po/serial
303         @xgettext.pl --plugin=tt2 --directory=$(TEMPLATES_SERIAL_SRC) --output-dir=po/serial/ --output=serial.pot
304         @mkdir -p po/urlverify
305         @xgettext.pl --plugin=tt2 --directory=$(TEMPLATES_URLVERIFY_SRC) --output-dir=po/urlverify/ --output=urlverify.pot
306         @mkdir -p po/vandelay
307         @xgettext.pl --plugin=tt2 --directory=$(TEMPLATES_VANDELAY_SRC) --output-dir=po/vandelay/ --output=vandelay.pot
308
309 tpac2pot: mklocale
310         @mkdir -p po/tpac
311         @xgettext.pl --plugin=tt2 --directory=$(TPAC_SRC) --output-dir=po/tpac/ --output=tpac.pot
312
313 boopac2pot: mklocale
314         @mkdir -p po/bootstrap-opac
315         @xgettext.pl --plugin=tt2 --directory=$(BOOPAC_SRC) --output-dir=po/bootstrap-opac/ --output=bootstrap-opac.pot
316
317 webstaff2pot: mklocale
318         @mkdir -p po/webstaff
319         @xgettext.pl --plugin=tt2 --directory=$(WEBSTAFF_SRC) --output-dir=po/webstaff/ --output=webstaff.pot
320
321 mklocale:
322         @mkdir -p locale/$(LOCALE)
323
324 # There are some hacky things we need to do to make po2moz happy,
325 # like ensure that the .po file has either ".dtd" or ".properties" in
326 # the name to generate the appropriate output, even though that breaks
327 # GNU gettext recommended layout of foo.dtd/ll-LL.po
328 prep_output: mklocale
329         @for i in `ls -d $(PO)/*.dtd`; do cd $(STARTDIR)/$$i && ln -sf $(LOCALE).po $(LOCALE).dtd.po; done
330         @for i in `ls -d $(PO)/*.properties`; do cd $(STARTDIR)/$$i && ln -sf $(LOCALE).po $(LOCALE).properties.po; done
331         @for i in `ls -d $(PO)/*.html`; do cd $(STARTDIR)/$$i && ln -sf $(LOCALE).po $(LOCALE).html.po; done
332         @cd $(STARTDIR)
333
334 po2dtds: mklocale
335         @po2moz $(PROGRESS) -i $(PO)/conify.dtd/$(LOCALE).dtd.po -o $(PROJECT)/$(LOCALE)/conify.dtd -t $(DTDDIR)/en-US/conify.dtd 2>&1
336         @po2moz $(PROGRESS) -i $(PO)/lang.dtd/$(LOCALE).dtd.po -o $(PROJECT)/$(LOCALE)/lang.dtd -t $(DTDDIR)/en-US/lang.dtd 2>&1
337         @po2moz $(PROGRESS) -i $(PO)/opac.dtd/$(LOCALE).dtd.po -o $(PROJECT)/$(LOCALE)/opac.dtd -t $(DTDDIR)/en-US/opac.dtd 2>&1
338         @po2moz $(PROGRESS) -i $(PO)/reports.dtd/$(LOCALE).dtd.po -o $(PROJECT)/$(LOCALE)/reports.dtd -t $(DTDDIR)/en-US/reports.dtd 2>&1
339
340 po2props:
341         @po2moz $(PROGRESS) -i $(PO)/auth.properties/$(LOCALE).properties.po -o $(PROJECT)/$(LOCALE)/auth.properties -t $(CHROME_PROPSDIR)/en-US/auth.properties 2>&1
342         @po2moz $(PROGRESS) -i $(PO)/offline.properties/$(LOCALE).properties.po -o $(PROJECT)/$(LOCALE)/offline.properties -t $(CHROME_PROPSDIR)/en-US/offline.properties 2>&1
343         @po2moz $(PROGRESS) -i $(PO)/admin.properties/$(LOCALE).properties.po -o $(PROJECT)/$(LOCALE)/admin.properties -t $(SERVER_PROPSDIR)/en-US/admin.properties 2>&1
344         @po2moz $(PROGRESS) -i $(PO)/cat.properties/$(LOCALE).properties.po -o $(PROJECT)/$(LOCALE)/cat.properties -t $(SERVER_PROPSDIR)/en-US/cat.properties 2>&1
345         @po2moz $(PROGRESS) -i $(PO)/circ.properties/$(LOCALE).properties.po -o $(PROJECT)/$(LOCALE)/circ.properties -t $(SERVER_PROPSDIR)/en-US/circ.properties 2>&1
346         @po2moz $(PROGRESS) -i $(PO)/common.properties/$(LOCALE).properties.po -o $(PROJECT)/$(LOCALE)/common.properties -t $(SERVER_PROPSDIR)/en-US/common.properties 2>&1
347         @po2moz $(PROGRESS) -i $(PO)/multiclass_search_help.html/$(LOCALE).html.po -o $(PROJECT)/$(LOCALE)/multiclass_search_help.html -t $(SERVER_PROPSDIR)/en-US/multiclass_search_help.html 2>&1
348         @po2moz $(PROGRESS) -i $(PO)/patron.properties/$(LOCALE).properties.po -o $(PROJECT)/$(LOCALE)/patron.properties -t $(SERVER_PROPSDIR)/en-US/patron.properties 2>&1
349         @po2moz $(PROGRESS) -i $(PO)/serial.properties/$(LOCALE).properties.po -o $(PROJECT)/$(LOCALE)/serial.properties -t $(SERVER_PROPSDIR)/en-US/serial.properties 2>&1
350
351 sql2pot:
352         @scripts/db-seed-i18n.py --pot $(SQLSRCDIR)/$(SQLSRCFILE) --output $(PO)/db.seed/$(SQLPOT)
353 #       @msghack --empty -o $(PO)/$(SQLPOT) $(PO)/$(SQLPOT)
354
355 po2sql: mklocale
356         @scripts/db-seed-i18n.py --sql $(PO)/db.seed/$(LOCALE).po --locale $(LOCALE) --output $(PROJECT)/$(LOCALE)/$(SQLOUT).sql
357
358 # Generate a fieldmapper IDL file that uses entities instead of hard-coded strings
359 fmidl2fmidlent:
360         @scripts/fieldmapper.py --convert $(FMIDLSRC) --output $(PO)/$(FMIDLENT)
361
362 # Generate a POT file for translating the entity values
363 fmidl2pot:
364         @scripts/fieldmapper.py --pot $(FMIDLSRC) --output $(PO)/fm_IDL.dtd/$(FMIDLOUT)
365
366 # Generate a set of entity declarations from a PO file
367 fmidlpo2entity: mklocale
368         @scripts/fieldmapper.py --entity $(PO)/fm_IDL.dtd/$(LOCALE).po --output $(PROJECT)/$(LOCALE)/$(FMIDLENTITY)
369
370 # Generate en-US DTD from a POT file; required if any other locale is installed
371 fmidlpo2entity-en:
372         mkdir -p $(PROJECT)/en-US
373         @scripts/fieldmapper.py --entity $(PO)/fm_IDL.dtd/$(FMIDLOUT) --output $(PROJECT)/en-US/$(FMIDLENTITY)
374         cp $(PROJECT)/en-US/$(FMIDLENTITY) $(DTDDIR)/en-US/
375
376 # Install updated project files to their corresponding location in the source tree
377 install: updatepo project fmidl2fmidlent fmidlpo2entity-en
378         mkdir -p $(DTDDIR)/$(LOCALE)
379         mkdir -p $(TT_LOCALE)
380         cp po/tpac/$(LOCALE).po $(TT_LOCALE)/tpac.$(LOCALE).po
381         cp po/bootstrap-opac/$(LOCALE).po $(TT_LOCALE)/bootstrap-opac.$(LOCALE).po
382         cp po/webstaff/$(LOCALE).po $(TT_LOCALE)/webstaff.$(LOCALE).po
383         cp po/acq/$(LOCALE).po $(TT_LOCALE)/acq.$(LOCALE).po
384         cp po/actor/$(LOCALE).po $(TT_LOCALE)/actor.$(LOCALE).po
385         cp po/booking/$(LOCALE).po $(TT_LOCALE)/booking.$(LOCALE).po
386         cp po/cat/$(LOCALE).po $(TT_LOCALE)/cat.$(LOCALE).po
387         cp po/circ/$(LOCALE).po $(TT_LOCALE)/circ.$(LOCALE).po
388         cp po/conify/$(LOCALE).po $(TT_LOCALE)/conify.$(LOCALE).po
389         cp po/kpac/$(LOCALE).po $(TT_LOCALE)/kpac.$(LOCALE).po
390         cp po/serial/$(LOCALE).po $(TT_LOCALE)/serial.$(LOCALE).po
391         cp po/urlverify/$(LOCALE).po $(TT_LOCALE)/urlverify.$(LOCALE).po
392         cp po/vandelay/$(LOCALE).po $(TT_LOCALE)/vandelay.$(LOCALE).po
393         cp $(PROJECT)/$(LOCALE)/$(FMIDLENTITY) $(DTDDIR)/$(LOCALE)/
394         @scripts/merge_ils_events.py --master $(EVTSRC) --localization $(PROJECT)/$(LOCALE)/$(EVTXML) --output $(EVTSRC)
395         cp $(PROJECT)/$(LOCALE)/$(SQLOUT).sql $(SQLSRCDIR)/$(SQLOUT)-$(LOCALE).sql
396         cp $(PO)/$(FMIDLENT) $(REPORTDIR)/$(FMIDLENT)
397         mkdir -p $(DOJO_ACQ_SRC)/$(DOJO_LOCALE)
398         cp $(PROJECT)/$(LOCALE)/acq.js $(DOJO_ACQ_SRC)/$(DOJO_LOCALE)/acq.js
399         mkdir -p $(DOJO_ACTOR_SRC)/$(DOJO_LOCALE)
400         cp $(PROJECT)/$(LOCALE)/register.js $(DOJO_ACTOR_SRC)/$(DOJO_LOCALE)/register.js
401         mkdir -p $(DOJO_AUTHORITY_SRC)/$(DOJO_LOCALE)
402         cp $(PROJECT)/$(LOCALE)/authority.js $(DOJO_AUTHORITY_SRC)/$(DOJO_LOCALE)/authority.js
403         mkdir -p $(DOJO_BOOKING_SRC)/$(DOJO_LOCALE)
404         cp $(PROJECT)/$(LOCALE)/capture.js $(DOJO_BOOKING_SRC)/$(DOJO_LOCALE)/capture.js
405         cp $(PROJECT)/$(LOCALE)/pickup_and_return.js $(DOJO_BOOKING_SRC)/$(DOJO_LOCALE)/pickup_and_return.js
406         cp $(PROJECT)/$(LOCALE)/pull_list.js $(DOJO_BOOKING_SRC)/$(DOJO_LOCALE)/pull_list.js
407         cp $(PROJECT)/$(LOCALE)/reservation.js $(DOJO_BOOKING_SRC)/$(DOJO_LOCALE)/reservation.js
408         mkdir -p $(DOJO_CIRC_SRC)/$(DOJO_LOCALE)
409         cp $(PROJECT)/$(LOCALE)/selfcheck.js $(DOJO_CIRC_SRC)/$(DOJO_LOCALE)/selfcheck.js
410         mkdir -p $(DOJO_CON_SRC)/$(DOJO_LOCALE)
411         cp $(PROJECT)/$(LOCALE)/conify.js $(DOJO_CON_SRC)/$(DOJO_LOCALE)/conify.js
412         mkdir -p $(DOJO_OPAC_SRC)/$(DOJO_LOCALE)
413         cp $(PROJECT)/$(LOCALE)/opac.js $(DOJO_OPAC_SRC)/$(DOJO_LOCALE)/opac.js
414         mkdir -p $(DOJO_RPT_SRC)/$(DOJO_LOCALE)
415         cp $(PROJECT)/$(LOCALE)/reports.js $(DOJO_RPT_SRC)/$(DOJO_LOCALE)/reports.js
416         mkdir -p $(DOJO_USER_SRC)/$(DOJO_LOCALE)
417         cp $(PROJECT)/$(LOCALE)/User.js $(DOJO_USER_SRC)/$(DOJO_LOCALE)/User.js
418         mkdir -p $(DOJO_SERIAL_SRC)/$(DOJO_LOCALE)
419         cp $(PROJECT)/$(LOCALE)/serial.js $(DOJO_SERIAL_SRC)/$(DOJO_LOCALE)/serial.js
420         mkdir -p $(DOJO_URLVERIFY_SRC)/$(DOJO_LOCALE)
421         cp $(PROJECT)/$(LOCALE)/URLVerify.js $(DOJO_URLVERIFY_SRC)/$(DOJO_LOCALE)/URLVerify.js
422         mkdir -p $(DOJO_VANDELAY_SRC)/$(DOJO_LOCALE)
423         cp $(PROJECT)/$(LOCALE)/match_set.js $(DOJO_VANDELAY_SRC)/$(DOJO_LOCALE)/match_set.js
424         cp $(PROJECT)/$(LOCALE)/vandelay.js $(DOJO_VANDELAY_SRC)/$(DOJO_LOCALE)/vandelay.js
425         mkdir -p $(DOJO_WIDGET_SRC)/$(DOJO_LOCALE)
426         cp $(PROJECT)/$(LOCALE)/AutoFieldWidget.js $(DOJO_WIDGET_SRC)/$(DOJO_LOCALE)/AutoFieldWidget.js
427         cp $(PROJECT)/$(LOCALE)/FlattenerGrid.js $(DOJO_WIDGET_SRC)/$(DOJO_LOCALE)/FlattenerGrid.js
428         cp $(PROJECT)/$(LOCALE)/PCrudFilterPane.js $(DOJO_WIDGET_SRC)/$(DOJO_LOCALE)/PCrudFilterPane.js
429         cp $(PROJECT)/$(LOCALE)/Searcher.js $(DOJO_WIDGET_SRC)/$(DOJO_LOCALE)/Searcher.js
430         cp $(PROJECT)/$(LOCALE)/TranslatorPopup.js $(DOJO_WIDGET_SRC)/$(DOJO_LOCALE)/TranslatorPopup.js
431         cp $(PROJECT)/$(LOCALE)/XULTermLoader.js $(DOJO_WIDGET_SRC)/$(DOJO_LOCALE)/XULTermLoader.js
432         mkdir -p $(TT2_OPAC_DATA_DIR)
433         cp $(PO)/tpac/$(LOCALE).po $(TT2_OPAC_DATA_DIR)/.
434         mkdir -p $(TT2_BOOTSTRAP_OPAC_DATA_DIR)
435         cp $(PO)/bootstrap-opac/$(LOCALE).po $(TT2_BOOTSTRAP_OPAC_DATA_DIR)/.
436         mkdir -p $(TT2_WEBSTAFF_DATA_DIR)
437         cp $(PO)/webstaff/$(LOCALE).po $(TT2_WEBSTAFF_DATA_DIR)/.
438         mkdir -p $(TEMPLATES_ACQ_DATA_DIR)
439         cp $(PO)/acq/$(LOCALE).po $(TEMPLATES_ACQ_DATA_DIR)/.
440         mkdir -p $(TEMPLATES_ACTOR_DATA_DIR)
441         cp $(PO)/actor/$(LOCALE).po $(TEMPLATES_ACTOR_DATA_DIR)/.
442         mkdir -p $(TEMPLATES_BOOKING_DATA_DIR)
443         cp $(PO)/booking/$(LOCALE).po $(TEMPLATES_BOOKING_DATA_DIR)/.
444         mkdir -p $(TEMPLATES_CAT_DATA_DIR)
445         cp $(PO)/cat/$(LOCALE).po $(TEMPLATES_CAT_DATA_DIR)/.
446         mkdir -p $(TEMPLATES_CIRC_DATA_DIR)
447         cp $(PO)/circ/$(LOCALE).po $(TEMPLATES_CIRC_DATA_DIR)/.
448         mkdir -p $(TEMPLATES_CONIFY_DATA_DIR)
449         cp $(PO)/conify/$(LOCALE).po $(TEMPLATES_CONIFY_DATA_DIR)/.
450         mkdir -p $(TEMPLATES_KPAC_DATA_DIR)
451         cp $(PO)/kpac/$(LOCALE).po $(TEMPLATES_KPAC_DATA_DIR)/.
452         mkdir -p $(TEMPLATES_SERIAL_DATA_DIR)
453         cp $(PO)/serial/$(LOCALE).po $(TEMPLATES_SERIAL_DATA_DIR)/.
454         mkdir -p $(TEMPLATES_URLVERIFY_DATA_DIR)
455         cp $(PO)/urlverify/$(LOCALE).po $(TEMPLATES_URLVERIFY_DATA_DIR)/.
456         mkdir -p $(TEMPLATES_VANDELAY_DATA_DIR)
457         cp $(PO)/vandelay/$(LOCALE).po $(TEMPLATES_VANDELAY_DATA_DIR)/.
458
459 install_all_locales: newpot
460         for i in `ls po/*/*po|grep -v en-US | cut -f3 -d'/' | cut -f1 -d. | sort | uniq`; \
461         do \
462         make LOCALE=$$i install; \
463         RC=$$?; \
464         if [ "$$RC" -gt 0 ]; \
465         then echo $$RC; exit $$RC; \
466         fi; done
467
468 update_all_locales: newpot
469         for i in `ls po/*/*po|grep -v en-US | cut -f3 -d'/' | cut -f1 -d. | sort | uniq`; \
470         do \
471         make LOCALE=$$i updatepo; \
472         RC=$$?; \
473         if [ "$$RC" -gt 0 ]; \
474         then echo $$RC; exit $$RC; \
475         fi; done