Autor do Aspell aqui.
Como eu disse em uma resposta anterior, você não pode simplesmente combinar dicionários de diferentes idiomas e esperar que funcione. Você precisa criar um novo idioma que combine os recursos dos dois idiomas originais.
Felizmente para inglês e alemão isso é bastante fácil; no entanto, a qualidade da sugestão será prejudicada por palavras em inglês, já que desativaremos o uso da pesquisa sonora.
-
Instale o pacote de dicionário aspell-en e aspell-de
-
Vá para um diretório vazio para manter tudo limpo. Além disso, para evitar quaisquer problemas de charset, altere a localidade para "C" definindo
LC_ALL=C
. -
Envie os dicionários em inglês e alemão para planejar listas de palavras
aspell dump master en > en.txt aspell dump master de > de.txt
-
Combine en.dat e de.dat, que você geralmente pode encontrar em
usr/lib/aspell
.O dicionário Inglês usa a pesquisa de sons, mas isso não acontece com o dicionário alemão (devido ao fato de ser específico em inglês e mais importável, é incompatível com a compactação do Affix), portanto, será desativado. O dicionário de inglês não usa compactação de afixo, mas o dicionário alemão faz isso, apenas usaremos o arquivo de afixo para o dicionário alemão. (Isso evitará ter que expandir o dicionário alemão e, assim, aumentar seu tamanho).
Vamos chamar a língua qed, 'q', já que pouquíssimos idiomas começam com q, 'e' para inglês e 'g' para alemão. (O nome do idioma deve geralmente ser de 2 a 3 letras, mas o aspell realmente não se importa, então en-de ou algum outro nome pode funcionar, mas um nome de 2 ou 3 letras tem garantia de funcionar)
O arquivo será nomeado
qed.dat
e conterá o seguinte:name qed charset iso8859-1 special ' -*- soundslike none affix qed affix-compress true
-
Copie
de_affix.dat
para o diretório atual e renomeie paraqed_affix.dat
. -
Crie o dicionário combinado:
cat en.txt de.txt | aspell create master -l ./qed ./qed.rws
-
Crie o arquivo
qed.multi
:add qed.rws
-
Teste o dicionário usando
-d ./qed
. o./
é necessário para forçar o aspell a procurar o diretório atual. -
Instale
qed.dat
qed.rws
qed.multi
eqed_affix.dat
em algum lugar onde o aspell o encontre. Consulte o manual para obter informações sobre como o aspell pesquisa arquivos de dados de dicionários e idiomas. -
Feito. Tudo deve funcionar agora. Uma solução mais sofisticada permitirá alguma forma de pesquisa sonora para melhor qualidade de sugestão. Mas isso requer um cuidado especial quando usado com compressão de afixo (veja o manual do Aspell para detalhes). Como alternativa, o dicionário alemão pode ser expandido e a pesquisa em inglês como soundlike pode ser usada, mas isso pode não funcionar tão bem em palavras em alemão.
O caso da combinação de inglês e alemão foi fácil porque ambos usam o mesmo conjunto de caracteres (iso-8859-1) e porque apenas um idioma usava a compactação do Affix. Combinar outras linguagens exigirá mais trabalho, mas é possível assim que você souber o que está fazendo. Expliquei os passos detalhadamente aqui para dar aos leitores uma ideia de como o Aspell funciona para que uma coisa semelhante possa ser usada para outras combinações de idiomas.
Se os dois idiomas usarem a compactação por afixo, os arquivos de afixação precisarão ser combinados para que não haja sinalizadores conflitantes ou um dos dicionários precisará ser expandido.
Se os dois idiomas usarem um conjunto de caracteres de 8 bits diferente de um conjunto de caracteres compatível que possa suportar os dois idiomas, precisaremos ser usados. Se um padrão não existe, então um novo pode ser criado. Para evitar confusão, as listas de palavras devem ser convertidas em utf-8 e o Aspell deve ser instruído a esperar todas as entradas e saídas em utf-8 em vez do conjunto de caracteres que é usado internamente, o que, por motivos históricos, é o padrão.