aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/nvim/po/check.vim17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/nvim/po/check.vim b/src/nvim/po/check.vim
index 086d67a88f..a441a3fee2 100644
--- a/src/nvim/po/check.vim
+++ b/src/nvim/po/check.vim
@@ -157,6 +157,23 @@ if executable("msgfmt")
endif
endif
+" Check that the plural form is properly initialized
+1
+let plural = search('^msgid_plural ', 'n')
+if (plural && search('^"Plural-Forms: ', 'n') == 0) || (plural && search('^msgstr\[0\] ".\+"', 'n') != plural + 1)
+ if search('^"Plural-Forms: ', 'n') == 0
+ echomsg "Missing Plural header"
+ if error == 0
+ let error = search('\(^"[A-Za-z-_]\+: .*\\n"\n\)\+\zs', 'n') - 1
+ endif
+ elseif error == 0
+ let error = plural
+ endif
+elseif !plural && search('^"Plural-Forms: ', 'n')
+ " We allow for a stray plural header, msginit adds one.
+endif
+
+
if error == 0
" If all was OK restore the view.
call winrestview(wsv)