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 01/05/2007, 16:39] 82.233.181.124 |
dictconv [Le 18/03/2023, 10:40] (Version actuelle) L'Africain nettoyage |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | {{tag>feisty brouillon}} | + | {{tag>Jammy dictionnaires_encyclopedies}} |
+ | ---- | ||
+ | ====== 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.\\ |
- | Le programme détecte le type de dictionnaire par ses extensions : | + | Il a été codé par l'auteur de ktranslator et de wordtrans.\\ |
+ | Le programme détecte le type de dictionnaire par ses extensions :\\ | ||
+ | * .dct pour les dictionnaires Sdictionary; | ||
+ | * .dic pour les dictionnaires plain text; | ||
+ | * .ifo pour les dictionnaires [[:StarDict]]; | ||
+ | * .index pour les dictionnaires DICT; | ||
+ | * .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. | ||
- | .bgl pour les dictionnaires Babylon\\ | + | <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> |
- | .dct pour les dictionnaires Sdictionary\\ | + | ===== Pré-requis ===== |
- | .dic pour les dictionnaires plain text\\ | + | |
- | .ifo pour les dictionnaires StarDict\\ | + | * Disposer des [[:sudo|droits d'administration]]. |
- | .index pour les dictionnaires DICT\\ | + | * Disposer d'une connexion à Internet configurée et activée. |
- | .tei pour les dictionnaires Freedict (XML format)\\ | + | * Avoir installé [[:Stardict]]. |
- | + | * Avoir installé [[apt>stardict-tools]]. | |
- | 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. | + | |
- | + | ||
- | + | ||
- | + | ||
- | ===== Prérequis ===== | + | |
- | + | ||
- | Avoir installé [[http://doc.ubuntu-fr.org/stardict|stardict]] ou ktranslator.\\ | + | |
- | Avoir installé stardict-tools. | + | |
===== Installation ===== | ===== Installation ===== | ||
- | 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 desinstaller facilement. | ||
- | |||
- | Pour tout renseignement sur la compilation voir :http://doc.ubuntu-fr.org/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''\\ | ||
- | ''$ makeCode''\\ | ||
- | ''$ sudo checkinstall''\\ | ||
+ | Il suffit d'[[:tutoriel:comment_installer_un_paquet|installer le paquet]] **[[apt>dictconv]]**. | ||
===== Utilisation ===== | ===== Utilisation ===== | ||
- | 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'erreur)** | ||
- | |||
- | 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 la 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 [[http://doc.ubuntu-fr.org/gedit|gedit]] puis le retransformer en format stardict par stardict-editor. On prends 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 : | ||
- | |||
- | En ouvrant le .dic avec l'éditeur de texte gedit on remarque alors la cause du problème : plein de caractères du type "$suite de chiffres$" suivit d'une tabulation qui posent problème.\\ | ||
- | On va utiliser la commande sed (ultimate Stream EDitor) | ||
- | |||
- | http://sed.sourceforge.net/sed1line.txt | ||
- | http://www.grymoire.com/Unix/Regular.html | ||
- | http://www.grymoire.com/Unix/Sed.html#uh-1 | ||
- | |||
- | On les retire dans un terminal avec | ||
- | |||
- | cat Babylon_English_French.dic | sed 's/\$[0-9][0-9]*\$\t/\t/' > Babylon_English_French_new.dic | ||
- | cat Babylon_English_French.dic | sed 's|\$[0-9][0-9]*\$\t|\t|' > Babylon_English_French_nouveau.dic | ||
- | sed 's|\$[0-9][0-9]*\$\t|\t|'<Babylon_French_English_diction.dic>Babylon_French_English_diction_nouveau.dic | ||
- | |||
- | Il reste les caractères œ 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 . | ||
- | |||
- | c) On convertit le format plain text en format stardict : | ||
- | |||
- | on installe stardict-tools par synaptic | ||
- | |||
- | puis 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 a la ligne puis entrée. On peut corriger "à la main" puis refaire une nouvelle conversion. | ||
- | |||
- | ex ligne 72621 avec une mauvaise tabulation | ||
- | Here is a example dict.tab file: | + | ---- |
- | ============ | + | Contributeur : Tartanpion |
- | a 1\n2\n3 | + | |
- | b 4\\5\n6 | + | |
- | c 789 | + | |
- | ============ | + | |
- | It means: write the search word first, then a Tab character, and the definition. If the definition contains new line, just write \n, if contains \ character, just write \\. | + | |
- | Le dictionnaire par cette méthode est directement compressée. | ||
- | ===== Références ===== |