Ceci est une ancienne révision du document !


Dictconv est un programme pour convertir un format de fichier de dictionnaire en un autre format.
Il a été codé par l'auteur de ktranslator et de wordtrans.

Le programme détecte le type de dictionnaire par ses extensions :
.bgl pour les dictionnaires Babylon
.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)

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.


Avoir installé stardict ou ktranslator.
Avoir installé stardict-tools.

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
$ make
$ sudo checkinstall

Dans un terminal, l'usage est de type :

$ dictconv -o fichier_cible.ext fichier_original.ext

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.

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 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 :

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][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 faut mieux faire une relecture "en diagonale" pour retrouver d'autres erreurs du type quelques lettre mise en majuscule "ÉE" pour ée, rarement une apostrophe sous forme Œ, des mots mis en majuscule quand il commence par un "à"). Et quelque erreur 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 a 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ée.

  • dictconv.1180643551.txt.gz
  • Dernière modification: Le 18/04/2011, 14:44
  • (modification externe)