]> gitweb.fperrin.net Git - DictionaryPC.git/blob - generate_dictionaries.sh
Add Old Church Slavonic and Pennsylvania German.
[DictionaryPC.git] / generate_dictionaries.sh
1 #!/bin/sh
2 DE_DICTS=true
3 #DE_DICTS=false
4 EN_DICTS=true
5 #EN_DICTS=false
6 FR_DICTS=true
7 #FR_DICTS=false
8 IT_DICTS=true
9 #IT_DICTS=false
10 EN_TRANS_DICTS=true
11 #EN_TRANS_DICTS=false
12 SINGLE_DICTS="en de fr it es pt"
13 #SINGLE_DICTS=""
14
15 VERSION=v007
16
17 #./run.sh --lang1=EN --dictOut=test --dictInfo=test --input0=data/inputs/wikiSplit/en/EN.data  --input0Name=enwikitionary --input0Format=enwiktionary --input0LangPattern=English --input0LangCodePattern=en --input0EnIndex=1 --input0WiktionaryType=EnEnglish
18
19 if $EN_DICTS; then
20 # Note: using input1 seems to hang for ZH currently!
21 while read langcode langname enlangname ; do
22 lang=$(echo $langcode | tr '[a-z]' '[A-Z]')
23 test "$lang" = "CY" && lang=CI
24 test "$lang" = "CMN" && lang=cmn
25 test "$lang" = "GRC" && lang=grc
26 test "$lang" = "HAW" && lang=haw
27 test "$lang" = "SCN" && lang=scn
28 test "$lang" = "YUE" && lang=yue
29 test "$lang" = "PDC" && lang=pdc
30 test "$lang" = "CU" && lang=cu
31
32 reverse_dicts=""
33 if test "$lang" = "DE" -o "$lang" = "FR" -o "$lang" = "IT" ; then
34 reverse_dicts="--input3=data/inputs/wikiSplit/$langcode/EN.data --input3Format=WholeSectionToHtmlParser --input3Name=${langcode}wikitionary --input3WiktionaryLang=$lang --input3TitleIndex=1 --input3WebUrlTemplate=http://${langcode}.wiktionary.org/wiki/%s"
35 #reverse_dicts="$reverse_dicts --input4=data/inputs/wikiSplit/$langcode/EN.data --input4Name=${langcode}wikitionary --input4Format=enwiktionary --input4LangPattern=${enlangname} --input4LangCodePattern=en --input4EnIndex=1 --input4WiktionaryType=EnForeign"
36 fi
37
38 stoplist=""
39 test -e data/inputs/stoplists/${langcode}.txt && stoplist="--lang2Stoplist=data/inputs/stoplists/${langcode}.txt"
40 ./run.sh --lang1=EN --lang2=$lang --lang1Stoplist=data/inputs/stoplists/en.txt $stoplist --dictOut=data/outputs/EN-${lang}.quickdic --dictInfo="(EN)Wiktionary-based EN-$lang dictionary." --input0=data/inputs/wikiSplit/en/${lang}.data  --input0Name=enwikitionary --input0Format=enwiktionary --input0LangPattern=${langname} --input0LangCodePattern=${langcode} --input0EnIndex=1 --input0WiktionaryType=EnForeign --input1=data/inputs/wikiSplit/en/EN.data --input1Name=enwikitionary --input1Format=enwiktionary --input1LangPattern=${langname} --input1LangCodePattern=${langcode} --input1EnIndex=1 --input1WiktionaryType=EnToTranslation --input2=data/inputs/wikiSplit/en/${lang}.data --input2Format=WholeSectionToHtmlParser --input2Name=enwikitionary --input2WiktionaryLang=EN --input2TitleIndex=2 --input2WebUrlTemplate=http://en.wiktionary.org/wiki/%s $reverse_dicts
41 rm -f data/outputs/EN-${lang}.quickdic.${VERSION}.zip
42 7z a -mx=9 data/outputs/EN-${lang}.quickdic.${VERSION}.zip ./data/outputs/EN-${lang}.quickdic
43
44 done < EN-foreign-dictlist.txt
45 fi
46
47 # EnEnglish only makes the dictionary cluttered
48 #./run.sh --lang1=EN --lang1Stoplist=data/inputs/stoplists/en.txt --dictOut=data/outputs/EN.quickdic --dictInfo="Wiktionary-based EN dictionary." --input0=data/inputs/wikiSplit/en/EN.data  --input0Name=enwikitionary --input0Format=enwiktionary --input0LangPattern=English --input0LangCodePattern=en --input0EnIndex=1 --input0WiktionaryType=EnEnglish --input2=data/inputs/wikiSplit/en/EN.data --input2Format=WholeSectionToHtmlParser --input2Name=enwikitionary --input2WiktionaryLang=EN --input2TitleIndex=1 --input2WebUrlTemplate=http://en.wiktionary.org/wiki/%s
49 #rm -f data/outputs/EN.quickdic.${VERSION}.zip
50 #7z a -mx=9 data/outputs/EN.quickdic.${VERSION}.zip ./data/outputs/EN.quickdic
51
52 for langcode in $SINGLE_DICTS ; do
53 lang=$(echo $langcode | tr '[a-z]' '[A-Z]')
54 ./run.sh --lang1=$lang --lang1Stoplist=data/inputs/stoplists/${langcode}.txt --dictOut=data/outputs/${lang}.quickdic --dictInfo="Wiktionary-based ${lang} dictionary." --input1=data/inputs/wikiSplit/${langcode}/${lang}.data --input1Format=WholeSectionToHtmlParser --input1Name=${langcode}wikitionary --input1WiktionaryLang=$lang --input1TitleIndex=1 --input1WebUrlTemplate=http://${langcode}.wiktionary.org/wiki/%s
55 rm -f data/outputs/${lang}.quickdic.${VERSION}.zip
56 7z a -mx=9 data/outputs/${lang}.quickdic.${VERSION}.zip ./data/outputs/${lang}.quickdic
57
58 done
59
60 if $DE_DICTS; then
61 while read langcode langname ; do
62 lang=$(echo $langcode | tr '[a-z]' '[A-Z]')
63 test "$lang" = "CY" && lang=CI
64 test "$lang" = "CMN" && lang=cmn
65 test "$lang" = "GRC" && lang=grc
66 test "$lang" = "HAW" && lang=haw
67 test "$lang" = "YUE" && lang=yue
68
69 reverse_dicts=""
70 if test "$lang" = "FR" -o "$lang" = "IT" ; then
71 reverse_dicts="--input3=data/inputs/wikiSplit/$langcode/DE.data --input3Format=WholeSectionToHtmlParser --input3Name=${langcode}wikitionary --input3WiktionaryLang=$lang --input3TitleIndex=1 --input3WebUrlTemplate=http://${langcode}.wiktionary.org/wiki/%s"
72 fi
73
74 stoplist=""
75 test -e data/inputs/stoplists/${langcode}.txt && stoplist="--lang2Stoplist=data/inputs/stoplists/${langcode}.txt"
76 input0=""
77 test -e data/inputs/wikiSplit/de/${lang}.data && input0="--input0=data/inputs/wikiSplit/de/${lang}.data --input0Name=dewikitionary --input0Format=enwiktionary --input0LangPattern=${langname} --input0LangCodePattern=${langcode} --input0EnIndex=1 --input0WiktionaryType=EnForeign"
78 input2=""
79 test -e data/inputs/wikiSplit/de/${lang}.data && input2="--input2=data/inputs/wikiSplit/de/${lang}.data --input2Format=WholeSectionToHtmlParser --input2Name=dewikitionary --input2WiktionaryLang=DE --input2TitleIndex=2 --input2WebUrlTemplate=http://de.wiktionary.org/wiki/%s"
80 ./run.sh --lang1=DE --lang2=$lang --lang1Stoplist=data/inputs/stoplists/de.txt $stoplist --dictOut=data/outputs/DE-${lang}.quickdic --dictInfo="(DE)Wiktionary-based DE-$lang dictionary." $input0 --input1=data/inputs/wikiSplit/en/EN.data --input1Name=enwikitionary --input1Format=EnTranslationToTranslation --input1LangPattern1=de --input1LangPattern2=${langcode} $input2 $reverse_dicts
81 rm -f data/outputs/DE-${lang}.quickdic.${VERSION}.zip
82 7z a -mx=9 data/outputs/DE-${lang}.quickdic.${VERSION}.zip ./data/outputs/DE-${lang}.quickdic
83
84 done < DE-foreign-dictlist.txt
85 fi
86
87 if $FR_DICTS; then
88 while read langcode langname ; do
89 lang=$(echo $langcode | tr '[a-z]' '[A-Z]')
90 test "$lang" = "CY" && lang=CI
91 test "$lang" = "CMN" && lang=cmn
92 test "$lang" = "GRC" && lang=grc
93 test "$lang" = "HAW" && lang=haw
94 test "$lang" = "YUE" && lang=yue
95
96 reverse_dicts=""
97 if test "$lang" = "DE" -o "$lang" = "IT" ; then
98 reverse_dicts="--input3=data/inputs/wikiSplit/$langcode/FR.data --input3Format=WholeSectionToHtmlParser --input3Name=${langcode}wikitionary --input3WiktionaryLang=$lang --input3TitleIndex=1 --input3WebUrlTemplate=http://${langcode}.wiktionary.org/wiki/%s"
99 fi
100
101 stoplist=""
102 test -e data/inputs/stoplists/${langcode}.txt && stoplist="--lang2Stoplist=data/inputs/stoplists/${langcode}.txt"
103 ./run.sh --lang1=FR --lang2=$lang --lang1Stoplist=data/inputs/stoplists/fr.txt $stoplist --dictOut=data/outputs/FR-${lang}.quickdic --dictInfo="(FR)Wiktionary-based FR-$lang dictionary." --input0=data/inputs/wikiSplit/fr/${lang}.data --input0Name=frwikitionary --input0Format=enwiktionary --input0LangPattern=${langname} --input0LangCodePattern=${langcode} --input0EnIndex=1 --input0WiktionaryType=EnForeign --input1=data/inputs/wikiSplit/en/EN.data --input1Name=enwikitionary --input1Format=EnTranslationToTranslation --input1LangPattern1=fr --input1LangPattern2=${langcode} --input2=data/inputs/wikiSplit/fr/${lang}.data --input2Format=WholeSectionToHtmlParser --input2Name=frwikitionary --input2WiktionaryLang=FR --input2TitleIndex=2 --input2WebUrlTemplate=http://fr.wiktionary.org/wiki/%s $reverse_dicts
104 rm -f data/outputs/FR-${lang}.quickdic.${VERSION}.zip
105 7z a -mx=9 data/outputs/FR-${lang}.quickdic.${VERSION}.zip ./data/outputs/FR-${lang}.quickdic
106
107 done < FR-foreign-dictlist.txt
108 fi
109
110 if $IT_DICTS; then
111 while read langcode langname ; do
112 lang=$(echo $langcode | tr '[a-z]' '[A-Z]')
113 test "$lang" = "CY" && lang=CI
114 test "$lang" = "CMN" && lang=cmn
115 test "$lang" = "GRC" && lang=grc
116 test "$lang" = "HAW" && lang=haw
117 test "$lang" = "YUE" && lang=yue
118
119 reverse_dicts=""
120 if test "$lang" = "FR" -o "$lang" = "DE" ; then
121 reverse_dicts="--input3=data/inputs/wikiSplit/$langcode/IT.data --input3Format=WholeSectionToHtmlParser --input3Name=${langcode}wikitionary --input3WiktionaryLang=$lang --input3TitleIndex=1 --input3WebUrlTemplate=http://${langcode}.wiktionary.org/wiki/%s"
122 fi
123
124 stoplist=""
125 test -e data/inputs/stoplists/${langcode}.txt && stoplist="--lang2Stoplist=data/inputs/stoplists/${langcode}.txt"
126 ./run.sh --lang1=IT --lang2=$lang --lang1Stoplist=data/inputs/stoplists/it.txt $stoplist --dictOut=data/outputs/IT-${lang}.quickdic --dictInfo="(IT)Wiktionary-based IT-$lang dictionary." --input0=data/inputs/wikiSplit/it/${lang}.data --input0Name=itwikitionary --input0Format=enwiktionary --input0LangPattern=${langname} --input0LangCodePattern=${langcode} --input0EnIndex=1 --input0WiktionaryType=EnForeign --input1=data/inputs/wikiSplit/en/EN.data --input1Name=enwikitionary --input1Format=EnTranslationToTranslation --input1LangPattern1=it --input1LangPattern2=${langcode} --input2=data/inputs/wikiSplit/it/${lang}.data --input2Format=WholeSectionToHtmlParser --input2Name=itwikitionary --input2WiktionaryLang=IT --input2TitleIndex=2 --input2WebUrlTemplate=http://it.wiktionary.org/wiki/%s $reverse_dicts
127 rm -f data/outputs/IT-${lang}.quickdic.${VERSION}.zip
128 7z a -mx=9 data/outputs/IT-${lang}.quickdic.${VERSION}.zip ./data/outputs/IT-${lang}.quickdic
129
130 done < IT-foreign-dictlist.txt
131 fi
132
133 if $EN_TRANS_DICTS; then
134 while read langcode1 langname1 langcode2 langname2 ; do
135 lang1=$(echo $langcode1 | tr '[a-z]' '[A-Z]')
136 lang2=$(echo $langcode2 | tr '[a-z]' '[A-Z]')
137 test "$lang1" = "CY" && lang1=CI
138 test "$lang1" = "CMN" && lang1=cmn
139 test "$lang1" = "GRC" && lang1=grc
140 test "$lang1" = "HAW" && lang1=haw
141 test "$lang1" = "YUE" && lang1=yue
142 test "$lang2" = "CY" && lang2=CI
143 test "$lang2" = "CMN" && lang2=cmn
144 test "$lang2" = "GRC" && lang2=grc
145 test "$lang2" = "HAW" && lang2=haw
146 test "$lang2" = "YUE" && lang2=yue
147 stoplist1=""
148 stoplist2=""
149 test -e data/inputs/stoplists/${langcode1}.txt && stoplist1="--lang1Stoplist=data/inputs/stoplists/${langcode1}.txt"
150 test -e data/inputs/stoplists/${langcode2}.txt && stoplist2="--lang2Stoplist=data/inputs/stoplists/${langcode2}.txt"
151 ./run.sh --lang1=$lang1 --lang2=$lang2 $stoplist1 $stoplist2 --dictOut=data/outputs/${lang1}-${lang2}.quickdic --dictInfo="(EN)Wiktionary-based ${lang1}-${lang2} dictionary." --input1=data/inputs/wikiSplit/en/EN.data --input1Name=enwikitionary --input1Format=EnTranslationToTranslation --input1LangPattern1=${langcode1} --input1LangPattern2=${langcode2}
152 rm -f data/outputs/${lang1}-${lang2}.quickdic.${VERSION}.zip
153 7z a -mx=9 data/outputs/${lang1}-${lang2}.quickdic.${VERSION}.zip ./data/outputs/${lang1}-${lang2}.quickdic
154 done < EN-trans-dictlist.txt
155 fi