add Breton dictionary and correct dictionary checker
authorLaurent Mazet <mazet@softndesign.org>
Mon, 15 Jun 2020 06:06:12 +0000 (08:06 +0200)
committerLaurent Mazet <mazet@softndesign.org>
Mon, 15 Jun 2020 06:06:12 +0000 (08:06 +0200)
dict-dists-extractor/Makefile

index 2ebba6cdac69573a92a59f4ae83e875cd560a9a6..daed46633547d3c2b1060fc1ee12af52a5b4d389 100644 (file)
@@ -2,8 +2,8 @@
 
 ROOT_DICT = ../public/dict
 
-LANGS = bg ca da de en eo es fr it nl no pl pt sv uk
-# to add: ar br cs cy el et eu fi? ga he hr hu hy is lv ro ru sk sl
+LANGS = bg br ca da de en eo es fr it nl no pl pt sv uk
+# to add: ar cs cy el et eu fi? ga he hr hu hy is lv ro ru sk sl
 #LANGS = af ar bg br ca cs cy da de el en eo es et eu fi fr ga he hr hu hy is it la lv ms nl no pl pt ro ru sk sl sv tr uk xk
 
 ASPDICT = https://ftp.gnu.org/gnu/aspell/dict/0index.html
@@ -13,7 +13,7 @@ LOWS = $(addsuffix .low,$(LANGS))
 DICTS = $(addsuffix .dict,$(LANGS))
 
 DEPEND = Makefile
-MAKEFLAGS = -s
+#MAKEFLAGS = -s
 
 all: src.mk
        make $(addprefix check-,$(LANGS))
@@ -28,11 +28,14 @@ low: $(LOWS)
 
 
 src.mk:
+       echo Creation language table
        wget $(ASPDICT) -q -O - | \
        awk 'BEGIN { base="'`dirname $(ASPDICT)`'" } \
          /<tr><td><a/ { $$0 = gensub(/.*"(.+)".*"(.+)\/(.+)".*/, "\\1 \\2 \\3", "g"); \
                         printf "%s.dir: %s\n\n", $$1, $$3; \
-                            printf "%s:\n\twget -q %s/%s/%s\n\n", $$3, base, $$2, $$3 } \
+                            printf "%s:\n", $$3; \
+                                        printf "\techo Downloading %s dictionary source\n", $$1; \
+                                        printf "\twget -q %s/%s/%s\n\n", base, $$2, $$3 } \
          /<\/table>/ { exit }' > $@
 
 include $(wildcard src.mk)
@@ -74,6 +77,23 @@ $(ROOT_DICT)/bg.dict: bg.low $(DEPEND)
         sort | \
         uniq > $@
 
+$(ROOT_DICT)/br.dict: br.low $(DEPEND)
+       echo Building $@ from $<
+       cat $< | \
+        grep -v '^.$$' | \
+        grep -v "[-]" | \
+        grep -v "[^c]'" | \
+               grep -v "'[^h]" | \
+        sed -e 's/[àâ]/a/g' \
+            -e 's/[éêè]/e/g' \
+                       -e 's/[î]/i/g' \
+            -e 's/[ñ]/n/g' \
+            -e 's/[ô]/o/g' \
+            -e 's/[ûüù]/u/g' | \
+               tr '[abcdefghijklmnopqrstuvwxyz]' '[ABCDEFGHIJKLMNOPQRSTUVWXYZ]' | \
+        sort | \
+        uniq > $@
+
 $(ROOT_DICT)/ca.dict: ca.low $(DEPEND)
        echo Building $@ from $<
        cat $< | \
@@ -90,6 +110,17 @@ $(ROOT_DICT)/ca.dict: ca.low $(DEPEND)
         sort | \
         uniq > $@
 
+$(ROOT_DICT)/cs.dict: cs.low $(DEPEND)
+       echo Building $@ from $<
+       cat $< | \
+        grep -v '^.$$' | \
+        grep -v "['-]" | \
+               tr '[a-záčďéěíňóřšťúůýž]' '[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]' | \
+               sort | \
+               uniq > $@
+
+#perl -p -e 'tr/aábcčdďeéěfghiíjklmnňoópqrřsštťuúůvwxyýzž/AÁBCČDĎEÉĚFGHIÍJKLMNŇOÓPQRŘSŠTŤUÚŮVWXYÝZŽ/' | \
+
 $(ROOT_DICT)/da.dict: da.low $(DEPEND)
        echo Building $@ from $<
        cat $< | \
@@ -199,7 +230,7 @@ $(ROOT_DICT)/nl.dict: nl.low $(DEPEND)
             -e 's/[íïî]/i/g' \
             -e 's/[ñ]/n/g' \
             -e 's/[óöô]/o/g' \
-            -e 's/[úüûù]/u/g' | \
+            -e 's/[úüûùÜ]/u/g' | \
         tr '[a-z]' '[A-Z]' | \
         sort | \
         uniq > $@
@@ -208,11 +239,11 @@ $(ROOT_DICT)/no.dict: no.low $(DEPEND)
        echo Building $@ from $<
        cat $< | \
         grep -v '^.$$' | \
-        grep -v "['-]" | \
+        grep -v "[.'\"-]" | \
         sed -e 's/[áäÄ]/a/g' \
             -e 's/[ç]/c/g' \
             -e 's/[ð]/d/g' \
-            -e 's/[éëèê]/e/g' \
+            -e 's/[éëèêÉ]/e/g' \
             -e 's/[íì]/i/g' \
             -e 's/[óöôò]/o/g' \
             -e 's/[ü]/u/g' | \
@@ -276,37 +307,43 @@ CHECKER = cat $(1) | \
     grep -v "^[$(2)]*$$" | egrep -v "$(3)" && exit 1 || echo "$< is correct"
 
 check-bg:$(ROOT_DICT)/bg.dict
-       $(call CHECKER,$<,АОЕИТНПРСВМБДКЛГЪЖЗУЧЯЙХЦШЮФЩЬ,)
+       $(call CHECKER,$<,АОЕИТНПРСВМБДКЛГЪЖЗУЧЯЙХЦШЮФЩЬ,~)
+
+check-br:$(ROOT_DICT)/br.dict
+       $(call CHECKER,$<,ABCDEFGHIJKLMNOPRSTUVWXYZ,C'H[A-Z]*(C'H)*)
 
 check-ca:$(ROOT_DICT)/ca.dict
        $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZ,L·L[A-Z]*(L·L)*)
 
+check-cs:$(ROOT_DICT)/cs.dict
+       $(call CHECKER,$<,AÁBCČDĎEÉĚFGHIÍJKLMNŇOÓPQRŘSŠTŤUÚŮVWXYÝZŽ,~)
+
 check-da:$(ROOT_DICT)/da.dict
-       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ,)
+       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ,~)
 
 check-de:$(ROOT_DICT)/de.dict
-       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ,)
+       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ,~)
 
 check-eo:$(ROOT_DICT)/eo.dict
-       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZĈĜĤĴŜŬ,)
+       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZĈĜĤĴŜŬ,~)
 
 check-es:$(ROOT_DICT)/es.dict
-       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÑ,)
+       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÑ,~)
 
 check-no:$(ROOT_DICT)/no.dict
-       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ,)
+       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ,~)
 
 check-pl:$(ROOT_DICT)/pl.dict
-       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZŁĄĘÓŚŻĆŃŹ,)
+       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZŁĄĘÓŚŻĆŃŹ,~)
 
-check-po:$(ROOT_DICT)/po.dict
-       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÇ,)
+check-pt:$(ROOT_DICT)/pt.dict
+       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÇ,~)
 
 check-sv:$(ROOT_DICT)/sv.dict
-       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ,)
+       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ,~)
 
 check-uk:$(ROOT_DICT)/uk.dict
-       $(call CHECKER,$<,ОАИНВЕІТКРСДЛМУПЗЯЬБГЧХЄЇЙЖЦШЮҐФЩ',)
+       $(call CHECKER,$<,ОАИНВЕІТКРСДЛМУПЗЯЬБГЧХЄЇЙЖЦШЮҐФЩ',~)
 
 check-%:$(ROOT_DICT)/%.dict
-       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZ,)
+       $(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZ,~)