diff options
author | Michael Tänzer <neo@nhng.de> | 2012-01-26 20:46:40 +0100 |
---|---|---|
committer | Michael Tänzer <neo@nhng.de> | 2012-01-26 20:46:40 +0100 |
commit | f6129590b312f0b6b680f6085ff15f1d41c70691 (patch) | |
tree | 5da0a76fbdd0ec7238017904659a90b35d5b93f7 /locale/Makefile | |
parent | 368dec24f64435048650b07eee0264a7fdc41399 (diff) | |
download | cacert-devel-f6129590b312f0b6b680f6085ff15f1d41c70691.tar.gz cacert-devel-f6129590b312f0b6b680f6085ff15f1d41c70691.tar.xz cacert-devel-f6129590b312f0b6b680f6085ff15f1d41c70691.zip |
Source code taken from cacert-20120125.tar.bz2
Diffstat (limited to 'locale/Makefile')
-rw-r--r-- | locale/Makefile | 184 |
1 files changed, 184 insertions, 0 deletions
diff --git a/locale/Makefile b/locale/Makefile new file mode 100644 index 0000000..b703fb2 --- /dev/null +++ b/locale/Makefile @@ -0,0 +1,184 @@ +# +# 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)/ }' \ + > $@ + |