From c175616027277f1a675543913df45c5572310a8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matthias=20A=C3=9Fhauer?= <mha1993@live.de> Date: Sat, 19 Jan 2019 13:42:09 +0100 Subject: [PATCH] pre-translate-po: allow automatic translations of simple recurring phrases MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matthias A횩hauer <mha1993@live.de> --- Makefile | 2 +- po/pre-translate-dictionary.de.po | 25 +++++++++++++++++++++++++ scripts/pre-translate-po | 20 +++++++++++++++++--- 3 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 po/pre-translate-dictionary.de.po diff --git a/Makefile b/Makefile index 755db26..7d6905d 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ EN_SOURCES = $(wildcard en/*.txt) -LANGUAGE_PO = $(wildcard po/*.po) +LANGUAGE_PO = $(wildcard po/documentation.*.po) ALL_LANGUAGES = $(subst po/documentation.,,$(subst .po,,$(LANGUAGE_PO))) L10N_BUILD_TARGETS = all man html install doc-l10n install-l10n install-txt diff --git a/po/pre-translate-dictionary.de.po b/po/pre-translate-dictionary.de.po new file mode 100644 index 0000000..48ef554 --- /dev/null +++ b/po/pre-translate-dictionary.de.po @@ -0,0 +1,25 @@ +# Recurring German translations for Regex Search & Replace in Git Man pages. +# Copyright (C) 2019 Free Software Foundation, Inc. +# This file is distributed under the same license as the Git package. +# Matthias A횩hauer <mha1993@live.de>, 2019 + +msgid "(--[a-zA-Z-]+\[?[=\s]<)path(>\]?)" +msgstr "\1Pfad\2" + +msgid "(-{1,2}[a-zA-Z-]+?[=\s]<)file(>)" +msgstr "\1Datei\2" + +msgid "(-{1,2}[a-zA-Z-]*?\[?[=\s]?<)num(>\]?)" +msgstr "\1Anz\2" + +msgid "(-{1,2}[a-zA-Z-]+?\[?[=\s]<)pattern(>\]?)" +msgstr "\1Muster\2" + +msgid "(--[a-zA-Z-]+?=<)glob-pattern(>)" +msgstr "\1Glob-Muster\2" + +#~ msgid "release notes for ((link:RelNotes/[0-9.]+.txt\[[0-9.]+\][.,]?\s*)+)." +#~ msgstr "Versionshinweise f체r \1." + +#~ msgid "(link:v[0-9.]+/git\.html\[)documentation for release ([0-9.]+\])" +#~ msgstr "\1Dokumentation f체r Version \2." diff --git a/scripts/pre-translate-po b/scripts/pre-translate-po index 533affd..dc5424c 100755 --- a/scripts/pre-translate-po +++ b/scripts/pre-translate-po @@ -4,9 +4,12 @@ import polib import re import sys -def main (f): +def main (f,d=None): po = polib.pofile(f, wrapwidth=0) + if not d is None: + pod=polib.pofile(d) + for entry in po: if (re.fullmatch(r'-[-a-z0-9[\]]+', entry.msgid)) \ or re.fullmatch(r'((linkgit:)?(git[-a-z0-9[\]]+|mail)(\[[157]\]|\([157]\))(,|;)?(\n| )?)+', entry.msgid) \ @@ -16,12 +19,23 @@ def main (f): entry.flags.append("ignore-same") flags = sorted(set(entry.flags)) entry.flags = list(flags) + remove_fuzzy(entry) + elif not d is None: + for entryd in pod: + if re.fullmatch(entryd.msgid, entry.msgid): + entry.msgstr = re.sub(entryd.msgid, entryd.msgstr, entry.msgid) + remove_fuzzy(entry) + + po.save(f) + +def remove_fuzzy (entry): if 'fuzzy' in entry.flags: entry.flags.remove('fuzzy') entry.previous_msgid = None - po.save(f) if __name__ == '__main__': - if len(sys.argv)>1: + if len(sys.argv)>2: + main(sys.argv[1], sys.argv[2]) + elif len(sys.argv)>1: main(sys.argv[1]) -- GitLab