]> git.evergreen-ils.org Git - Evergreen.git/blob - build/i18n/Makefile
Add conify bits to the i18n Makefile
[Evergreen.git] / build / i18n / Makefile
1 POTSRC=po/en-US
2 POOUTDIR=po
3 POINDIR=po
4 PROJECT=locale
5 LOCALE=fr-CA
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 DOJOSRC=../../Open-ILS/web/js/dojo/openils/conify/nls
11 FMIDLSRC=../../Open-ILS/examples/fm_IDL.xml
12 FMIDLOUT=fm_IDL.pot
13 FMIDLENT=fm_IDL.xml
14 FMIDLENTITY=fm_IDL.dtd
15 FMIDLPO=fm_IDL.po
16 EVTSRC=../../Open-ILS/src/extras/ils_events.xml
17 EVTOUT=ils_events.xml.pot
18 EVTPO=ils_events.xml.po
19 EVTXML=ils_events.xml
20 REPORTDIR=../../Open-ILS/web/reports/
21 SQLSRCDIR=../../Open-ILS/src/sql/Pg/
22 SQLSRCFILE=950.data.seed-values.sql
23 SQLPOT=db.seed.pot
24 SQLPO=db.seed.po
25 SQLOUT=950.data.seed-values
26 PROGRESS=--progress none
27
28 # This Makefile can be used to generate and update PO files for Evergreen,
29 # as well as generate updated SQL, fieldmapper IDL, DTD and JavaScript
30 # property files from the PO.
31 #
32 # Usage:
33 #
34 # To create a new set of untranslated PO files for locale ll-LL:
35 #   make LOCALE=ll-LL newpo
36 #
37 # To create a new set of POT files from the en-US source:
38 #   make LOCALE=ll-LL newpot
39 #
40 # To update a set of translated PO files with new or changed en-US strings:
41 #   make LOCALE=ll-LL updatepo
42 #
43 # To create a set of translated project files (DTDs, JavaScript message catalogs):
44 #   make LOCALE=ll-LL project
45 #
46 # To install a set of translated project files:
47 #   make LOCALE=ll-LL install
48
49 # Generate PO files from all POT files in POOUTDIR for locale LOCALE
50 newpo: 
51         @pot2po $(PROGRESS) -i $(POTSRC) -o $(POOUTDIR)/$(LOCALE) 
52         @echo "Generated new PO files for locale $(LOCALE)"
53
54 # Generate a new set of POT files and entityized fieldmapper IDL
55 newpot: dtds2pot fmidl2pot fmidl2fmidlent ils2pot props2pot sql2pot dojo2pot
56         @echo "Generated new POT files"
57
58 # Generate DTD, JavaScript message catalogs, fieldmapper IDL,
59 # and SQL insert files from PO for locale LOCALE
60 project: po2dtds po2props po2sql fmidlpo2entity po2ils po2dojo
61         @echo "Generated project files for locale $(LOCALE)"
62
63 # Update PO files with new and changed strings from POT files
64 updatepo: 
65         pot2po $(PROGRESS) -o $(POOUTDIR)/$(LOCALE) -i $(POTSRC) -t $(POOUTDIR)/$(LOCALE) 2>&1
66         @echo "Updated PO files for locale $(LOCALE)"
67
68 # Update PO files with new and changed strings from POT files
69 updateopac: 
70         @msgmerge -U $(POOUTDIR)/$(LOCALE)/opac.dtd.po $(POTSRC)/opac.dtd.pot 2>&1
71         @echo "Updated PO file opac.dtd.po for locale $(LOCALE)"
72
73 dtds2po:
74         @moz2po $(PROGRESS) -o $(POOUTDIR)/$(LOCALE) -i $(DTDDIR)/en-US/ 2>&1
75
76 props2po:
77         @moz2po $(PROGRESS) -o $(POOUTDIR)/$(LOCALE) -i $(CHROME_PROPSDIR)/en-US/ 2>&1
78         @moz2po $(PROGRESS) -o $(POOUTDIR)/$(LOCALE) -i $(SERVER_PROPSDIR)/en-US/ 2>&1
79
80 dtds2pot:
81         @moz2po -P $(PROGRESS) -o $(POTSRC) -i $(DTDDIR)/en-US/ 2>&1
82
83 dojo2pot:
84         @scripts/dojo_resource.py --pot $(DOJOSRC)/aou.js --output $(POTSRC)/conify.aou.pot
85         @scripts/dojo_resource.py --pot $(DOJOSRC)/aout.js --output $(POTSRC)/conify.aout.pot
86         @scripts/dojo_resource.py --pot $(DOJOSRC)/cam.js --output $(POTSRC)/conify.cam.pot
87         @scripts/dojo_resource.py --pot $(DOJOSRC)/ccs.js --output $(POTSRC)/conify.ccs.pot
88
89 po2dojo:
90         @scripts/dojo_resource.py --create $(POINDIR)/$(LOCALE)/conify.aou.po --output $(PROJECT)/$(LOCALE)/conify.aou.js
91         @scripts/dojo_resource.py --create $(POINDIR)/$(LOCALE)/conify.aout.po --output $(PROJECT)/$(LOCALE)/conify.aout.js
92         @scripts/dojo_resource.py --create $(POINDIR)/$(LOCALE)/conify.cam.po --output $(PROJECT)/$(LOCALE)/conify.cam.js
93         @scripts/dojo_resource.py --create $(POINDIR)/$(LOCALE)/conify.ccs.po --output $(PROJECT)/$(LOCALE)/conify.ccs.js
94
95 ils2pot:
96         @scripts/ils_events.py --pot $(EVTSRC) --output $(POTSRC)/$(EVTOUT)
97
98 po2ils:
99         @scripts/ils_events.py --create $(POINDIR)/$(LOCALE)/$(EVTPO) --locale $(LOCALE) --output $(PROJECT)/$(LOCALE)/$(EVTXML) 
100
101 props2pot:
102         @moz2po -P $(PROGRESS) -o $(POTSRC) -i $(CHROME_PROPSDIR)/en-US/ 2>&1
103         @moz2po -P $(PROGRESS) -o $(POTSRC) -i $(SERVER_PROPSDIR)/en-US/ 2>&1
104
105 po2dtds:
106         @po2moz $(PROGRESS) -o $(PROJECT)/$(LOCALE) -t $(DTDDIR)/en-US/ -i $(POINDIR)/$(LOCALE) 2>&1
107
108 po2props:
109         @po2moz $(PROGRESS) -o $(PROJECT)/$(LOCALE) -t $(CHROME_PROPSDIR)/en-US/ -i $(POINDIR)/$(LOCALE) 2>&1
110         @po2moz $(PROGRESS) -o $(PROJECT)/$(LOCALE) -t $(SERVER_PROPSDIR)/en-US/ -i $(POINDIR)/$(LOCALE) 2>&1
111
112 sql2pot:
113         @scripts/db-seed-i18n.py --pot $(SQLSRCDIR)/$(SQLSRCFILE) --output $(POTSRC)/$(SQLPOT)
114
115 po2sql:
116         scripts/db-seed-i18n.py --sql $(POINDIR)/$(LOCALE)/$(SQLPO) --locale $(LOCALE) --output $(PROJECT)/$(LOCALE)/$(SQLOUT).sql
117
118 # Generate a fieldmapper IDL file that uses entities instead of hard-coded strings
119 fmidl2fmidlent:
120         @scripts/fieldmapper.py --convert $(FMIDLSRC) --output $(POOUTDIR)/$(FMIDLENT)
121
122 # Generate a POT file for translating the entity values
123 fmidl2pot:
124         @scripts/fieldmapper.py --pot $(FMIDLSRC) --output $(POTSRC)/$(FMIDLOUT)
125
126 # Generate a set of entity declarations from a PO file
127 fmidlpo2entity:
128         @scripts/fieldmapper.py --entity $(POINDIR)/$(LOCALE)/$(FMIDLPO) --output $(PROJECT)/$(LOCALE)/$(FMIDLENTITY)
129
130 # Install updated project files to their corresponding location in the source tree
131 install: updatepo project fmidl2fmidlent
132         mkdir -p $(CHROME_PROPSDIR)/$(LOCALE)
133         cp $(PROJECT)/$(LOCALE)/auth.properties $(CHROME_PROPSDIR)/$(LOCALE)/.
134         cp $(PROJECT)/$(LOCALE)/offline.properties $(CHROME_PROPSDIR)/$(LOCALE)/.
135         mkdir -p $(SERVER_PROPSDIR)/$(LOCALE)
136         cp $(PROJECT)/$(LOCALE)/admin.properties $(SERVER_PROPSDIR)/$(LOCALE)/.
137         cp $(PROJECT)/$(LOCALE)/cat.properties $(SERVER_PROPSDIR)/$(LOCALE)/.
138         cp $(PROJECT)/$(LOCALE)/circ.properties $(SERVER_PROPSDIR)/$(LOCALE)/.
139         cp $(PROJECT)/$(LOCALE)/common.properties $(SERVER_PROPSDIR)/$(LOCALE)/.
140         cp $(PROJECT)/$(LOCALE)/multiclass_search_help.html $(SERVER_PROPSDIR)/$(LOCALE)/.
141         cp $(PROJECT)/$(LOCALE)/patron.properties $(SERVER_PROPSDIR)/$(LOCALE)/.
142         mkdir -p $(DTDDIR)/$(LOCALE)
143         cp $(PROJECT)/$(LOCALE)/conify.dtd $(DTDDIR)/$(LOCALE)/
144         cp $(PROJECT)/$(LOCALE)/lang.dtd $(CHROME_PROPSDIR)/$(LOCALE)/
145         cp $(PROJECT)/$(LOCALE)/lang.dtd $(DTDDIR)/$(LOCALE)/
146         cp $(PROJECT)/$(LOCALE)/opac.dtd $(DTDDIR)/$(LOCALE)/
147         cp $(PROJECT)/$(LOCALE)/vandelay.dtd $(DTDDIR)/$(LOCALE)/
148         cp $(PROJECT)/$(LOCALE)/$(FMIDLENTITY) $(DTDDIR)/$(LOCALE)/
149         @scripts/merge_ils_events.py --master $(EVTSRC) --localization $(PROJECT)/$(LOCALE)/$(EVTXML) --output $(EVTSRC)
150         cp $(PROJECT)/$(LOCALE)/$(SQLOUT).sql $(SQLSRCDIR)/$(SQLOUT)-$(LOCALE).sql
151         cp $(POOUTDIR)/$(FMIDLENT) $(REPORTDIR)/$(FMIDLENT)
152         mkdir -p $(DOJOSRC)/$(DOJO_LOCALE)
153         cp $(PROJECT)/$(LOCALE)/conify.aou.js $(DOJOSRC)/$(DOJO_LOCALE)/aou.js
154         cp $(PROJECT)/$(LOCALE)/conify.aout.js $(DOJOSRC)/$(DOJO_LOCALE)/aout.js
155         cp $(PROJECT)/$(LOCALE)/conify.cam.js $(DOJOSRC)/$(DOJO_LOCALE)/cam.js
156         cp $(PROJECT)/$(LOCALE)/conify.ccs.js $(DOJOSRC)/$(DOJO_LOCALE)/ccs.js