2679d75dfc
"Move from translingo to pootle"
184 lines
3.9 KiB
Makefile
184 lines
3.9 KiB
Makefile
#
|
|
# This Makefile will download the translations from our translation server (if
|
|
# they don't exist yet) and compile them. Try target help for more information
|
|
#
|
|
|
|
################################################################################
|
|
### Download ###
|
|
################################################################################
|
|
|
|
DOWNLOAD_SERVER := translations.cacert.org
|
|
PO_URL_TEMPLATE := http://$(DOWNLOAD_SERVER)/export/cacert/%/messages.po
|
|
|
|
# Only use languages that have 10% or more of translated strings
|
|
AUTO_LANGS := \
|
|
en \
|
|
de \
|
|
nl \
|
|
pt_BR \
|
|
fr \
|
|
sv \
|
|
it \
|
|
es \
|
|
hu \
|
|
fi \
|
|
ja \
|
|
bg \
|
|
pt \
|
|
da \
|
|
pl \
|
|
zh_CN \
|
|
ru \
|
|
lv \
|
|
cs \
|
|
zh_TW \
|
|
el \
|
|
tr \
|
|
ar \
|
|
|
|
LANGS := \
|
|
ar \
|
|
bg \
|
|
cs \
|
|
da \
|
|
de \
|
|
el \
|
|
en \
|
|
es \
|
|
fa \
|
|
fi \
|
|
fr \
|
|
he \
|
|
hr \
|
|
hu \
|
|
id \
|
|
is \
|
|
it \
|
|
ja \
|
|
ka \
|
|
ko \
|
|
lv \
|
|
nb \
|
|
nl \
|
|
pl \
|
|
pt \
|
|
pt_BR \
|
|
ro \
|
|
ru \
|
|
sl \
|
|
sv \
|
|
th \
|
|
tr \
|
|
uk \
|
|
zh_CN \
|
|
zh_TW \
|
|
|
|
|
|
PO_FILE_TEMPLATE := %/messages.po
|
|
MO_FILE_TEMPLATE := %/LC_MESSAGES/messages.mo
|
|
|
|
|
|
# target: all - Build locales downloading po files
|
|
.PHONY: all
|
|
all: $(AUTO_LANGS)
|
|
|
|
|
|
# target: help - Display callable targets
|
|
.PHONY: help
|
|
help:
|
|
@egrep "^# target:" [Mm]akefile
|
|
|
|
|
|
# target: clean - remove the build directories
|
|
RM := rm -rf
|
|
.PHONY: clean
|
|
clean:
|
|
-$(RM) $(LANGS:%=%/)
|
|
|
|
|
|
# target: <lang> - build this particular language
|
|
.PHONY: $(LANGS)
|
|
$(LANGS): %: $(MO_FILE_TEMPLATE)
|
|
|
|
|
|
$(LANGS:%=$(MO_FILE_TEMPLATE)): $(MO_FILE_TEMPLATE): $(PO_FILE_TEMPLATE)
|
|
mkdir -p $(@D)
|
|
#filter obsolete translations
|
|
grep --invert-match '^#~ ' $< | \
|
|
msgfmt --check --output-file $@ -
|
|
|
|
|
|
.PHONY: $(LANGS:%=$(PO_FILE_TEMPLATE))
|
|
$(LANGS:%=$(PO_FILE_TEMPLATE)):
|
|
mkdir -p $(@D)
|
|
wget --output-document - '$(@:$(PO_FILE_TEMPLATE)=$(PO_URL_TEMPLATE))' | \
|
|
# convert UTF-8 characters to HTML entities \
|
|
php -r 'while (!feof(STDIN)) echo mb_convert_encoding(fgets(STDIN), "HTML-ENTITIES", "UTF-8");' \
|
|
> $@
|
|
|
|
|
|
|
|
|
|
################################################################################
|
|
### Upload ###
|
|
################################################################################
|
|
|
|
UPLOAD_SERVER := $(DOWNLOAD_SERVER)
|
|
SSH_USER := critical
|
|
SSH_OPTIONS :=
|
|
SCP_OPTIONS := $(SSH_OPTIONS)
|
|
|
|
FILE_OWNER := www-data
|
|
|
|
POT_UPLOAD_PATH := /var/www/Pootle/po/cacert/templates/messages.pot
|
|
MANAGE_PY := /var/www/Pootle/manage.py
|
|
|
|
VERSION := Production
|
|
DESCRITPION := LibreSSL - CAcert web application (localisation files)
|
|
COPYRIGHT_YEAR := 2004-$(shell date +\%Y)
|
|
PACKAGE := LibreSSL
|
|
|
|
GETTEXT_FILE_PATTERN := \
|
|
../CommModule/client.pl \
|
|
../includes/*.php \
|
|
../includes/*/*.php \
|
|
../pages/*/*.php \
|
|
../scripts/*.php \
|
|
../www/*.php \
|
|
../www/*/*.php \
|
|
# ../tverify/*.php \
|
|
# ../tverify/*/*.php \
|
|
|
|
GETTEXT_FILES := $(wildcard $(GETTEXT_FILE_PATTERN))
|
|
|
|
# target: template - create the gettext template file, if you want to upload it
|
|
# target: onto the translation server you can directly use the
|
|
# target: target "upload"
|
|
.PHONY: template
|
|
template: messages.pot
|
|
|
|
# target: template.clean - remove anything that was created during the build of
|
|
# target: the template file
|
|
.PHONY: template.clean
|
|
template.clean:
|
|
-$(RM) messages.pot
|
|
|
|
|
|
# target: upload - upload the template to the translation server
|
|
.PHONY: upload
|
|
upload: messages.pot
|
|
scp $(SCP_OPTIONS) messages.pot $(SSH_USER)@$(UPLOAD_SERVER):$(POT_UPLOAD_PATH)
|
|
ssh $(SSH_OPTIONS) $(SSH_USER)@$(UPLOAD_SERVER) "sudo -u $(FILE_OWNER) pootle-update cacert"
|
|
|
|
# target: upload.clean - remove anything that was created during the upload
|
|
.PHONY: upload.clean
|
|
upload.clean: template.clean
|
|
|
|
messages.pot: $(GETTEXT_FILES)
|
|
xgettext --output - --sort-by-file --copyright-holder "CAcert Inc." \
|
|
--package-name "CAcert" --package-version "$(VERSION)" \
|
|
--msgid-bugs-address "translations-admin@cacert.org" $^ | \
|
|
# replace place holders in the lines before the first msgid\
|
|
sed '1,/^msgid/ { s/SOME DESCRIPTIVE TITLE/$(DESCRITPION)/; s/YEAR/$(COPYRIGHT_YEAR)/; s/PACKAGE/$(PACKAGE)/ }' \
|
|
> $@
|
|
|