All translations: same <title> and keywords for all pages.
[enc.git] / Makefile
CommitLineData
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
21PO4A_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
26SRC=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.
43esd-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
59DIR=en
60# and the list of files that were translated within the corresponding
61# version
62FILES=$(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?
76esd-%.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.
85esd-%.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.