-
-
Notifications
You must be signed in to change notification settings - Fork 5.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
patch 8.0.0734: the script to check translations can be improved
Problem: The script to check translations can be improved. Solution: Restore the view when no errors are found. Check for matching line break at the end of the message. (Christian Brabandt)
- Loading branch information
Showing
2 changed files
with
39 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -35,6 +35,7 @@ let s:save_wrapscan = &wrapscan | |
set nowrapscan | ||
|
||
" Start at the first "msgid" line. | ||
let wsv = winsaveview() | ||
1 | ||
/^msgid\> | ||
|
||
|
@@ -110,7 +111,43 @@ if search('msgid "\("\n"\)\?\([EW][0-9]\+:\).*\nmsgstr "\("\n"\)\?[^"]\@=\2\@!') | |
endif | ||
endif | ||
|
||
func! CountNl(first, last) | ||
let nl = 0 | ||
for lnum in range(a:first, a:last) | ||
if getline(lnum) =~ '\\n' | ||
let nl += 1 | ||
endif | ||
endfor | ||
return nl | ||
endfunc | ||
|
||
" Check that the \n at the end of the msid line is also present in the msgstr | ||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong.
brammool
via email
Author
Contributor
|
||
" line. Skip over the header. | ||
/^"MIME-Version: | ||
while 1 | ||
let lnum = search('^msgid\>') | ||
if lnum <= 0 | ||
break | ||
endif | ||
let strlnum = search('^msgstr\>') | ||
let end = search('^$') | ||
if end <= 0 | ||
let end = line('$') + 1 | ||
endif | ||
let origcount = CountNl(lnum, strlnum - 1) | ||
let transcount = CountNl(strlnum, end - 1) | ||
" Allow for a few more or less line breaks when there are 2 or more | ||
if origcount != transcount && (origcount <= 2 || transcount <= 2) | ||
echomsg 'Mismatching "\\n" in line ' . line('.') | ||
if error == 0 | ||
let error = lnum | ||
endif | ||
endif | ||
endwhile | ||
|
||
if error == 0 | ||
" If all was OK restore the view. | ||
call winrestview(wsv) | ||
echomsg "OK" | ||
else | ||
exe error | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
typo found.
s/msid/msgid/