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 Les deux révisions suivantes
dictconv [Le 15/12/2011, 15:17]
127.0.0.1 modification externe
dictconv [Le 08/04/2016, 10:57]
L'Africain Maj de la page
Ligne 1: Ligne 1:
-{{tag>Jaunty ​dictionnaires_encyclopedies ​BROUILLON}}+{{tag>Trsuty ​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\\ +  * .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). 
-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.+À 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>​Il semble que sous [[:​Trusty|Ubuntu 14.04]] 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+
  
-On prend pour exemple un dictionnaire au format .bgl à cette adresse ​http://​www.babylon.com/​gloss/​glossaries.php \\+On prend pour exemple un dictionnaire au format .bgl à cette [[http://​www.babylon.com/​gloss/​glossaries.php|adresse]].\\
 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)**+====Procédé par conversion directe (pour le moment encore beaucoup d'​erreurs)====
  
-Pour convertir un fichier "​.bgl"​ en fichier compatible stardict "​.ifo"​.\\ +Pour convertir un fichier "​.bgl"​ en fichier compatible stardict "​.ifo"​: <​code>​cd ~/Bureau 
-  $ cd ~/Desktop +dictconv -o Babylon_English_French.ifo Babylon_English_French.BGL 
-  ​$ ​dictconv -o Babylon_English_French.ifo Babylon_English_French.BGL +</​code>​ 
- +On obtient donc trois nouveaux fichiers sur le bureau :
-On obtient donc trois nouveaux fichiers sur le bureau :\\+
   * Babylon_English_French.dict   * Babylon_English_French.dict
   * Babylon_English_French.idx   * Babylon_English_French.idx
   * Babylon_English_French.ifo   * 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.+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 :\\ +En convertissant vers StarDict et DICT, le fichier .dict n'est pas compressé. Si vous voulez compresser ce fichier, ​utilisez ​le programme ​**dictzip**. Après ​vous êtres mis dans le bon dossier, ​par exemple ​
-  ​$ ​cd /home/nom_de_l'​utilisateur/Desktop/babylon_eng_fr+<​code>​cd Bureau/babylon_eng_fr<​/code> 
 +Lancez la commande :<​code>​dictzip fichier_cible.dict<​/code> 
 +Soit ici : 
 +<​code>​dictzip Babylon_English_French.dict<​/code>
  
-on lance la commande de type :\\ 
  
-dictzip fichier_cible.dict\\ +====Procédé par conversion indirect====
- +
-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 ! 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. +Convertir d'​abord le fichier ​''​.bgl'' ​en format plain text, le modifier si nécessaire grâce à un [[:editeur_de_texte|éditeur de texte]] puis le retransformer en format stardict par stardict-editor. On prend toujours en exemple le même fichier ​''​.bgl'' ​mis sur le bureau ​: 
- +  * convertissez ​en plain text ("​.dic"​) : <​code>​cd ~/Bureau 
-a) On convertit ​en plain text ("​.dic"​) +dictconv -o Babylon_English_French.dic Babylon_English_French.BGL</​code>​ 
- +  * Corrigez ​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]]. 
-Dans un terminal ​: +On les retire dans un terminal avec : <​code>​sed '​s|\$[0-9]\+\$\t|\t|' ​ Babylon_English_French.dic > Babylon_English_French_nouveau.dic</​code>​
- +
-  $ 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. 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 ž.\\+[[:​tutoriel:​comment_modifier_un_fichier|Ouvrez ​le fichier]] et remplacez ​: mettre une copie du caractère mal converti "​Œ"​ et le remplacer par œ. Il se peut qu'il faille refaire la manœuvre ​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.\\ 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.\\+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... 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.\\ 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 ​+Pour finir, convertissez ​le format plain text en format stardict  
- +avec stardict-tools qu'on lance dans un terminal: <​code>​stardict-editor</​code>​
-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.\\ 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.\\+S'il y a des erreurs on peut noter les lignes en cause et les rechercher en ouvrant à nouveau le "​.dic"​. On peut corriger "à la main" puis refaire une nouvelle conversion.\\
  
 ex : ligne 72621 avec une mauvaise tabulation ex : ligne 72621 avec une mauvaise tabulation
Ligne 124: Ligne 87:
 ** Automatisation de la méthode indirecte ** ** Automatisation de la méthode indirecte **
  
-Le script suivant permet d'​automatiser l'​essentiel ​ de la méthode indirecte ci-dessus.+Le script suivant, ''​convert-bgl'', ​permet d'​automatiser l'​essentiel ​ de la méthode indirecte ci-dessus.
 Avec sed, on devrait pouvoir aussi gérer les cas particuliers. Avec sed, on devrait pouvoir aussi gérer les cas particuliers.
  
-<code>+<file bash convert-bgl>
 #!/bin/bash #!/bin/bash
 ## Nom de ce script: convert-bgl ## Nom de ce script: convert-bgl
Ligne 138: Ligne 101:
 ## Rendre ce script executable avec: ## Rendre ce script executable avec:
 # chmod a+x ./​convert-bgl # chmod a+x ./​convert-bgl
-## Pour executer ​ce script, le mettre dans le dossier où sont+## Pour exécuter ​ce script, le mettre dans le dossier où sont
 ## stockés les fichiers .BGL et faire: ## stockés les fichiers .BGL et faire:
 # ./​convert-bgl # ./​convert-bgl
Ligne 153: Ligne 116:
   mv --force $DICOACONVERTIR.*i* /​usr/​share/​stardict/​dic/​$DICOACONVERTIR   mv --force $DICOACONVERTIR.*i* /​usr/​share/​stardict/​dic/​$DICOACONVERTIR
 done done
-</code>+</file>
  
 ===== Références ===== ===== Références =====
- +  ​[[http://​www.grymoire.com/​Unix/​Sed.html#​uh-1|Sur sed]]
-  * 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.txt
  • Dernière modification: Le 18/03/2023, 10:40
  • par L'Africain