Mercurial > p > roundup > code
annotate locale/Makefile @ 7422:7d1df030b22f
Add merge action; make template depend on source files
template used to be a command that always ran. Now it only runs if a
file it gets strings from is changed.
Other changes to reduce duplication and use make like it should be
used.
| author | John Rouillard <rouilj@ieee.org> |
|---|---|
| date | Thu, 25 May 2023 21:32:11 -0400 |
| parents | c23967387bf6 |
| children | b54653a182a9 |
| rev | line source |
|---|---|
|
2330
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
1 # Extract translatable strings from Roundup sources, |
|
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
2 # update and compile all existing translations |
|
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
3 |
|
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
4 # tool locations |
|
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
5 XPOT ?= xpot |
|
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
6 MSGFMT ?= msgfmt |
|
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
7 MSGMERGE ?= msgmerge |
|
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
8 XGETTEXT ?= xgettext |
|
6609
b6452b669720
Updates, python3, hg diff, add target doc, add pytest target
John Rouillard <rouilj@ieee.org>
parents:
6483
diff
changeset
|
9 PYTHON ?= python3 |
|
2330
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
10 |
|
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
11 TEMPLATE=roundup.pot |
|
2306
1421b19cd61b
build message template file
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
12 |
|
4094
5a9631828e33
update message template file building:
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3761
diff
changeset
|
13 PACKAGES=$(shell find ../roundup ../share/roundup/templates -name '*.py' \ |
|
3761
800bc51a9c8e
add template directories to the list of Python packages for message extraction
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3593
diff
changeset
|
14 | sed -e 's,/[^/]*$$,,' | sort | uniq) |
|
2330
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
15 SOURCES=$(PACKAGES:=/*.py) |
|
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
16 PO_FILES=$(wildcard *.po) |
|
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
17 MO_FILES=$(PO_FILES:.po=.mo) |
|
7419
dce8f7799ecb
locale's 'make template' now works without having to do a build first.
John Rouillard <rouilj@ieee.org>
parents:
7402
diff
changeset
|
18 RUN_PYTHON=PYTHONPATH=.. $(PYTHON) -O |
|
2330
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
19 |
|
2455
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
20 all: dist |
|
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
21 |
|
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
22 help: |
|
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
23 @echo "$(MAKE) - build MO files. Run this before sdist" |
|
6618
ebd8f962fbf1
Fix make help. Missing close quotes.
John Rouillard <rouilj@ieee.org>
parents:
6609
diff
changeset
|
24 @echo "$(MAKE) dist - same as above" |
|
2455
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
25 @echo "$(MAKE) template - update message template from sources" |
|
7422
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
26 @echo "$(MAKE) merge - merge template into *.po files" |
|
6609
b6452b669720
Updates, python3, hg diff, add target doc, add pytest target
John Rouillard <rouilj@ieee.org>
parents:
6483
diff
changeset
|
27 @echo "$(MAKE) diff - see template differences in vi" |
| 7052 | 28 @echo "$(MAKE) potest - check .po files for errors" |
|
6618
ebd8f962fbf1
Fix make help. Missing close quotes.
John Rouillard <rouilj@ieee.org>
parents:
6609
diff
changeset
|
29 @echo "$(MAKE) pytest - create locale files to run pytest" |
|
2455
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
30 @echo "$(MAKE) locale.po - update message file from template" |
|
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
31 @echo "$(MAKE) locale.mo - compile individual message file" |
|
6618
ebd8f962fbf1
Fix make help. Missing close quotes.
John Rouillard <rouilj@ieee.org>
parents:
6609
diff
changeset
|
32 @echo "$(MAKE) help - this text" |
|
7422
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
33 @echo "" |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
34 @echo "Running make dist is the same as: make template merge dist" |
|
2330
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
35 |
|
2455
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
36 # This will rebuild all MO files without updating their corresponding PO |
|
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
37 # files first. Run before creating Roundup distribution (hence the name). |
|
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
38 # PO files should be updated by their translators only, automatic update |
|
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
39 # adds unwanted fuzzy labels. |
|
7422
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
40 dist: $(MO_FILES) |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
41 |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
42 template: roundup.pot |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
43 |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
44 pytest local_install: dist |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
45 for file in $(MO_FILES); do \ |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
46 lang=`basename $$file .mo`; \ |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
47 mkdir -p locale/$$lang/LC_MESSAGES; \ |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
48 cp $$file locale/$$lang/LC_MESSAGES/roundup.mo; \ |
|
2455
ece6ed48dd3d
by default, build binary message catalogs only...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2384
diff
changeset
|
49 done |
|
2306
1421b19cd61b
build message template file
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
diff
changeset
|
50 |
|
7422
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
51 # helps to check template file before check in |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
52 diff: |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
53 hg cat roundup.pot | diff -u -I '^\#: \.\./roundup.*$$' \ |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
54 -I '^#:\s*:[0-9]*.*$$' \ |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
55 - roundup.pot || exit 0 |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
56 merge: $(PO_FILES) |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
57 |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
58 potest: |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
59 sh -c 'for file in $(PO_FILES); do \ |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
60 ${MSGFMT} -cv --statistics $$file; \ |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
61 done' 2>&1 | sort -k 2,2n |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
62 |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
63 %.po: $(TEMPLATE) |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
64 @echo "Rebuild $@" |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
65 @${MSGMERGE} -U --suffix=.bak $@ $< |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
66 @# update Project-Id-Version to match roundup.pot |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
67 @VER="`sed -ne \"/__version__/s/.*'\(.*\)'.*/\1/p\" \ |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
68 ../roundup/__init__.py`"; \ |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
69 sed -i -e \ |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
70 "s/^\(\"Project-Id-Version: Roundup\).*/\1 $${VER}\\\\n\"/" $@ |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
71 |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
72 %.mo: %.po |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
73 ${MSGFMT} -o $@ $< |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
74 |
|
7d1df030b22f
Add merge action; make template depend on source files
John Rouillard <rouilj@ieee.org>
parents:
7421
diff
changeset
|
75 roundup.pot: $(SOURCES) $(TEMPLATES) |
|
7420
eef12ab01f51
filter output of xpot. decorators not recognized
John Rouillard <rouilj@ieee.org>
parents:
7419
diff
changeset
|
76 ${XPOT} -n -o $(TEMPLATE) $(SOURCES) 2>&1 | sed -e "/: Unexpected in Python source: #64 \`@'/d" |
|
6222
2c0f7f16ce04
Check that build link is present otherwise abort.
John Rouillard <rouilj@ieee.org>
parents:
4570
diff
changeset
|
77 |
|
2459
fd04f41ab988
fix: 'template' target was meant to make 'roundup.pot' file
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2455
diff
changeset
|
78 ${RUN_PYTHON} ../roundup/cgi/TAL/talgettext.py -u $(TEMPLATE) \ |
|
4094
5a9631828e33
update message template file building:
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
3761
diff
changeset
|
79 ../share/roundup/templates/classic/html/*.html \ |
|
6405
a21b574554c3
extract translatable strings from devel and responsive templates
John Rouillard <rouilj@ieee.org>
parents:
6222
diff
changeset
|
80 ../share/roundup/templates/devel/html/*.html \ |
|
a21b574554c3
extract translatable strings from devel and responsive templates
John Rouillard <rouilj@ieee.org>
parents:
6222
diff
changeset
|
81 ../share/roundup/templates/minimal/html/*.html \ |
|
a21b574554c3
extract translatable strings from devel and responsive templates
John Rouillard <rouilj@ieee.org>
parents:
6222
diff
changeset
|
82 ../share/roundup/templates/responsive/html/*.html |
|
6672
01216187a167
Testing translations in mailgw.py, update translations, i18n improved
John Rouillard <rouilj@ieee.org>
parents:
6618
diff
changeset
|
83 VERSION="`sed -ne \"/__version__/s/.*'\(.*\)'.*/\1/p\" \ |
|
7419
dce8f7799ecb
locale's 'make template' now works without having to do a build first.
John Rouillard <rouilj@ieee.org>
parents:
7402
diff
changeset
|
84 ../roundup/__init__.py`"; \ |
|
2330
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
85 ${XGETTEXT} -j -w 80 -F \ |
|
6672
01216187a167
Testing translations in mailgw.py, update translations, i18n improved
John Rouillard <rouilj@ieee.org>
parents:
6618
diff
changeset
|
86 --package-name=Roundup \ |
|
01216187a167
Testing translations in mailgw.py, update translations, i18n improved
John Rouillard <rouilj@ieee.org>
parents:
6618
diff
changeset
|
87 --package-version=$$VERSION \ |
|
2330
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
88 --msgid-bugs-address=roundup-devel@lists.sourceforge.net \ |
|
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
89 --copyright-holder="See Roundup README.txt" \ |
|
2459
fd04f41ab988
fix: 'template' target was meant to make 'roundup.pot' file
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2455
diff
changeset
|
90 -o $(TEMPLATE) $(SOURCES) |
|
2330
8ae58eda9331
in addition to xpot...
Alexander Smishlajev <a1s@users.sourceforge.net>
parents:
2306
diff
changeset
|
91 |
