trivabble/dict-dists-extractor/Makefile

609 lines
17 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# -*- Makefile -*-
ROOT_DICT = ../public/dict
OBJ_DIR = obj
# 0MB < dictionary size < 10MB
SMALL = br ca cy da de en es fr ga hr hy is lv nl no pt sv
# 10MB < Dictionary size < 50MB
LARGE = bg el eo it pl ro ru sk sl uk
# 50MB < dictionary size < 500MB
VERY_LARGE = ar cs et fi
LANGS ?= $(SMALL) $(LARGE)
DICT_RULE_PRELUDE = sortuniq() { cat > "$$1"; sort -u -o "$$1" "$$1"; }; \
echo Building $@ from $<
# he and hu: can not be generated
# af eu la ms tr xk: no aspell dictionary
ASPDICT = https://ftp.gnu.org/gnu/aspell/dict/0index.html
LOWS = $(addsuffix .low,$(LANGS))
DICTS = $(addsuffix .dict,$(LANGS))
#DEPEND = Makefile
#MAKEFLAGS = -s
.PHONY: all required count clean low list
all: required
make $(addprefix check-,$(LANGS))
make list
$(ROOT_DICT):
mkdir $(ROOT_DICT)
$(OBJ_DIR):
mkdir $(OBJ_DIR)
count:
wc -l $(ROOT_DICT)/*
low: $(LOWS)
required: ${OBJ_DIR} ${OBJ_DIR}/src.mk ${ROOT_DICT}
list: $(ROOT_DICT)/list.js
$(ROOT_DICT)/list.js: $(wildcard $(ROOT_DICT)/*.dict)
ls -s ${ROOT_DICT}/*.dict| \
awk 'BEGIN { printf "window.DictionaryList = {\n" } \
{ $$0 = gensub(/(.+) .*\/(.+)\.dict/, "\\1 \\2", "g"); \
printf "\"%s\": %d,\n", $$2, $$1 } \
END { printf "\"none\": 0\n};" }' > $@
$(OBJ_DIR)/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 "${OBJ_DIR}/%s.dir: $(OBJ_DIR)/%s\n\n", $$1, $$3; \
printf "${OBJ_DIR}/%s:\n", $$3; \
printf "\techo Downloading %s dictionary source\n", $$1; \
printf "\twget -q %s/%s/%s -O $$@\n\n", base, $$2, $$3 } \
/<\/table>/ { exit }' > $@
include $(wildcard ${OBJ_DIR}/src.mk)
%.dir:
echo Installing $@ dictionary
cd "$$(dirname "$@")" && \
tar -xjf "$$(basename "$<")" && \
cd "$$(basename "$(<:.tar.bz2=)")" && \
./configure && \
make && \
cd .. && \
mv "$$(basename "$<" .tar.bz2)" "$$(basename "$@")"
%.low: %.dir
@echo "Building list of word $@"
export DICT_NAME="$$(basename "$<" ".dir")"; \
aspell --dict-dir="$$(realpath $<)" -d "$$DICT_NAME" dump master "$$DICT_NAME" | \
aspell --dict-dir="$$(realpath $<)" -l "$$DICT_NAME" expand | \
tr -s '[:space:]' '\n' > "$@~" && \
LC_ALL=C sort -S28G -u -o "$@~" "$@~" && \
mv "$@~" "$@"
$(OBJ_DIR)/no.low:
make $(OBJ_DIR)/nb.low
mv $(OBJ_DIR)/nb.low $@
$(OBJ_DIR)/pt.low:
make $(OBJ_DIR)/pt_PT.low
mv $(OBJ_DIR)/pt_PT.low $@
$(ROOT_DICT)/ar.dict: $(OBJ_DIR)/ar.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
sed -e 's/[ﺏِ ]/ب/g' \
-e 's/[ﻍُ]/غ/g' \
-e 's/[ﻙ ]/ل/g' \
-e 's/[ﻡَ]/م/g' \
-e 's/[ﻥَ]/ن/g' \
-e 's/[ﻱَﻳّ]/ي/g' | \
sortuniq "$@"
# ا ل ن ش ا ش ي بِ ي ي ب ا ل ن ش ا ش ي بِ ي ي ب ن ش ا ش ي بِ ي ي ف ا ل ن ش ا ش ي بِ ي ي ف ب ا ل ن ش ا ش ي بِ ي ي ف ب ن ش ا ش ي بِ ي ي ف ك ا ل ن ش ا ش ي بِ ي ي ف ك ن ش ا ش ي بِ ي ي ف ل ل ن ش ا ش ي بِ ي ي ف ل ن ش ا ش ي بِ ي ي ف ن ش ا ش ي بِ ي ي ك ا ل ن ش ا ش ي بِ ي ي ك ن ش ا ش ي بِ ي ي ل ل ن ش ا ش ي بِ ي ي ل ن ش ا ش ي بِ ي ي ن ش ا ش ي بِ ي ي و ا ل ن ش ا ش ي بِ ي ي و ب ا ل ن ش ا ش ي بِ ي ي و ب ن ش ا ش ي بِ ي ي و ك ا ل ن ش ا ش ي بِ ي ي و ك ن ش ا ش ي بِ ي ي و ل ل ن ش ا ش ي بِ ي ي و ل ن ش ا ش ي بِ ي ي و ن ش ا ش ي بِ ي ي
$(ROOT_DICT)/bg.dict: $(OBJ_DIR)/bg.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
grep -v "^[a-zA-Z]" | \
tr '[абвгдежзийклмнопрстуфхцчшщъьюя]' '[АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЬЮЯ]' | \
sortuniq "$@"
$(ROOT_DICT)/br.dict: $(OBJ_DIR)/br.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
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]' | \
sortuniq "$@"
$(ROOT_DICT)/ca.dict: $(OBJ_DIR)/ca.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'-]" | \
sed -e 's/[áàãÁÀ]/a/g' \
-e 's/[éèÉÈ]/e/g' \
-e 's/[çÇ]/c/g' \
-e 's/[íïÍ]/i/g' \
-e 's/[ñ]/n/g' \
-e 's/[óöòÓÒ]/o/g' \
-e 's/[úüùÚ]/u/g' | \
tr '[a-z]' '[A-Z]' | \
sortuniq "$@"
$(ROOT_DICT)/cs.dict: $(OBJ_DIR)/cs.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
sed -e 's/[äâ]/a/g' \
-e 's/[çćĆ]/c/g' \
-e 's/[ęë]/e/g' \
-e 's/[î]/i/g' \
-e 's/[ľĽłĺ]/l/g' \
-e 's/[ń]/n/g' \
-e 's/[őöŐÖô]/o/g' \
-e 's/[śŚ]/s/g' \
-e 's/[űüŰÜ]/u/g' \
-e 's/[ź]/z/g' | \
sed -e 's/á/Á/g' -e 's/č/Č/g' -e 's/ď/Ď/g' -e 's/é/É/g' -e 's/ě/Ě/g' \
-e 's/í/Í/g' -e 's/ň/Ň/g' -e 's/ó/Ó/g' -e 's/ř/Ř/g' -e 's/š/Š/g' \
-e 's/ť/Ť/g' -e 's/ú/Ú/g' -e 's/ů/Ů/g' -e 's/ý/Ý/g' -e 's/ž/Ž/g' | \
tr '[a-z]' '[A-Z]' | \
sortuniq "$@"
$(ROOT_DICT)/cy.dict: $(OBJ_DIR)/cy.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
grep -vi "ph" | \
sed -e 's/[âä]/a/g' \
-e 's/[êë]/e/g' \
-e 's/[îï]/i/g' \
-e 's/[ôöò]/o/g' \
-e 's/[ûüù]/u/g' \
-e 's/[ŵ]/w/g' \
-e 's/[ŷ]/y/g' | \
tr '[a-z]' '[A-Z]' | \
sortuniq "$@"
$(ROOT_DICT)/da.dict: $(OBJ_DIR)/da.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'-]" | \
sed -e 's/[áä]/a/g' \
-e 's/[ð]/d/g' \
-e 's/[éëè]/e/g' \
-e 's/[íì]/i/g' \
-e 's/[óöô]/o/g' \
-e 's/[ü]/u/g' | \
tr '[a-zæøå]' '[A-ZÆØÅ]' | \
sortuniq "$@"
$(ROOT_DICT)/de.dict: $(OBJ_DIR)/de.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'-]" | \
sed -e 's/[âà]/a/g' \
-e 's/[éê]/e/g' \
-e 's/[ñ]/n/g' \
-e 's/[œ]/oe/g' \
-e 's/[ß]/ss/g' | \
tr '[a-zäöü]' '[A-ZÄÖÜ]' | \
sortuniq "$@"
$(ROOT_DICT)/el.dict: $(OBJ_DIR)/el.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
sed -e 's/[άΆ]/α/g' \
-e 's/[ϐ]/β/g' \
-e 's/[έΈ]/ε/g' \
-e 's/[ήΉ]/η/g' \
-e 's/[ίϊΐΊ]/ι/g' \
-e 's/[όΌ]/ο/g' \
-e 's/[ς]/σ/g' \
-e 's/[ΰϋύΎ]/υ/g' \
-e 's/[ϕ]/φ/g' \
-e 's/[ώΏ]/ω/g' | \
tr '[αβγδεζηθικλμνξοπρστυφχψω]' '[ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ]' | \
sortuniq "$@"
$(ROOT_DICT)/en.dict: $(OBJ_DIR)/en.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'-]" | \
sed -e 's/[áâàäåÅ]/a/g' \
-e 's/[ç]/c/g' \
-e 's/[éêèë]/e/g' \
-e 's/[íîï]/i/g' \
-e 's/[ñ]/n/g' \
-e 's/[óôöøiÖ]/o/g' \
-e 's/[úûüùiÜ]/u/g' | \
tr '[a-z]' '[A-Z]' | \
sortuniq "$@"
$(ROOT_DICT)/eo.dict: $(OBJ_DIR)/eo.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'qQwWxXyY-]" | \
tr '[a-zĉĝĥĵŝŭ]' '[A-ZĈĜĤĴŜŬ]' | \
sortuniq "$@"
$(ROOT_DICT)/es.dict: $(OBJ_DIR)/es.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'-]" | \
sed -e 's/[áÁ]/a/g' \
-e 's/[é]/e/g' \
-e 's/[í]/i/g' \
-e 's/[ó]/o/g' \
-e 's/[úü]/u/g' | \
tr '[a-zñ]' '[A-ZÑ]' | \
sortuniq "$@"
$(ROOT_DICT)/et.dict: $(OBJ_DIR)/et.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'qwxQWX-]" | \
tr '[a-zäöõüšž]' '[A-ZÄÖÕÜŠŽ]' | \
sortuniq "$@"
$(ROOT_DICT)/fi.dict: $(OBJ_DIR)/fi.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.':-]" | \
tr '[a-zäåöšž]' '[A-ZÄÅÖŠŽ]' | \
sortuniq "$@"
$(ROOT_DICT)/fr.dict: $(OBJ_DIR)/fr.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'-]" | \
sed -e 's/[àâä]/a/g' \
-e 's/[ç]/c/g' \
-e 's/[Ééèêë]/e/g' \
-e 's/[ïî]/i/g' \
-e 's/[ôö]/o/g' \
-e 's/[úùûü]/u/g' | \
tr '[a-z]' '[A-Z]' | \
sortuniq "$@"
$(ROOT_DICT)/ga.dict: $(OBJ_DIR)/ga.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.':-]" | \
sed -e 's/[áâãÁ]/a/g' \
-e 's/[ç]/c/g' \
-e 's/[éèÉ]/e/g' \
-e 's/[íÍ]/i/g' \
-e 's/[óöòÓ]/o/g' \
-e 's/[úüÚ]/u/g' | \
tr '[a-zñ]' '[A-ZÑ]' | \
sortuniq "$@"
$(ROOT_DICT)/he.dict: $(OBJ_DIR)/he.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
sortuniq "$@"
$(ROOT_DICT)/hr.dict: $(OBJ_DIR)/hr.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
tr '[a-zćčšž]' '[A-ZĆČŠŽ]' | \
sed 's/đ/Đ/g' | \
sortuniq "$@"
$(ROOT_DICT)/hu.dict: $(OBJ_DIR)/hu.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
tr '[a-záéóöőúüű]' '[A-ZÁÉÓÖŐÚÜŰ]' | \
sortuniq "$@"
#grep -v "['ԁԃԂԃ-]"
$(ROOT_DICT)/hy.dict: $(OBJ_DIR)/hy.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
sed -e 's/ա/Ա/g' -e 's/բ/Բ/g' -e 's/գ/Գ/g' -e 's/դ/Դ/g' -e 's/ե/Ե/g' \
-e 's/զ/Զ/g' -e 's/է/Է/g' -e 's/ը/Ը/g' -e 's/թ/Թ/g' -e 's/ժ/Ժ/g' \
-e 's/ի/Ի/g' -e 's/լ/Լ/g' -e 's/խ/Խ/g' -e 's/ծ/Ծ/g' -e 's/կ/Կ/g' \
-e 's/հ/Հ/g' -e 's/ձ/Ձ/g' -e 's/ղ/Ղ/g' -e 's/ճ/Ճ/g' -e 's/մ/Մ/g' \
-e 's/յ/Յ/g' -e 's/ն/Ն/g' -e 's/շ/Շ/g' -e 's/ո/Ո/g' -e 's/չ/Չ/g' \
-e 's/պ/Պ/g' -e 's/ջ/Ջ/g' -e 's/ռ/Ռ/g' -e 's/ս/Ս/g' -e 's/վ/Վ/g' \
-e 's/տ/Տ/g' -e 's/ր/Ր/g' -e 's/ց/Ց/g' -e 's/ւ/Ւ/g' -e 's/փ/Փ/g' \
-e 's/ք/Ք/g' -e 's/օ/Օ/g' -e 's/ֆ/Ֆ/g' -e 's/ու/ՈՒ/g' \
-e "s/'//g" | \
sortuniq "$@"
$(ROOT_DICT)/it.dict: $(OBJ_DIR)/it.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'-]" | \
sed -e 's/[àâ]/a/g' \
-e 's/[ç]/c/g' \
-e 's/[éè]/e/g' \
-e 's/[ì]/i/g' \
-e 's/[òiô]/o/g' \
-e 's/[ù]/u/g' | \
tr '[a-z]' '[A-Z]' | \
sortuniq "$@"
$(ROOT_DICT)/is.dict: $(OBJ_DIR)/is.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'-]" | \
tr '[a-záæðéíóöúýþ]' '[A-ZÁÆÐÉÍÓÖÚÝÞ]' | sortuniq "$@"
$(ROOT_DICT)/lv.dict: $(OBJ_DIR)/lv.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'-]" | \
tr '[a-zāčēģīķļņšūž]' '[A-ZĀČĒĢĪĶĻŅŠŪŽ]' | sortuniq "$@"
$(ROOT_DICT)/nl.dict: $(OBJ_DIR)/nl.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[1-9+/' .-]" | \
sed -e 's/[áäâàÅ]/a/g' \
-e 's/[ç]/c/g' \
-e 's/[éëèê]/e/g' \
-e 's/[íïî]/i/g' \
-e 's/[ñ]/n/g' \
-e 's/[óöô]/o/g' \
-e 's/[úüûùÜ]/u/g' | \
tr '[a-z]' '[A-Z]' | \
sortuniq "$@"
$(ROOT_DICT)/no.dict: $(OBJ_DIR)/no.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[.'\"-]" | \
sed -e 's/[áäÄ]/a/g' \
-e 's/[ç]/c/g' \
-e 's/[ð]/d/g' \
-e 's/[éëèêÉ]/e/g' \
-e 's/[íì]/i/g' \
-e 's/[óöôò]/o/g' \
-e 's/[ü]/u/g' | \
tr '[a-zæøå]' '[A-ZÆØÅ]' | \
sortuniq "$@"
$(ROOT_DICT)/pl.dict: $(OBJ_DIR)/pl.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
sed -e 's/[ä]/a/g' \
-e 's/[ç]/c/g' \
-e 's/[é]/e/g' \
-e 's/[i]/i/g' \
-e 's/[ö]/o/g' \
-e 's/[šŠ]/s/g' \
-e 's/[û]/u/g' | \
tr '[a-złąęóśżćńź]' '[A-ZŁĄĘÓŚŻĆŃŹ]' | \
sortuniq "$@"
$(ROOT_DICT)/pt.dict: $(OBJ_DIR)/pt.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
sed -e 's/[áãâàÁÂ]/a/g' \
-e 's/[éêèÉ]/e/g' \
-e 's/[íîÍ]/i/g' \
-e 's/[óôõÓ]/o/g' \
-e 's/[úüÚ]/u/g' | \
tr '[a-zç]' '[A-ZÇ]' | \
sortuniq "$@"
$(ROOT_DICT)/ro.dict: $(OBJ_DIR)/ro.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
sed -e 's/[áâăÂĂ]/a/g' \
-e 's/[éè]/e/g' \
-e 's/[íîÎ]/i/g' \
-e 's/[șȘ]/s/g' \
-e 's/[țȚ]/t/g' \
-e 's/[ü]/u/g' | \
tr '[a-z]' '[A-Z]' | \
sortuniq "$@"
$(ROOT_DICT)/ru.dict: $(OBJ_DIR)/ru.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
sed -e 's/а/А/g' -e 's/б/Б/g' -e 's/в/В/g' -e 's/г/Г/g' -e 's/д/Д/g' \
-e 's/е/Е/g' -e 's/ё/Ё/g' -e 's/ж/Ж/g' -e 's/з/З/g' -e 's/и/И/g' \
-e 's/й/Й/g' -e 's/к/К/g' -e 's/л/Л/g' -e 's/м/М/g' -e 's/н/Н/g' \
-e 's/о/О/g' -e 's/п/П/g' -e 's/р/Р/g' -e 's/с/С/g' -e 's/т/Т/g' \
-e 's/у/У/g' -e 's/ф/Ф/g' -e 's/х/Х/g' -e 's/ц/Ц/g' -e 's/ч/Ч/g' \
-e 's/ш/Ш/g' -e 's/щ/Щ/g' -e 's/ъ/Ъ/g' -e 's/ы/Ы/g' -e 's/ь/Ь/g' \
-e 's/э/Э/g' -e 's/ю/Ю/g' -e 's/я/Я/g' | \
sortuniq "$@"
$(ROOT_DICT)/sk.dict: $(OBJ_DIR)/sk.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
sed -e 's/[ë]/e/g' | \
sed -e 's/á/Á/g' -e 's/ä/Ä/g' -e 's/č/Č/g' -e 's/ď/Ď/g' -e 's/é/É/g' \
-e 's/ě/Ě/g' -e 's/í/Í/g' -e 's/ľ/Ľ/g' -e 's/ĺ/Ĺ/g' -e 's/ň/Ň/g' \
-e 's/ô/Ô/g' -e 's/ó/Ó/g' -e 's/ö/Ö/g' -e 's/ŕ/Ŕ/g' -e 's/ř/Ř/g' \
-e 's/š/Š/g' -e 's/ť/Ť/g' -e 's/ú/Ú/g' -e 's/ü/Ü/g' -e 's/ý/Ý/g' \
-e 's/ž/Ž/g' | \
tr '[a-z]' '[A-Z]' | \
sortuniq "$@"
$(ROOT_DICT)/sl.dict: $(OBJ_DIR)/sl.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
sed -e 's/[áâȁ]/a/g' \
-e 's/[ćĆ]/c/g' \
-e 's/[éȇȅ]/e/g' \
-e 's/[đĐ]/d/g' \
-e 's/[íȋȉ]/i/g' \
-e 's/[óȏȍö]/o/g' \
-e 's/[ŕȓ]/r/g' \
-e 's/[úȗȕü]/u/g' | \
sed -e 's/č/Č/g' -e 's/š/Š/g' -e 's/ž/Ž/g' | \
tr '[a-z]' '[A-Z]' | \
sortuniq "$@"
$(ROOT_DICT)/sv.dict: $(OBJ_DIR)/sv.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "['-]" | \
sed -e 's/[æ]/ae/g' \
-e 's/[ç]/c/g' \
-e 's/[é]/e/g' \
-e 's/[ü]/u/g' | \
tr '[a-zåäö]' '[A-ZÅÄÖ]' | \
sortuniq "$@"
$(ROOT_DICT)/uk.dict: $(OBJ_DIR)/uk.low $(DEPEND)
@$(DICT_RULE_PRELUDE); \
cat "$<" | \
grep -v '^.$$' | \
grep -v "[-]" | \
tr '[абвгґдеєжзиіїйклмнопрстуфхцчшщьюя]' '[АБВГҐДЕЄЖЗИІЇЙКЛМНОПРСТУФХЦЧШЩЬЮЯ]' | \
sortuniq "$@"
CHECKER = cat $(1) | \
grep -v "^[$(2)]*$$" | egrep -v "$(3)" && exit 1 || echo "$< is correct"
check-ar:$(ROOT_DICT)/ar.dict
$(call CHECKER,$<,ابتثجحخدذرزسشصضطظعغفقكلمنهويءأإؤئآةى,~)
check-bg:$(ROOT_DICT)/bg.dict
$(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ÆØÅ,~)
check-de:$(ROOT_DICT)/de.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ,~)
check-el:$(ROOT_DICT)/el.dict
$(call CHECKER,$<,ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ,~)
check-eo:$(ROOT_DICT)/eo.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPRSTUVZĈĜĤĴŜŬ,~)
check-es:$(ROOT_DICT)/es.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÑ,~)
check-et:$(ROOT_DICT)/et.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPRSTUVYZÄÖÕÜŠŽ,~)
check-fi:$(ROOT_DICT)/fi.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÄÅÖŠŽ,~)
check-ga:$(ROOT_DICT)/ga.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÑ,~)
check-he:$(ROOT_DICT)/he.dict
$(call CHECKER,$<,אבגדהוזחטיכלמנסעפצקרשת,~)
check-hr:$(ROOT_DICT)/hr.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZĆČĐŠŽ,~)
check-hu:$(ROOT_DICT)/hu.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÓÖŐÚÜŰ,~)
check-hy:$(ROOT_DICT)/hy.dict
$(call CHECKER,$<,ԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖՈՒև,~)
check-is:$(ROOT_DICT)/is.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÁÆÐÉÍÓÖÚÝÞ,~)
check-lv:$(ROOT_DICT)/lv.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZĀČĒĢĪĶĻŅŠŪŽ,~)
check-no:$(ROOT_DICT)/no.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÆØÅ,~)
check-pl:$(ROOT_DICT)/pl.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZŁĄĘÓŚŻĆŃŹ,~)
check-pt:$(ROOT_DICT)/pt.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÇ,~)
check-ru:$(ROOT_DICT)/ru.dict
$(call CHECKER,$<,АБВГДЕЁЖЗИЙКЛлМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ,~)
check-sk:$(ROOT_DICT)/sk.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÁÄČĎÉĚÍĽĹŇÔÓÖŔŠŤÚÜÝŽ,~)
check-sl:$(ROOT_DICT)/sl.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZČŠŽ,~)
check-sv:$(ROOT_DICT)/sv.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ,~)
check-uk:$(ROOT_DICT)/uk.dict
$(call CHECKER,$<,ОАИНВЕІТКРСДЛМУПЗЯЬБГЧХЄЇЙЖЦШЮҐФЩ',~)
check-%:$(ROOT_DICT)/%.dict
$(call CHECKER,$<,ABCDEFGHIJKLMNOPQRSTUVWXYZ,~)
clean:
rm -rf "$(OBJ_DIR)"