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