Gedit ou un autre éditeur non-command line avec la possibilité d'orthographier deux langues en même time

Je suis à la search d'un éditeur capable d'orthographier deux langues en même time (allemand et anglais). Gedit ne peut pas le faire sortir de la boîte.

Mais je veux utiliser Gedit. Il devrait être possible en fusionnant les dictionarys anglais et allemand et sélectionner le file créé sous devises-> Définir la langue …

modifier

Je l'ai presque (certains avertissements à l'étape 6 et par exemple zzgl. (Mots avec un point à la fin) ne sont pas corrigés) 🙂 Merci à votre post Kevin Atkinson 🙂

(Je peux append que pour l'anglais j'ai utilisé aspell6-en-7.1-0.tar.bz2 (c'est déjà une nouvelle version / mise à jour) mais pour l'allemand j'ai utilisé http://extensions.services.openoffice.org/project/dict-de_DE_frami parce que c'est plus mis à jour.Extraction de .oxt en utilisant unzip.Dans de_DE_frami sont les deux files nécessaires d'affixe et de dictionary appelés de_DE_frami.aff et de_DE_frami.dic le de_DE_frami.aff à qed_affix.dat et le de_DE_frami.dic à de.txt .

Note: Pour l'allemand il y a aussi une extension: http://extensions.services.openoffice.org/de/project/DFEW que je vais merge plus tard aussi)

À l'étape 6, j'ai dû utiliser $ cat de_en | aspell --encoding=utf-8 create master -l ./qed ./qed.rws $ cat de_en | aspell --encoding=utf-8 create master -l ./qed ./qed.rws parce que tous les files üäöß .. ont été ignorés et n'étaient pas dans le dictionary créé, mais maintenant ils sont là: $ aspell -d ./qed.rws -a (Test: tapez par exemple "Käse" ou "zweiunddreißig" imprime un *, donc il trouve ces mots maintenant)

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

Téléchargement de ce package au cas où quelqu'un en aurait besoin.

Les plus grands avertissements que je peux voir maintenant à l'étape 6 ressemblent à ceci – les 5 dernières lignes:

  $ cat de_en |  aspell --encoding = utf-8 créer un maître -l ./qed ./qed.rws
 ... (de nombreux avertissements apparaissent)
 Avertissement: Suppression de l'affixe invalide 'o' du mot zytostatika.
 Avertissement: Suppression de l'affixe invalide 'z' du mot zytostatika.
 Avertissement: Suppression de l'affixe invalide 'o' du mot zytostatikum.
 Avertissement: Suppression de l'affixe invalide 'z' du mot zytostatikum.
 Attention: Le mot "zzgl".  est invalide.  Le personnage '.'  (U + 2E) peut ne pas apparaître à la fin d'un mot.  Sauter le mot.
 $ 

Maintenant, j'ai enlevé aspell-en et aspell-de ( $sudo apt-get remove aspell-en aspell-de ) et mettre tous les quatre files qed.dat , qed.multi , qed.rws et qed_affix.dat dans /usr/lib/aspell . Mon /var/lib/aspell est vide BTW.

Le nouveau package peut être sélectionné maintenant: gedit-> Tools-> Set Language …-> Unknown (qed).

En ce qui concerne les avertissements à l'étape 6 zzlg. les mots avec un point à la fin ne sont pas corrigés. J'ai essayé de jouer avec qed.dat special ' -*- en ajoutant un . parce que le de.dat utilise a . là aussi, mais malheureusement ça n'a pas marché.

modifier

Résolu la vérification orthographique des mots avec un point à la fin en les greffant uniquement et en les ajoutant à la list blanche de vérification orthographique. $ cat de_en | sed -n '/\./{s/[./]\+[^./]*$//;p}' >> /home/<username>/.config/enchant/qed.dic

Aspell Auteur Ici.

Comme je l'ai dit dans une réponse précédente, vous ne pouvez pas simplement combiner des dictionarys de différentes langues et espérer que cela fonctionne. Vous devez créer une nouvelle langue qui combine les fonctionnalités des deux langues d'origine.

Heureusement pour l'anglais et l'allemand c'est assez facile; cependant, la qualité de suggestion souffrira pour les mots anglais puisque nous désactiverons l'utilisation de la search sonore.

  1. Installez le package aspell-en et le package aspell-de dictionary

  2. Aller dans un directory vide pour garder tout propre. Aussi pour éviter les problèmes de charset, changez les parameters régionaux en "C" en définissant LC_ALL=C

  3. Récupérez les dictionarys anglais et allemand dans les lists de mots

     aspell dump master en > en.txt aspell dump master de > de.txt 
  4. Combinez en.dat et de.dat, que vous pouvez généralement find dans usr/lib/aspell .

    Le dictionary anglais utilise la search soundlike mais ce n'est pas le cas avec le dictionary allemand (en raison du fait qu'il est spécifique à l'anglais et plus importable, il est incompatible avec la compression d'affixe), nous allons donc le désactiver. Le dictionary anglais n'utilise pas la compression d'affixe mais le dictionary allemand le fait nous utiliserons simplement le file d'affixe pour le dictionary allemand. (Cela évitera d'avoir à développer le dictionary allemand et donc d'augmenter sa taille).

    Nous appellerons la langue qed, 'q' puisque très peu de langues commencent par q, 'e' pour l'anglais et 'g' pour l'allemand. (Le nom de la langue devrait généralement être de 2 à 3 lettres, mais aspell ne prend pas vraiment en count, donc en-de ou un autre nom pourrait fonctionner, mais un nom de 2 ou 3 lettres est garanti)

    Le file sera nommé qed.dat et contient les éléments suivants:

     name qed charset iso8859-1 special ' -*- soundslike none affix qed affix-compress true 
  5. Copiez de_affix.dat dans le directory courant et renommez-le qed_affix.dat .

  6. Créez le dictionary combiné:

     cat en.txt de.txt | aspell create master -l ./qed ./qed.rws 
  7. Créez le file qed.multi :

     add qed.rws 
  8. Testez le dictionary en utilisant -d ./qed . le ./ est nécessaire pour forcer aspell à searchr le directory courant.

  9. Installez qed.dat qed.rws qed.multi et qed_affix.dat quelque part où aspell le finda. Veuillez consulter le manuel pour plus d'informations sur la manière dont aspell search les files de données de dictionary et de langue.

  10. Terminé. Tout devrait fonctionner maintenant. Une solution plus sophistiquée permettra une certaine forme de search sonore pour une meilleure qualité de suggestion. Mais cela nécessite un soin particulier lorsqu'il est utilisé avec la compression d'affixe (voir le manuel d'Aspell pour plus de détails). Comme alternative, le dictionary allemand peut être étendu et la search sonore anglaise peut être utilisée, mais cela pourrait ne pas fonctionner si bien sur les mots allemands.

Le cas du peignage de l'anglais et de l'allemand était facile car ils utilisaient tous les deux le même jeu de caractères (iso-8859-1) et parce qu'un seul langage utilisait la compression d'affixe. La combinaison d'autres langues prendra plus de travail, mais c'est possible une fois que vous savez ce que vous faites. J'ai détaillé les étapes ici en détail pour donner aux lecteurs une idée du fonctionnement d'Aspell, donc une chose similaire peut être utilisée pour d'autres combinaisons de langues.

Si les deux langues utilisent la compression d'affixe, les files d'affixe doivent être combinés afin qu'il n'y ait pas de drapeaux en conflit, ou l'un des dictionarys devra être développé.

Si les deux langues utilisent un jeu de caractères 8 bits différent d'un jeu de caractères compatible qui peut prendre en charge les deux langues, nous devons utiliser. Si un standard n'existe pas, un nouveau peut être créé. Pour éviter toute confusion, les lists de mots doivent être converties en utf-8 et Aspell doit être invité à attendre toutes les inputs et sorties dans utf-8 au lieu du charset qui est utilisé en interne, ce qui est par défaut pour des raisons historiques.

Vim permet de définir plus d'une langue pour la vérification orthographique, par exemple

 :set spelllang=de,en 

pour l'allemand et l'anglais.

Aspell Auteur Ici.

Vous ne pouvez pas combiner deux dictionarys de deux langues différentes et espérer que cela fonctionne. Chaque dictionary contient également un file de données qui décrit les caractéristiques propres à la langue.

Votre meilleur pari est de créer une nouvelle langue qui peut gérer correctement l'anglais et l'allemand. Cela est une tâche faisable mais non sortingviale. Je pourrais peut-être vous aider avec cette tâche cette semaine si vous ne trouvez pas d'autre solution.

Généralement, la vérification orthographique multilingue n'est pas prise en charge par Aspell (ou la plupart des vérificateurs d'orthographe que je connais, y compris Hunspell).