diff --git a/scripts/set-priorities b/scripts/set-priorities
new file mode 100755
index 0000000000000000000000000000000000000000..ee31d9be5ddf8a3d9d016abc791eb1a0a2772900
--- /dev/null
+++ b/scripts/set-priorities
@@ -0,0 +1,67 @@
+#!/usr/bin/python3
+
+import polib
+import sys
+
+SECTIONS = {300: ["en/git-init.txt",
+                  "en/git-clone.txt",
+                  "en/urls.txt",
+                  "en/git-add.txt"],
+            280: ["en/git-status.txt",
+                  "en/git-diff.txt",
+                  "en/diff-options.txt",
+                  "en/diff-format.txt",
+                  "en/git-commit.txt",
+                  "en/date-formats.txt",
+                  "en/i18n.txt",
+                  "en/git-reset.txt",
+                  "en/git-rm.txt",
+                  "en/git-mv.txt"],
+            260: ["en/git-show.txt",
+                  "en/pretty-options.txt",
+                  "en/pretty-formats.txt",
+                  "en/diff-generate-patch.txt",
+                  "en/git-log.txt",
+                  "en/line-range-format",
+                  "en/rev-list-options.txt",
+                  "en/git-shortlog.txt",
+                  "en/mailmap.txt",
+                  "en/git-describe.txt"],
+            240: ["en/git-branch.txt",
+                  "en/git-checkout.txt",
+                  "en/git-merge.txt",
+                  "en/merge-options.txt",
+                  "en/merge-strategies.txt",
+                  "en/config/merge.txt",
+                  "en/config/fmt-merge-msg.txt",
+                  "en/mergetools-merge.txt",
+                  "en/git-mergetool.txt",
+                  "en/git-stash.txt",
+                  "en/git-tag.txt",
+                  "en/git-worktree.txt"],
+            220: ["en/git-fetch.txt",
+                  "en/fetch-options.txt",
+                  "en/pull-fetch-param.txt",
+                  "en/urls-remotes.txt",
+                  "en/transfer-data-leaks.txt",
+                  "en/git-pull.txt",
+                  "en/git-push.txt",
+                  "en/git-remote.txt",
+                  "en/git-submodule.txt"]
+            }
+
+def main (f):
+    po = polib.pofile(f, wrapwidth=0)
+    priorities = dict((source, section) for section in SECTIONS for source in SECTIONS[section])
+    for entry in po:
+      if not entry.obsolete:
+        flags = [f for f in entry.flags if not f.startswith("priority:")]
+        p = max(priorities.get(filename) or 100 for (filename,_) in entry.occurrences)
+        flags.append("priority:{}".format(p))
+        entry.flags = flags
+    po.save(f)
+
+
+if __name__ == '__main__':
+    if len(sys.argv)>1:
+        main(sys.argv[1])