среда, 23 декабря 2015 г.

Qt 5 Linguist: использование Vim для проверки орфографии

Как оказалось в Qt 5.5 Linguist нет встроенного инструмента проверки орфографии в переведённых строках. На помощь приходит Vim.

Если в вашем Vim ещё не включена проверка орфографии, то нужно её включить. Для этого в файл ~/.vimrc пишем
set spell spelllang=ru,en_us

Или можно сделать подобное меню:
set nospell
menu Spell.off :setlocal spell spelllang=<CR<:setlocal nospell<CR>
menu Spell.Russian+English :setlocal spell spelllang=ru,en_us<CR>
menu Spell.Russian :setlocal spell spelllang=ru<CR>
menu Spell.English :setlocal spell spelllang=en_us<CR>
menu Spell.-SpellControl- :
menu Spell.Word\ Suggest<TAB>z= z=
menu Spell.Add\ To\ Dictionary<TAB>zg zg
menu Spell.Add\ To\ TemporaryDictionary<TAB>zG zG
menu Spell.Remove\ From\ Dictionary<TAB>zw zw
menu Spell.Remove\ From\ Temporary\ Dictionary<TAB>zW zW
menu Spell.Previous\ Wrong\ Word<TAB>[s [s
menu Spell.Next\ Wrong\ Word<TAB>]s ]s
map  :emenu Spell.<TAB>

При запуске Vim'а и включении проверки орфографии в первый раз он предложит скачать необходимые файлы словарей.

Теперь, чтобы Vim проверял орфографию только в переведённых строках  файла перевода Qt *.ts, создадим файл синтаксиса ~/.vim/syntax/ts.vim
set filetype=xml
syn region  xmlString contained start=+"+ end=+"+ contains=xmlEntity,@NoSpell display
syn region  xmlString contained start=+'+ end=+'+ contains=xmlEntity,@NoSpell display
syn region   xmlTranslation
  \ start=+<translation>+
  \ end=+</translation>+
  \ matchgroup=xmlEndTag end=+/>+   
  \ fold
  \ contains=xmlTag,xmlEndTag,xmlCdata,xmlRegion,xmlComment,xmlEntity,xmlProcessing,@xmlRegionHook,@Spell
  \ display
  \ keepend
  \ extend

А в .vimrc запишем
au BufRead,BufNewFile *.ts set filetype=ts

Результат в Gvim выглядит следующим образом

Успешных вам переводов!

Комментариев нет:

Отправить комментарий