Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
dictconv [Le 01/01/2009, 15:30]
213.95.41.13
dictconv [Le 18/03/2023, 10:40] (Version actuelle)
L'Africain nettoyage
Ligne 1: Ligne 1:
-{{tag> ​brouillon conversion}}+{{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 =====
 + 
 +  * Disposer des [[:​sudo|droits d'​administration]].
 +  * Disposer d'une connexion à Internet configurée et activée.
 +  * Avoir installé [[:​Stardict]].
 +  * Avoir installé [[apt>​stardict-tools]].
  
-===== Prérequis =====  
- 
-  * Avoir installé [[Stardict]] ou ktranslator. 
-  * Avoir installé stardict-tools. 
-  * Avoir installé libxml2-dev (obligatoire pour la compilation) 
-  * Avoir installé checkinstall 
  
 ===== Installation ===== ===== Installation =====
  
-<note tip>​dictconv existe dorénavant en paquet, dans les dépôts.</​note>​ 
-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. +Il suffit d'​[[:​tutoriel:​comment_installer_un_paquet|installer ​le paquet]] **[[apt>dictconv]]**
-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 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 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][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 
-## Auteur: Mayeul KAUFFMANN. Licence GPL 2 ou ultérieure. 
- 
-## 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 
  
 ---- ----
  • dictconv.1230820218.txt.gz
  • Dernière modification: Le 18/04/2011, 14:46
  • (modification externe)