summaryrefslogtreecommitdiffstats
path: root/src/po/cleanup.vim
diff options
context:
space:
mode:
Diffstat (limited to 'src/po/cleanup.vim')
-rw-r--r--src/po/cleanup.vim34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/po/cleanup.vim b/src/po/cleanup.vim
new file mode 100644
index 0000000..1af188a
--- /dev/null
+++ b/src/po/cleanup.vim
@@ -0,0 +1,34 @@
+" 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
+
+" c-format comments have no effect, the check.vim scripts checks it.
+" But they might still be useful?
+" silent g/^#, c-format$/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/^/#\~ /
+
+" Comments only useful for the translator
+silent g/^#\. /d
+
+" clean up empty lines
+silent g/^\n\n\n/.d
+silent! %s/\n\+\%$//
+
+if s:was_diff
+ setl diff
+endif