7fd5f729a63c982a860e6c32d9acc119b864543b
1 # This source code is released in public domain.
3 # Author Tomas Stary (2016) <tomichec@gmail.com>
4 # Thanks for helpful discussion to Thérèse Godefroy
6 # This is a Makefile to generate the PO files for automated
7 # translation. If you get through the trouble of creating PO file for
8 # your language, you will save a lot of hassles with editing plain html
9 # and repeated text, which also implies potential mistakes.
11 # Please read the manual on the page:
12 # http://dev.man-online.org/man7/po4a/
14 # This Makefile only contains commands from the manual tested for the
17 # After the translation of the PO file has been finished, generate new
18 # files using: make -f Makefile.gen
20 # flags for the po4a-getextize
21 PO4A_FLAGS
=-M utf-8
-f xhtml
-o porefs
=none \
22 -o
'untranslated=<script>' \
23 -o
'attributes=<meta>content' \
25 # list of source files for the translation
26 SRC
=confirmation.html\
34 ############################################################
35 # initialise the po template from English version, this is to be used,
36 # there is no translation for now, and you are going to build it from
37 # scratch. Then copy the file esd-temp.pot to your language file
38 # esd-$(lang).po such as esd-cs.po, and edit it in your favourite PO
39 # editor (such as poedit, or emacs with po-mode).
41 # If you already have an old translation you can convert it to PO
42 # files as described bellow.
43 esd-temp.pot
: $(foreach f
,$(SRC
),en
/$f)
44 po4a-gettextize
$(PO4A_FLAGS
) $(foreach f
,$+,-m
$f) -p
$@
46 ############################################################
47 # Convert existing translations into PO files.
49 # NOTE: You need to make sure that your translated document is formaly
50 # correct xhtml (there might be accidental mistakes).
51 # Validate your document to find errors (e.g. https://validator.w3.org)
53 # IMPORTANT: when you generate the PO files from the existing
54 # translation, the original files in the version *corresponding* to
55 # the translation have to be provided as a command line argument (with
58 # for that specify the directory where the original files are placed
60 # and the list of files that were translated within the corresponding
64 # The generation of the PO file is likely to go wrong, because of the
65 # mistakes which were introduced by the direct translation of the html
66 # files. In this case the po4a gives quite good error message with a
67 # reference in which file and line number to look at to find the
68 # mistake. Go to that file and try to correct the errors and then
69 # repeat the procedure.
71 # Don't give up. Translating PO files is nicer.
73 # For more details and troubleshooting see:
74 # https://po4a.org/man/man7/po4a.7.php
75 # in section: HOWTO convert a pre-existing translation to po4a?
76 esd-
%.po.extract
: $(foreach d
,$(DIR
) %,$(foreach f
,$(FILES
),$d/$f))
77 po4a-gettextize
$(PO4A_FLAGS
) $(foreach f
,$(FILES
),-m
$(DIR
)/$f) $(foreach f
,$(FILES
),-l
$*/$f) -p
$@
78 cp
$@
`basename -s .extract $@`
80 ############################################################
81 # update the PO translation after the original has changed. This will
82 # make a new PO file automaticaly reusing identical translations, but
83 # the strings will be made fuzzy and need to verified manualy. Strings
84 # that changed need to be translated again.
85 esd-
%.po.update
: esd-
%.po
$(foreach f
,$(SRC
),en
/$f)
87 po4a-updatepo
$(PO4A_FLAGS
) $(foreach f
,$(SRC
),-m en
/$f) -p
$@
; \
88 .
/gnun-add-fuzzy-diff
$@
> $<
90 # gnun-add-fuzzy-diff (from the GNUN package) is very useful to locate
91 # a change within a string.