Commit | Line | Data |
---|---|---|
5b824516 TS |
1 | # This source code is released in public domain. |
2 | ||
3 | # Author Tomas Stary (2016) <tomichec@gmail.com> | |
380f711a | 4 | # Thanks for helpful discussion to Thérèse Godefroy |
5b824516 | 5 | |
b121008a TS |
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. | |
10 | ||
11 | # Please read the manual on the page: | |
12 | # http://dev.man-online.org/man7/po4a/ | |
13 | ||
14 | # This Makefile only contains commands from the manual tested for the | |
15 | # esd translation. | |
16 | ||
17 | # After the translation of the PO file has been finished, generate new | |
18 | # files using: make -f Makefile.gen | |
19 | ||
20 | # flags for the po4a-getextize | |
a8687551 TS |
21 | PO4A_FLAGS=-M utf-8 -f xhtml -o porefs=none \ |
22 | -o 'untranslated=<script>' \ | |
23 | -o 'attributes=<meta>content' \ | |
a8687551 | 24 | |
b121008a TS |
25 | # list of source files for the translation |
26 | SRC=confirmation.html\ | |
27 | index.html\ | |
28 | infographic.html\ | |
29 | mac.html\ | |
30 | next_steps.html\ | |
31 | windows.html\ | |
32 | workshops.html | |
33 | ||
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). | |
40 | ||
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 $@ | |
45 | ||
46 | ############################################################ | |
47 | # Convert existing translations into PO files. | |
48 | ||
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) | |
52 | ||
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 | |
56 | # parameter -m). | |
57 | ||
58 | # for that specify the directory where the original files are placed | |
59 | DIR=en | |
60 | # and the list of files that were translated within the corresponding | |
61 | # version | |
62 | FILES=$(SRC) | |
63 | ||
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. | |
70 | ||
380f711a | 71 | # Don't give up. Translating PO files is nicer. |
b121008a TS |
72 | |
73 | # For more details and troubleshooting see: | |
380f711a | 74 | # https://po4a.org/man/man7/po4a.7.php |
b121008a TS |
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 $@` | |
79 | ||
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) | |
86 | cp $< $@ | |
ffac1b0f TG |
87 | po4a-updatepo $(PO4A_FLAGS) $(foreach f,$(SRC),-m en/$f) -p $@; \ |
88 | ./gnun-add-fuzzy-diff $@ > $< | |
a8687551 | 89 | |
380f711a TG |
90 | # gnun-add-fuzzy-diff (from the GNUN package) is very useful to locate |
91 | # a change within a string. |