summaryrefslogtreecommitdiff
path: root/src/po/check.vim
diff options
context:
space:
mode:
Diffstat (limited to 'src/po/check.vim')
-rw-r--r--src/po/check.vim19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/po/check.vim b/src/po/check.vim
index 50ed9a40f..abe999a4f 100644
--- a/src/po/check.vim
+++ b/src/po/check.vim
@@ -1,7 +1,8 @@
" Vim script for checking .po files.
"
-" Go through the file and verify that all %...s items in "msgid" are identical
-" to the ones in "msgstr".
+" Go through the file and verify that:
+" - All %...s items in "msgid" are identical to the ones in "msgstr".
+" - An error or warning code in "msgid" matches the one in "msgstr".
if 1 " Only execute this if the eval feature is available.
@@ -56,6 +57,20 @@ while 1
endif
endwhile
+" Check that error code in msgid matches the one in msgstr.
+"
+" Examples of mismatches found with msgid "E123: ..."
+" - msgstr "E321: ..." error code mismatch
+" - msgstr "W123: ..." warning instead of error
+" - msgstr "E123 ..." missing colon
+" - msgstr "..." missing error code
+"
+1
+if search('msgid "\("\n"\)\?\([EW][0-9]\+:\).*\nmsgstr "\("\n"\)\?[^"]\@=\2\@!') > 0
+ echo 'Mismatching error/warning code in line ' . line('.')
+ let error = 1
+endif
+
if error == 0
echo "OK"
endif