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_CON_SRC=../../Open-ILS/web/js/dojo/openils/conify/nls
11 DOJO_RPT_SRC=../../Open-ILS/web/js/dojo/openils/reports/nls
12 FMIDLSRC=../../Open-ILS/examples/fm_IDL.xml
15 FMIDLENTITY=fm_IDL.dtd
17 EVTSRC=../../Open-ILS/src/extras/ils_events.xml
18 EVTOUT=ils_events.xml.pot
19 EVTPO=ils_events.xml.po
21 REPORTDIR=../../Open-ILS/web/reports/
22 SQLSRCDIR=../../Open-ILS/src/sql/Pg/
23 SQLSRCFILE=950.data.seed-values.sql
26 SQLOUT=950.data.seed-values
27 PROGRESS=--progress none
29 # This Makefile can be used to generate and update PO files for Evergreen,
30 # as well as generate updated SQL, fieldmapper IDL, DTD and JavaScript
31 # property files from the PO.
35 # To create a new set of untranslated PO files for locale ll-LL:
36 # make LOCALE=ll-LL newpo
38 # To create a new set of POT files from the en-US source:
39 # make LOCALE=ll-LL newpot
41 # To update a set of translated PO files with new or changed en-US strings:
42 # make LOCALE=ll-LL updatepo
44 # To create a set of translated project files (DTDs, JavaScript message catalogs):
45 # make LOCALE=ll-LL project
47 # To install a set of translated project files:
48 # make LOCALE=ll-LL install
50 # Generate PO files from all POT files in POOUTDIR for locale LOCALE
52 @pot2po $(PROGRESS) -i $(POTSRC) -o $(POOUTDIR)/$(LOCALE)
53 @echo "Generated new PO files for locale $(LOCALE)"
55 # Generate a new set of POT files and entityized fieldmapper IDL
56 newpot: dtds2pot fmidl2pot fmidl2fmidlent ils2pot props2pot sql2pot dojo2pot
57 @echo "Generated new POT files"
59 # Generate DTD, JavaScript message catalogs, fieldmapper IDL,
60 # and SQL insert files from PO for locale LOCALE
61 project: po2dtds po2props po2sql fmidlpo2entity po2ils po2dojo
62 @echo "Generated project files for locale $(LOCALE)"
64 # Update PO files with new and changed strings from POT files
66 pot2po $(PROGRESS) -o $(POOUTDIR)/$(LOCALE) -i $(POTSRC) -t $(POOUTDIR)/$(LOCALE) 2>&1
67 @echo "Updated PO files for locale $(LOCALE)"
69 # Update PO files with new and changed strings from POT files
71 @msgmerge -U $(POOUTDIR)/$(LOCALE)/opac.dtd.po $(POTSRC)/opac.dtd.pot 2>&1
72 @echo "Updated PO file opac.dtd.po for locale $(LOCALE)"
75 @moz2po $(PROGRESS) -o $(POOUTDIR)/$(LOCALE) -i $(DTDDIR)/en-US/ 2>&1
78 @moz2po $(PROGRESS) -o $(POOUTDIR)/$(LOCALE) -i $(CHROME_PROPSDIR)/en-US/ 2>&1
79 @moz2po $(PROGRESS) -o $(POOUTDIR)/$(LOCALE) -i $(SERVER_PROPSDIR)/en-US/ 2>&1
82 @moz2po -P $(PROGRESS) -o $(POTSRC) -i $(DTDDIR)/en-US/ 2>&1
85 @scripts/dojo_resource.py --pot $(DOJO_CON_SRC)/aou.js --output $(POTSRC)/conify.aou.pot
86 @scripts/dojo_resource.py --pot $(DOJO_CON_SRC)/aout.js --output $(POTSRC)/conify.aout.pot
87 @scripts/dojo_resource.py --pot $(DOJO_CON_SRC)/cam.js --output $(POTSRC)/conify.cam.pot
88 @scripts/dojo_resource.py --pot $(DOJO_CON_SRC)/ccs.js --output $(POTSRC)/conify.ccs.pot
89 @scripts/dojo_resource.py --pot $(DOJO_CON_SRC)/pgt.js --output $(POTSRC)/conify.pgt.pot
90 @scripts/dojo_resource.py --pot $(DOJO_CON_SRC)/ppl.js --output $(POTSRC)/conify.ppl.pot
91 @scripts/dojo_resource.py --pot $(DOJO_RPT_SRC)/reports.js --output $(POTSRC)/dojo_reports.pot
94 @scripts/dojo_resource.py --create $(POINDIR)/$(LOCALE)/conify.aou.po --output $(PROJECT)/$(LOCALE)/conify.aou.js
95 @scripts/dojo_resource.py --create $(POINDIR)/$(LOCALE)/conify.aout.po --output $(PROJECT)/$(LOCALE)/conify.aout.js
96 @scripts/dojo_resource.py --create $(POINDIR)/$(LOCALE)/conify.cam.po --output $(PROJECT)/$(LOCALE)/conify.cam.js
97 @scripts/dojo_resource.py --create $(POINDIR)/$(LOCALE)/conify.ccs.po --output $(PROJECT)/$(LOCALE)/conify.ccs.js
98 @scripts/dojo_resource.py --create $(POINDIR)/$(LOCALE)/conify.pgt.po --output $(PROJECT)/$(LOCALE)/conify.pgt.js
99 @scripts/dojo_resource.py --create $(POINDIR)/$(LOCALE)/conify.ppl.po --output $(PROJECT)/$(LOCALE)/conify.ppl.js
100 @scripts/dojo_resource.py --create $(POINDIR)/$(LOCALE)/dojo_reports.po --output $(PROJECT)/$(LOCALE)/reports.js
103 @scripts/ils_events.py --pot $(EVTSRC) --output $(POTSRC)/$(EVTOUT)
106 @scripts/ils_events.py --create $(POINDIR)/$(LOCALE)/$(EVTPO) --locale $(LOCALE) --output $(PROJECT)/$(LOCALE)/$(EVTXML)
109 @moz2po -P $(PROGRESS) -o $(POTSRC) -i $(CHROME_PROPSDIR)/en-US/ 2>&1
110 @moz2po -P $(PROGRESS) -o $(POTSRC) -i $(SERVER_PROPSDIR)/en-US/ 2>&1
113 @po2moz $(PROGRESS) -o $(PROJECT)/$(LOCALE) -t $(DTDDIR)/en-US/ -i $(POINDIR)/$(LOCALE) 2>&1
116 @po2moz $(PROGRESS) -o $(PROJECT)/$(LOCALE) -t $(CHROME_PROPSDIR)/en-US/ -i $(POINDIR)/$(LOCALE) 2>&1
117 @po2moz $(PROGRESS) -o $(PROJECT)/$(LOCALE) -t $(SERVER_PROPSDIR)/en-US/ -i $(POINDIR)/$(LOCALE) 2>&1
120 @scripts/db-seed-i18n.py --pot $(SQLSRCDIR)/$(SQLSRCFILE) --output $(POTSRC)/$(SQLPOT)
123 scripts/db-seed-i18n.py --sql $(POINDIR)/$(LOCALE)/$(SQLPO) --locale $(LOCALE) --output $(PROJECT)/$(LOCALE)/$(SQLOUT).sql
125 # Generate a fieldmapper IDL file that uses entities instead of hard-coded strings
127 @scripts/fieldmapper.py --convert $(FMIDLSRC) --output $(POOUTDIR)/$(FMIDLENT)
129 # Generate a POT file for translating the entity values
131 @scripts/fieldmapper.py --pot $(FMIDLSRC) --output $(POTSRC)/$(FMIDLOUT)
133 # Generate a set of entity declarations from a PO file
135 @scripts/fieldmapper.py --entity $(POINDIR)/$(LOCALE)/$(FMIDLPO) --output $(PROJECT)/$(LOCALE)/$(FMIDLENTITY)
137 # Generate en-US DTD from a POT file; required if any other locale is installed
139 mkdir -p $(PROJECT)/en-US
140 @scripts/fieldmapper.py --entity $(POINDIR)/en-US/$(FMIDLOUT) --output $(PROJECT)/en-US/$(FMIDLENTITY)
141 cp $(PROJECT)/en-US/$(FMIDLENTITY) $(DTDDIR)/en-US/
143 # Install updated project files to their corresponding location in the source tree
144 install: updatepo project fmidl2fmidlent fmidlpo2entity-en
145 mkdir -p $(CHROME_PROPSDIR)/$(LOCALE)
146 cp $(PROJECT)/$(LOCALE)/auth.properties $(CHROME_PROPSDIR)/$(LOCALE)/.
147 cp $(PROJECT)/$(LOCALE)/offline.properties $(CHROME_PROPSDIR)/$(LOCALE)/.
148 mkdir -p $(SERVER_PROPSDIR)/$(LOCALE)
149 cp $(PROJECT)/$(LOCALE)/admin.properties $(SERVER_PROPSDIR)/$(LOCALE)/.
150 cp $(PROJECT)/$(LOCALE)/cat.properties $(SERVER_PROPSDIR)/$(LOCALE)/.
151 cp $(PROJECT)/$(LOCALE)/circ.properties $(SERVER_PROPSDIR)/$(LOCALE)/.
152 cp $(PROJECT)/$(LOCALE)/common.properties $(SERVER_PROPSDIR)/$(LOCALE)/.
153 cp $(PROJECT)/$(LOCALE)/multiclass_search_help.html $(SERVER_PROPSDIR)/$(LOCALE)/.
154 cp $(PROJECT)/$(LOCALE)/patron.properties $(SERVER_PROPSDIR)/$(LOCALE)/.
155 mkdir -p $(DTDDIR)/$(LOCALE)
156 cp $(PROJECT)/$(LOCALE)/conify.dtd $(DTDDIR)/$(LOCALE)/
157 cp $(PROJECT)/$(LOCALE)/lang.dtd $(CHROME_PROPSDIR)/$(LOCALE)/
158 cp $(PROJECT)/$(LOCALE)/lang.dtd $(DTDDIR)/$(LOCALE)/
159 cp $(PROJECT)/$(LOCALE)/opac.dtd $(DTDDIR)/$(LOCALE)/
160 cp $(PROJECT)/$(LOCALE)/vandelay.dtd $(DTDDIR)/$(LOCALE)/
161 cp $(PROJECT)/$(LOCALE)/$(FMIDLENTITY) $(DTDDIR)/$(LOCALE)/
162 @scripts/merge_ils_events.py --master $(EVTSRC) --localization $(PROJECT)/$(LOCALE)/$(EVTXML) --output $(EVTSRC)
163 cp $(PROJECT)/$(LOCALE)/$(SQLOUT).sql $(SQLSRCDIR)/$(SQLOUT)-$(LOCALE).sql
164 cp $(POOUTDIR)/$(FMIDLENT) $(REPORTDIR)/$(FMIDLENT)
165 mkdir -p $(DOJO_CON_SRC)/$(DOJO_LOCALE)
166 cp $(PROJECT)/$(LOCALE)/conify.aou.js $(DOJO_CON_SRC)/$(DOJO_LOCALE)/aou.js
167 cp $(PROJECT)/$(LOCALE)/conify.aout.js $(DOJO_CON_SRC)/$(DOJO_LOCALE)/aout.js
168 cp $(PROJECT)/$(LOCALE)/conify.cam.js $(DOJO_CON_SRC)/$(DOJO_LOCALE)/cam.js
169 cp $(PROJECT)/$(LOCALE)/conify.ccs.js $(DOJO_CON_SRC)/$(DOJO_LOCALE)/ccs.js
170 cp $(PROJECT)/$(LOCALE)/conify.pgt.js $(DOJO_CON_SRC)/$(DOJO_LOCALE)/pgt.js
171 cp $(PROJECT)/$(LOCALE)/conify.ppl.js $(DOJO_CON_SRC)/$(DOJO_LOCALE)/ppl.js
172 mkdir -p $(DOJO_RPT_SRC)/$(DOJO_LOCALE)
173 cp $(PROJECT)/$(LOCALE)/reports.js $(DOJO_RPT_SRC)/$(DOJO_LOCALE)/reports.js