diff options
Diffstat (limited to 'mnv/runtime/spell/sr')
| -rw-r--r-- | mnv/runtime/spell/sr/README_sr.txt | 59 | ||||
| -rw-r--r-- | mnv/runtime/spell/sr/convert.mnv | 30 | ||||
| -rw-r--r-- | mnv/runtime/spell/sr/main.aap | 23 |
3 files changed, 112 insertions, 0 deletions
diff --git a/mnv/runtime/spell/sr/README_sr.txt b/mnv/runtime/spell/sr/README_sr.txt new file mode 100644 index 0000000000..88721bd535 --- /dev/null +++ b/mnv/runtime/spell/sr/README_sr.txt @@ -0,0 +1,59 @@ +The location of source files for Serbian spelling dictionary were downloaded +from https://github.com/LibreOffice/dictionaries/tree/master/sr (Serbian +Spelling and Hyphenation for LibreOffice). + +Here is the content of original README file from the repository: + + "LibreOffice Spelling and Hyphenation + extension package for Serbian (Cyrillic and Latin) + + This extension package includes the Hunspell dictionary and Hyphen + hyphenation patterns for the Serbian language adapted for usage in + LibreOffice. + + Serbian spelling dictionary is developed by Milutin Smiljanic + <msmiljanic.gm@gmail.com> and is released under GNU LGPL version 3 or + later / MPL version 2 or later / GNU GPL version 3 or later, giving + you the choice of one of the three sets of free software licensing + terms. + + Serbian hyphenation patterns are derived from the official TeX + patterns for Serbocroatian language (Cyrillic and Latin) created by + Dejan Muhamedagić, version 2.02 from 22 June 2008 adopted for usage + with Hyphen hyphenation library and released under GNU LGPL version + 2.1 or later." + + +This dictionary used to create MNV spl file is the result of merging the two +LibreOffice dictionaries for cyrillic and latin script. + +The merge was accomplished by concatenating two .dic and .aff files (appending +the latin to cyrillic). + +The first step was to fix both .aff files by adding a '.' at the end of every +SFX and PFX directive and removing directives that are not supported by MNV +(KEY, MIDWORD). + +Next, update the flags in latin .dic and .aff files so that the flag sequence +continues monotonically after the last flag number in cyrillic .aff file. + +A couple of words in cyrillic dict used a latin codepoints for 'a' and 'e', +that was also corrected. + +You should be able to reproduce this with these steps: + * Save the existing sr.aff and sr.dic files, if you have them, they will be + overwritten. + * Create a subfolder "new". + * Put 4 files downloaded from LibreOffice dictionaries GitHub repository in + it: sr.aff, sr-Latn.aff, sr.dic and sr-Latn.dic + * Open MNV and cd into "new" + * Execute: :so ../convert.mnv + * The resulting sr.aff and sr.dic are created in the parent spell folder + (here). + * Now one can generate spl file as usual using the merged dic and aff + files: + env LANG=sr_RS.UTF-8 mnv -u NONE -e -c "set enc=utf-8" -c "mkspell! ../sr sr" -c q + + +Ivan Pešić +28.06.2022. diff --git a/mnv/runtime/spell/sr/convert.mnv b/mnv/runtime/spell/sr/convert.mnv new file mode 100644 index 0000000000..731986e9b0 --- /dev/null +++ b/mnv/runtime/spell/sr/convert.mnv @@ -0,0 +1,30 @@ +:e sr.aff +:normal gg +:normal wgu$ +:3d +:4d +:normal G +:normal o +:r sr-Latn.aff +:%s#^\(SFX\|PFX\).*[а-џa-ž]\zs$# .#g +:normal G +?SET +:.,+5d +:.,$s#^\(SFX\|PFX\) \zs\(\d\+\)#\= eval(submatch(2) .. ' + 1903')# +:w ../sr.aff +:bd! +:e sr.dic +:%s#a#а#g +:%s#e#е#g +:normal G +:normal o +:r sr-Latn.dic +:normal 201dd +:.,$s#/\zs\(\d\+\)\(,\(\d\+\)\)\?$#\=(submatch(2) == '') ? eval(submatch(1) + '1903') : eval(submatch(1) + '1903') .. ',' .. eval(submatch(3) + '1903')# +:normal { +:normal dd +:normal gg +:normal C502898 +:w ../sr.dic +:bd! +:q! diff --git a/mnv/runtime/spell/sr/main.aap b/mnv/runtime/spell/sr/main.aap new file mode 100644 index 0000000000..a6189ca22a --- /dev/null +++ b/mnv/runtime/spell/sr/main.aap @@ -0,0 +1,23 @@ +# Aap recipe for Serbian MNV spell files. +# See README_sr.txt for instructions to get the .aff and .dic files. + +# Use a freshly compiled MNV if it exists. +@if os.path.exists('../../../src/mnv'): + MNV = ../../../src/mnv +@else: + :progsearch MNV mnv + +SPELLDIR = .. +FILES = sr.aff sr.dic + +all: $SPELLDIR/sr.utf-8.spl ../README_sr.txt + +$SPELLDIR/sr.utf-8.spl : $FILES + :sys env LANG=sr_RS.UTF-8 + $MNV -u NONE -e -c "set enc=utf-8" -c "mkspell! $SPELLDIR/sr sr" -c q + +../README_sr.txt : README_sr.txt + :copy README_sr.txt $target + + +mnv: set sts=4 sw=4 : |
