On Tue, Aug 3, 2010 at 5:39 PM, Bram Moolenaar <[email protected]> wrote: > > Jakson A. Aquino wrote: > >> When running diff without options, removed lines are separated of >> added ones by '^---$'. This pattern gets interpreted as diffRemoved >> when it is not. I think the pattern can be classified as diffLine. If >> I'm not interpreting it wrongly the attached patch fix this tiny bug. > > Yeah, diffRemoved is not right, I'll include the change. > >> Locale problem: The diff in languages other than English may generate >> output that doesn't match the patterns for diffOnly, diffDiffer, etc. >> because diff messages get translated in some languages. To fix this >> for my locale (pt_BR.UTF-8) I've put in my >> ~/.vim/after/syntax/diff.vim the following lines: >> >> syn match diffOnly "^[A-Z].*" >> syn match diffIdentical "^[A-Z].*" >> syn match diffDiffer "^[A-Z].*" >> syn match diffBDiffer "^[A-Z].*" >> syn match diffIsA "^[A-Z].*" >> syn match diffNoEOL "^[A-Z].*" >> syn match diffCommon "^[A-Z].*" >> >> I repeated the same pattern because sometimes I use the terminal >> emulator in English and the above patterns will still be fine. A more >> general solution would be to define the above syntax elements first >> using the pattern "^\S.*" and, then, define the other syntax elements. >> This approach would have at least one shortcoming: the distinction >> between diffOnly, diffidentical, etc. would be lost. > > But using the same pattern will mean one of them wins, you can leave out > all the others. > > I think the only real solution would be to include the translations. > I found the German one, but most others result in English for me. > > syn match diffOnly "^Only in .*" > syn match diffOnly "^Nur in .*"
One problem of using translations is that it will be necessary to track them because they may change. For example, "apenas" and "somente" are both Portuguese translations for "only". The first one is used in Ubuntu 10.04 and the second in Debian unstable. Ubuntu and Debian currently carry different versions of the package diffutils. I wrote the script getStrings.sh to automatically get the strings out of .po files. Then I manually edited the output with Vim and added the result to syntax/diff.vim. For Portuguese, I manually added the other translation to "Only". Were you thinking in something like this? I retrieved the translations of the attached diff.vim from the Debian unstable package of diffutils (version 3.0). There are translations for the following locales: ca cs da de el eo es fi fr ga gl he hu id it ja lv ms nl pl pt_BR ro ru sr sv tr uk vi zh_CN zh_TW I attached the getStrings and vim.diff files. Best regards, Jakson Aquino -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php
diff.vim
Description: Binary data
getStrings.sh
Description: Bourne shell script
