summaryrefslogtreecommitdiffstats
path: root/src/po/cleanup.vim
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/po/cleanup.vim25
1 files changed, 25 insertions, 0 deletions
diff --git a/src/po/cleanup.vim b/src/po/cleanup.vim
new file mode 100644
index 0000000..b27d880
--- /dev/null
+++ b/src/po/cleanup.vim
@@ -0,0 +1,25 @@
+" Vim script to cleanup a .po file:
+" - Remove line numbers (avoids that diffs are messy).
+" - Comment-out fuzzy and empty messages.
+" - Make sure there is a space before the string (required for Solaris).
+" Requires Vim 6.0 or later (because of multi-line search patterns).
+
+" Disable diff mode, because it makes this very slow
+let s:was_diff = &diff
+setl nodiff
+
+" untranslated message preceded by c-format or comment
+silent g/^#, c-format\n#/.d
+silent g/^#\..*\n#/.d
+
+silent g/^#[:~] /d
+silent g/^#, fuzzy\(, .*\)\=\nmsgid ""\@!/.+1,/^$/-1s/^/#\~ /
+silent g/^msgstr"/s//msgstr "/
+silent g/^msgid"/s//msgid "/
+silent g/^msgstr ""\(\n"\)\@!/?^msgid?,.s/^/#\~ /
+
+silent g/^\n\n\n/.d
+
+if s:was_diff
+ setl diff
+endif