Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
dictconv [Le 15/12/2011, 15:17] 127.0.0.1 modification externe |
dictconv [Le 18/03/2023, 10:40] (Version actuelle) L'Africain nettoyage |
||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | {{tag>Jaunty dictionnaires_encyclopedies BROUILLON}} | + | {{tag>Jammy dictionnaires_encyclopedies}} |
| ---- | ---- | ||
| ====== Dictconv ====== | ====== Dictconv ====== | ||
| - | Dictconv est un programme pour convertir un format de fichier de dictionnaire en un autre format.\\ | + | Dictconv est une application pour convertir un format de fichier de dictionnaire en un autre format.\\ |
| Il a été codé par l'auteur de ktranslator et de wordtrans.\\ | Il a été codé par l'auteur de ktranslator et de wordtrans.\\ | ||
| Le programme détecte le type de dictionnaire par ses extensions :\\ | Le programme détecte le type de dictionnaire par ses extensions :\\ | ||
| - | * .bgl pour les dictionnaires Babylon\\ | + | * .dct pour les dictionnaires Sdictionary; |
| - | * .dct pour les dictionnaires Sdictionary\\ | + | * .dic pour les dictionnaires plain text; |
| - | * .dic pour les dictionnaires plain text\\ | + | * .ifo pour les dictionnaires [[:StarDict]]; |
| - | * .ifo pour les dictionnaires [[StarDict]]\\ | + | * .index pour les dictionnaires DICT; |
| - | * .index pour les dictionnaires DICT\\ | + | * .tei pour les dictionnaires Freedict (XML format). |
| - | * .tei pour les dictionnaires Freedict (XML format)\\ | + | Il convertit des dictionnaires de Freedict, Sdictionary et Stardict vers les dictionnaires de DICT, plain text et StarDict. |
| - | A l'heure actuelle (version 0.2), il convertit des dictionnaires de Babylon, Freedict, Sdictionary et Stardict vers les dictionnaires de DICT, plain text et StarDict. | + | |
| - | + | <note warning>Dictconv ne fonctionne plus correctement en tout cas lors de la conversion de dictionnaire BGL. Voir [[https://bugs.launchpad.net/ubuntu/+source/dictconv/+bug/347695|ici]] le rapport de bug.</note> | |
| - | ===== Prérequis ===== | + | ===== Pré-requis ===== |
| - | + | ||
| - | * Avoir installé [[Stardict]] ou [[ktranslator]]. | + | * Disposer des [[:sudo|droits d'administration]]. |
| - | * Avoir installé [[apt://stardict-tools|stardict-tools]]. | + | * Disposer d'une connexion à Internet configurée et activée. |
| + | * Avoir installé [[:Stardict]]. | ||
| + | * Avoir installé [[apt>stardict-tools]]. | ||
| ===== Installation ===== | ===== Installation ===== | ||
| - | ====par les dépôts officiels (recommandé)==== | ||
| - | Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt://dictconv|dictconv]]**. | + | Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>dictconv]]**. |
| - | |||
| - | ====par compilation==== | ||
| - | * Avoir installé libxml2-dev (obligatoire pour la compilation) | ||
| - | * Avoir installé checkinstall | ||
| - | |||
| - | Il va falloir compiler le programme dont les sources se trouvent ici : http://sourceforge.net/project/showfiles.php?group_id=146506. | ||
| - | On utilisera checkinstall pour créer un paquet au format ".deb" pour pouvoir le désinstaller facilement. Pour tout renseignement sur la compilation voir : [[:tutoriel:compilation]]. | ||
| - | |||
| - | On télécharge le fichier sur le bureau. On le décompresse en double cliquant dessus, il se crée un répertoire dictconv-0.2 sur le bureau. | ||
| - | On ouvre un terminal et on se met dans le répertoire dictconv-0.2 par la commande : | ||
| - | $ cd /home/nom_de_l'utilisateur/Desktop/dictconv-0.2 | ||
| - | Puis\\ | ||
| - | $ ./configure | ||
| - | $ make | ||
| - | $ sudo checkinstall | ||
| ===== Utilisation ===== | ===== Utilisation ===== | ||
| - | Dans un terminal, l'usage est de type : | + | Dans un terminal, l'usage est de type : <code>dictconv -o fichier_cible.ext fichier_original.ext</code> |
| - | $ dictconv -o fichier_cible.ext fichier_original.ext | + | Vous trouverez des dictionnaires à cette [[https://drive.google.com/drive/folders/0BzrQwK2v03aKWjlsQ3NsaWJKalU?resourcekey=0-DtgqOJiVFSDI231ugoQgiQ|adresse]].\\ |
| - | + | ||
| - | On prend pour exemple un dictionnaire au format .bgl à cette adresse http://www.babylon.com/gloss/glossaries.php \\ | + | |
| Babylon_English_French.BGL que l'on télécharge sur le bureau. | Babylon_English_French.BGL que l'on télécharge sur le bureau. | ||
| - | **1) Procédé par conversion directe (pour le moment encore beaucoup d'erreurs)** | ||
| - | |||
| - | Pour convertir un fichier ".bgl" en fichier compatible stardict ".ifo".\\ | ||
| - | $ cd ~/Desktop | ||
| - | $ dictconv -o Babylon_English_French.ifo Babylon_English_French.BGL | ||
| - | |||
| - | On obtient donc trois nouveaux fichiers sur le bureau :\\ | ||
| - | * Babylon_English_French.dict | ||
| - | * Babylon_English_French.idx | ||
| - | * Babylon_English_French.ifo | ||
| - | |||
| - | On crée un nouveau répertoire par exemple "babylon_eng_fr", on les place dedans et on met celui-ci dans le répertoire dic de stardict. | ||
| - | |||
| - | En convertissant vers StarDict et DICT, le fichier .dict n'est pas compressé. Si vous voulez compresser ce fichier, utiliser le programme dictzip : après vous êtres mis dans le bon répertoire par ex :\\ | ||
| - | $ cd /home/nom_de_l'utilisateur/Desktop/babylon_eng_fr | ||
| - | |||
| - | on lance la commande de type :\\ | ||
| - | |||
| - | dictzip fichier_cible.dict\\ | ||
| - | |||
| - | Soit ici\\ | ||
| - | $ dictzip Babylon_English_French.dict | ||
| - | |||
| - | |||
| - | **2) Procédé par conversion indirect** | ||
| - | |||
| - | Suivant les dictionnaires il se produit des erreurs de conversion c'est le cas avec le dictionnaire pris en exemple ! | ||
| - | |||
| - | Convertir d'abord le fichier .bgl en format plain text, le modifier si nécessaire grâce à un éditeur de texte [[:gedit]] puis le retransformer en format stardict par stardict-editor. On prend toujours en exemple le même fichier .bgl mis sur le bureau. | ||
| - | |||
| - | a) On convertit en plain text (".dic") | ||
| - | |||
| - | Dans un terminal : | ||
| - | |||
| - | $ cd ~/Desktop | ||
| - | $ dictconv -o Babylon_English_French.dic Babylon_English_French.BGL | ||
| - | |||
| - | b) On corrige les fautes : | ||
| - | |||
| - | Le dictionnaire est formé d'abord du mot, suivit d'une tabulation puis la définition.\\ | ||
| - | Si la définition contient une nouvelle ligne, écrire \n.\\ | ||
| - | En ouvrant le .dic avec l'éditeur de texte gedit on remarque alors la cause du problème : le mot suivi de caractères du type "$suite de chiffres$" suivit d'une tabulation.\\ | ||
| - | On va utiliser la commande [[sed]] (ultimate Stream EDitor). | ||
| - | On les retire dans un terminal avec : | ||
| - | |||
| - | $ sed 's|\$[0-9]\+\$\t|\t|' Babylon_English_French.dic > Babylon_English_French_nouveau.dic | ||
| - | |||
| - | |||
| - | Il reste les caractères du type "œ" qui n'ont pas été correctement convertis. | ||
| - | On ouvre le fichier en double cliquant le nouveau fichier avec gedit>remplacer : mettre une copie du caractère mal converti "" et le remplacer par oe (on pourrait le remplacer par œ mais comme dans la majorité des textes à traduire sera plutôt de la forme oe). Il se peut qu'il faille refaire la manoeuvre plusieurs fois par copier coller du caractère qui pose problème le œ est apparemment converti en différent type de .\\ | ||
| - | Cette manœuvre sera très utile dans le cas du dictionnaire français-anglais.\\ | ||
| - | Il vaut mieux faire une relecture "en diagonale" pour retrouver d'autres erreurs du type quelques lettres mises en majuscule "ÉE" pour ée, rarement une apostrophe sous forme , des mots mis en majuscule quand ils commencent par un "à"). Et quelques erreurs dans les articles.\\ | ||
| - | Ex : ligne 33 Australasia, ligne 24 jacobinic, ligne 149605,73577,147429,147257,147346... | ||
| - | |||
| - | On peut pour s'aider afficher les lignes dans les préférences de gedit.\\ | ||
| - | |||
| - | c) On convertit le format plain text en format stardict : | ||
| - | |||
| - | Avec stardict-tools qu'on lance dans un terminal. | ||
| - | |||
| - | $ stardict-editor | ||
| - | |||
| - | Dans l'onglet compile on indique le chemin du ".dic", on laisse le format tab file en bas et on clique sur build.\\ | ||
| - | S'il y a des erreurs on peut noter les lignes en cause et les rechercher en ouvrant à nouveau le ".dic" avec gedit : en faisant rechercher , aller à la ligne puis entrée. On peut corriger "à la main" puis refaire une nouvelle conversion.\\ | ||
| - | |||
| - | ex : ligne 72621 avec une mauvaise tabulation | ||
| - | |||
| - | Le dictionnaire par cette méthode est directement compressé. | ||
| - | |||
| - | |||
| - | ** Automatisation de la méthode indirecte ** | ||
| - | |||
| - | Le script suivant permet d'automatiser l'essentiel de la méthode indirecte ci-dessus. | ||
| - | Avec sed, on devrait pouvoir aussi gérer les cas particuliers. | ||
| - | |||
| - | <code> | ||
| - | #!/bin/bash | ||
| - | ## Nom de ce script: convert-bgl | ||
| - | |||
| - | ## Pour exécuter ce script, l'utilisateur courant | ||
| - | ## doit pouvoir écrire dans le dossier /usr/share/stardict/dic/ | ||
| - | ## Pour cela, soit il faut lancer ce script en root (c'est risqué), soit faire ceci: | ||
| - | # sudo chown $USER:$USER /usr/share/stardict/dic/ | ||
| - | |||
| - | ## Rendre ce script executable avec: | ||
| - | # chmod a+x ./convert-bgl | ||
| - | ## Pour executer ce script, le mettre dans le dossier où sont | ||
| - | ## stockés les fichiers .BGL et faire: | ||
| - | # ./convert-bgl | ||
| - | |||
| - | for i in $(ls *.BGL) | ||
| - | do | ||
| - | # on enleve l'extension '.BGL' au nom de fichier | ||
| - | DICOACONVERTIR=${i%.BGL} | ||
| - | dictconv -o $DICOACONVERTIR-tmp.dic $DICOACONVERTIR.BGL | ||
| - | sed 's|\$[0-9][0-9]*\$\t|\t|'<$DICOACONVERTIR-tmp.dic>$DICOACONVERTIR.dic | ||
| - | /usr/lib/stardict-tools/tabfile $DICOACONVERTIR.dic | ||
| - | rm -I $DICOACONVERTIR.dic $DICOACONVERTIR-tmp.dic | ||
| - | mkdir -p /usr/share/stardict/dic/$DICOACONVERTIR | ||
| - | mv --force $DICOACONVERTIR.*i* /usr/share/stardict/dic/$DICOACONVERTIR | ||
| - | done | ||
| - | </code> | ||
| - | |||
| - | ===== Références ===== | ||
| - | |||
| - | * http://ktranslator.sourceforge.net/index.html | ||
| - | * http://sed.sourceforge.net/sed1line.txt | ||
| - | * http://www.grymoire.com/Unix/Regular.html | ||
| - | * http://www.grymoire.com/Unix/Sed.html#uh-1 | ||
| ---- | ---- | ||