Gedit ou outro editor que não seja de linha de comando com a capacidade de verificar ortograficamente dois idiomas ao mesmo tempo

6

Estou procurando um editor com a capacidade de verificar ortograficamente dois idiomas ao mesmo tempo (alemão e inglês). O Gedit não pode sair da caixa.

Mas eu quero usar o Gedit. Deve ser possível mesclando os dicionários em inglês e alemão e selecionando o arquivo criado em Ferramentas- > Definir idioma ...

editar

Eu entendi quase (alguns avisos na etapa 6 e, por exemplo, zzgl. (palavras com um ponto no final) não são verificados ortograficamente) :) Obrigado ao seu post Kevin Atkinson :)

(Posso acrescentar que para o inglês usei aspell6-en-7.1-0.tar.bz2 (já é nova versão / atualizada) mas para o alemão usei http://extensions.services.openoffice.org/project/dict-de_DE_frami porque é mais atualizada. Extraia este .oxt usando unzip . Em de_DE_frami estão os dois arquivos de afixo e dicionário necessários chamados de_DE_frami.aff e de_DE_frami.dic . Renomeie o de_DE_frami.aff para qed_affix.dat e o de_DE_frami.dic para de.txt .

Nota: Para o alemão também existe uma extensão: http://extensions.services.openoffice.org/de/project/DFEW , que eu vou mesclar mais tarde também

No passo 6 eu tive que usar     %código% porque todos os üäöß .. foram ignorados e não estavam no dicionário criado, mas agora eles estão lá:     %código%     (Teste: digitando, por exemplo, "Käse" ou "zweiunddreißig" imprime um *, então ele encontra essas palavras agora)

Filesizes: $ du -b qed*
18725   qed_affix.dat
103 qed.dat
12  qed.multi
6763456 qed.rws
Lines: $ wc -l qed* de_en
       6 qed.dat
       1 qed.multi
   54403 qed.rws
     717 qed_affix.dat
  334974 de_en

Faça o download deste pacote caso alguém precise dele.

O maior número de avisos que vejo agora no passo 6 é o seguinte: as últimas 5 linhas:

$ cat de_en | aspell --encoding=utf-8 create master -l ./qed ./qed.rws
...(many warnings appear)
Warning: Removing invalid affix 'o' from word zytostatika.
Warning: Removing invalid affix 'z' from word zytostatika.
Warning: Removing invalid affix 'o' from word zytostatikum.
Warning: Removing invalid affix 'z' from word zytostatikum.
Warning: The word "zzgl." is invalid. The character '.' (U+2E) may not appear at the end of a word. Skipping word.
$

Agora removi $ cat de_en | aspell --encoding=utf-8 create master -l ./qed ./qed.rws e $ aspell -d ./qed.rws -a ( aspell-en ) e coloquei todos os quatro arquivos aspell-de , $sudo apt-get remove aspell-en aspell-de , qed.dat e qed.multi em qed.rws . Meu qed_affix.dat está vazio BTW.

O novo pacote pode ser selecionado agora: gedit- > Ferramentas- > Definir idioma ...- > Desconhecido (qed).

Com relação aos avisos na etapa 6 /usr/lib/aspell palavras com um ponto no final não são verificados ortograficamente. Eu tentei jogar com /var/lib/aspell zzlg. linha adicionando um qed.dat porque o special ' -*- usa um . lá também, mas infelizmente não funcionou.

editar

Resolvido a verificação ortográfica de palavras com um ponto no final apenas usando grepping e adicionando-as à lista branca de verificação ortográfica. de.dat

    
por removelastdotonlyifitsthere 13.04.2017 / 14:36

3 respostas

3

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.

  1. Instale o pacote de dicionário aspell-en e aspell-de

  2. 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 .

  3. 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
    
  4. 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
    
  5. Copie de_affix.dat para o diretório atual e renomeie para qed_affix.dat .

  6. Crie o dicionário combinado:

    cat en.txt de.txt | aspell create master -l ./qed ./qed.rws
    
  7. Crie o arquivo qed.multi :

    add qed.rws
    
  8. Teste o dicionário usando -d ./qed . o ./ é necessário para forçar o aspell a procurar o diretório atual.

  9. Instale qed.dat qed.rws qed.multi e qed_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.

  10. 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.

    
por 13.08.2012 / 22:15
5

O Vim permite definir mais de um idioma para a verificação ortográfica, por exemplo,

:set spelllang=de,en

para alemão e inglês.

    
por 09.08.2012 / 18:14
1

Autor do Aspell aqui.

Você não pode apenas combinar dois dicionários de dois idiomas diferentes e esperar que funcione. Cada dicionário também possui um arquivo de dados associado a ele que descreve os recursos específicos da linguagem.

Sua melhor aposta é criar um novo idioma que possa lidar com inglês e alemão corretamente. Fazer isso é uma tarefa factível, mas não trivial. Eu posso ser capaz de ajudá-lo nesta tarefa, esta semana, se você não encontrar outra solução.

A verificação ortográfica geral em vários idiomas não é atualmente suportada pelo Aspell (ou a maioria dos outros verificadores ortográficos que eu conheço, incluindo o Hunspell).

    
por 13.08.2012 / 18:29