diff --git a/Makefile b/Makefile
index 755db2678c82577ccbf83e6c51cc6ff27ff46dd9..7d6905d30597aca91003919c8e8c44c7a2d4878e 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 0000000000000000000000000000000000000000..48ef554b0ea293c446a0c2320abe20474effd538
--- /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 533affdc292c3b8a15074afac84f75a9d49a9d91..dc5424cc8d10988d5a2a9060362de81a511102b0 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])