ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

[[stardict]]

Piste: » stardict


Stardict

StarDict est une interface permettant de consulter des dictionnaires hors ligne (et des outils de traduction en ligne depuis la version 3.0). C'est un logiciel libre distribué sous licence GPL et disponible pour Linux, Windows, FreeBSD et Solaris.

StarDict ne comporte à la base aucun dictionnaire. Il faut les installer soi-même.

Stardict va utiliser ces fichiers de traduction grâce à une interface en 3 zones. La zone du haut permet de saisir un mot à traduire, celle de gauche est une liste de mots se rapprochant de celui saisi, et celle principale, affiche les résultats des différents dictionnaires sélectionnés.

Il offre aussi la possibilité de chercher sur différents moteurs de traduction en ligne le mot saisi.

Enfin, avec des outils comme stardict-editor, il permet de modifier, d'augmenter, voire de créer des dictionnaires.

Installation

Installation du logiciel

Pour tout problème d'installation se référer à cette page : comment installer un paquet.

La version 3.0.1 est disponible dans le dépôt Universe (hardy).

On recherche et installe le paquet stardict. Pour ceux voulant convertir des dictionnaires au format stardict : installer aussi le paquet stardict-tools.

Depuis la version 3.0.1, une nouvelle fonctionnalité peut rendre l'utilisation des dictionnaires assez pénible : "Dict Net" (dictionnaires en réseau). Son utilisation fait apparaitre dans la liste des mots des liens en chinois. Il est simple et recommandé de désactiver cette fonctionnalité comme suit : aller dans les préférences de StarDict, puis sélectionner "Dict Net" et décocher la case "Activer les dictionnaires en réseau". Voir captures d'écran ci-dessous.

Installation des dictionnaires

On décompresse le fichier tarball simplement en double cliquant dessus (grâce au gestionnaire d'archives file-roller).

Puis deux possibilités :

1) Soit en tant qu'utilisateur courant : on ouvre l'explorateur de fichier nautilus. Affichage : montrer les fichiers cachés, aller dans le répertoire "/home/nom_de_l'utilisateur/.stardict" (qui n'est pas visible par défaut), y créer un dossier nommé "dic" et y placer par copier-coller le répertoire contenant le nouveau dictionnaire auparavant décompressé.

2) Soit en ouvrant l'explorateur de fichiers nautilus en mode superutilisateur, dans un terminal (ce qui permet de l'installer pour tous les utilisateurs de l'ordinateur).

gksudo nautilus

On navigue jusqu'au répertoire des dictionnaires de stardict : /usr/share/stardict/dic et on y met le répertoire décompressé contenant les fichiers du dictionnaire en faisant le copier-coller en tant qu'administrateur cette fois-ci.

Il existe des dictionnaires au format "dictionnaire-arbre" (Tree dictionaries). FIXME
Dans ce cas les mettre au choix comme précédemment soit dans .stardict dans un nouveau répertoire treedict ou dans /usr/share/stardict/treedict.

Où récupérer de nouveaux dictionnaires

La quasi totalité des dictionnaires stardict sont stockés sur le site même de StarDict (http://stardict.sourceforge.net/Dictionaries.php, prendre le format comprimé tarball ".tar".) ; mais, pour mieux s'y retrouver, les dictionnaires francophones sont recensés ci-dessous (avec la possibilité de les télécharger directement : clic droit, enregistrer la cible du lien sous ...).

Dictionnaires Français (6 dictionnaires)

Dictionnaire Auteur1ère éditionNombre de mots Téléchargement Licence Lien vers l'auteur
woayfu-ff 20 000ici
Dictionnaire de la langue françaiseÉmile Littré 1863 120 000 ici GNU-GPL site
Dictionnaire, 6ème édition Académie Française 1835 28 000 ici Domaine public Ebooks libre et gratuit
Dictionnaire, 8ème édition Académie Française 1935 31 000 ici Domaine public Ebooks libre et gratuit
Dictionnaire des idées reçues Gustave Flaubert 1912 1 000 ici Domaine public Ebooks libre et gratuit
Grand Dictionnaire de Cuisine Alexandre Dumas 1873 2 000 ici Domaine public Pitbooks
Pour une utilisation normale (recherche de définitions de mots français), le Littré est recommandé, auquel on peut adjoindre le Dictionnaire de l'Académie Française de 1935 et le woayfu-ff pour des définitions de mots plus modernes. Le dictionnaire de l'Académie française de 1835 est lui a priori réservé aux amateurs du genre, n'apportant (pour ce que j'en ai vu) rien de plus que son petit frère, la 8ème édition.

Dictionnaires bilingues "Français-autre langue" (11 langues)

Langue Nombre de mots Répertoire TéléchargementLicence Lien vers l'auteur
vietnamien 47 000 Misc ici
anglais 36 000 fr(français) ici
italien 36 000 fr(français) ici
chinois 34 000 fr(français) ici
breton 33 000 fr(français) ici GNU-GPL
néerlandais 10 000 freedict ici GNU-GPL site
suédois 9 000 quick ici site
hongrois 7 800 Misc ici
danois 6 000 quick ici site
allemand 6 000 freedict ici GNU-GPL site
corse1 800 fr(français) ici GNU-GPL Corsica.net
Pour que le nom du dictionnaire "français-italien" apparaisse en français (et non en chinois) dans l'interface de StarDict, il faut modifier le fichier "woaifayu-fi.ifo" (avant de le placer dans /usr/share/stardict/dic) en remplaçant la ligne "bookname=我爱法语-法意词典" par la ligne suivante : "bookname=français-italien"

Dictionnaires bilingues "autre langue-français" (15 langues)

Langue Nombre de mots Répertoire TéléchargementLicence Lien vers l'auteur
anglais 43 000 fr(français) ici
vietnamien 38 000 Misc ici
breton 33 000 fr(français) ici GNU-GPL
chinois 25 000 zh_CN ici
japonais 17 000 Misc ici cf ici site
néerlandais 17 000 freedict ici GNU-GPL site
wallon 13 000 fr(français) ici GNU-GPL site
latin 10 000 fr(français) ici GNU-GPL Collatinus
allemand 8 000 freedict ici GNU-GPL site
suédois 7 000 quick ici site
gaëlique d'Irlande 6 000 fr(français) ici site
kabyle (☥) 3 000 fr(français) ici Association Culturelle IMEDYAZEN
corse 2 000 fr(français) ici GNU-GPL Corsica.net
danois 2 000 quick ici site
russe 300 XDXF ici site

(☥) utilise l'alphabet latin.

Autres dictionnaires français-anglais et anglais-français

N.B. : Les dictionnaires français-anglais et anglais-français "woaifayu" (cf. répertoire "fr-français"), parmi les plus riches (en nombre de mots) sont indiqués dans les tableaux ci-dessus. Mais beaucoup d'autres dictionnaires entre ces deux langues existent au format StarDict, dont des dictionnaires spécialisés. Nous les avons regroupés dans le tableau ci-dessous. A chacun de tester pour trouver ceux qui lui sont les plus utiles.

Langue Nombre de mots Répertoire TéléchargementLicence Lien vers l'auteur
anglais-français 8 800 freedict ici
français-anglais 7 800 freedict ici
anglais-français 20 100 quick ici
français-anglais 35 300 quick ici
français-anglais 41 400 XDXF ici GNU Public License
français-anglais 38 600 XDXF ici
français de la botanique-anglais 300 XDXF ici
français de la géographie-anglais 7 200 XDXF ici
français de l'histoire-anglais 1 700 XDXF ici
anglais-français 38 900 XDXF ici
anglais-français de la botanique 400 XDXF ici
anglais-français de la géographie 7 000 XDXF ici
anglais-français de l'histoire 1 700 XDXF ici

Voir aussi : Babylon
http://www.babylon.com/gloss/glossaries.php
(dictionnaire au format ".bgl" à convertir au format stardic)
http://info.babylon.com/glossaries/387/Babylon_English_French.BGL
http://info.babylon.com/glossaries/4E5/Babylon_French_English_diction.BGL

Configuration des dictionnaires en-ligne

Depuis la version 3.0, StarDict permet aussi l'utilisation des dictionnaires en ligne.FIXME

Utilisation

Généralités

  • StarDict se lance à partir du menu Accessoires > StarDict. Il se met dans la zone de notification.
  • Avec un clic droit sur l'icône StarDict de la zone de notification on peut fermer le programme ("Quitter") ou rendre active/inactive la fonction de scan, en cochant/décochant la case "Scan".

  • La fonction de scan de StarDict ne doit pas être confondue avec les opérations que l'on peut réaliser avec un scanneur (cf. XSane et autres applications). Elle ne nécessite pas de scanneur. Il s'agit d'une fonction de scan de ce qui se trouve sur l'écran de l'ordinateur. Elle permet d'obtenir la définition de n'importe quel mot présent à l'écran (quel que soit le logiciel utilisé : navigateur Internet, traitement de texte ou autre). Il suffit de sélectionner le mot voulu (par double-clic ou autrement) et la définition apparait dans une nouvelle fenêtre, à condition que le mot soit présent dans les dictionnaires activés. Si le mot est absent des dictionnaires, StarDict affiche "<Non trouvé!>". Exemple, le dictionnaire Littré étant activé dans StarDict :

  • Un simple clic sur l'icône StarDict de la zone de notification ouvre le programme en plein champ.
  • La fenêtre StarDict comporte un certain nombre d'icônes permettant l'utilisation et la configuration du logiciel. Parmi les plus importantes, les icônes "gestion des dictionnaires" et "préférences".
  • Vous pouvez faire un tour dans les préférences pour y mettre vos réglages. Vous pouvez par exemple utiliser le réglage "scanner la sélection" : il vous donne la possibilité de paramétrer une touche d'activation pour la fonction de scan.
  • Allez aussi faire un tour dans la gestion des dictionnaires : pour activer ou désactiver ceux-ci et les classer par ordre de prédilection dans la fenêtre des résultats. On peut par exemple mettre tous les dictionnaires anglais-français par ordre d'importance puis les dictionnaires français-anglais. On peut activer de façon distincte pour les modes de "recherche" et de "scan" le ou les dictionnaire(s) que l'on souhaite utiliser en vue d'un travail donné, et désactiver tous les autres dictionnaires dont on n'a pas besoin pour ce travail. Dans la fenêtre "Gestion des dictionnaires", activer le bouton "Gestion des dictionnaires" pour avoir accès à la liste avec les cases à cocher permettant l'activation ou la désactivation des dictionnaires.

N.B. : apparaissent dans la gestion des dictionnaires les seuls dictionnaires que vous avez préalablement installés (voir les paragraphes Installation des dictionnaires et Où récupérer de nouveaux dictionnaires)
  • Pour avoir la définition d'un mot (via le mode "scan") il faut sélectionner le mot ou le groupe de mot avec la souris, double cliquer dessus aura le même effet pour un mot seul.
  • Il peut être intéressant de lancer automatiquement StarDict au démarrage de la session (Système>Préférences>Sessions) : dans ce cas, il peut être utile de "cacher la fenêtre principale au démarrage de Stardict" (dans Préférences>Options de l'interface StarDict).

Comment connaitre les caractéristiques d'un dictionnaire (auteur, licence...)

Si le fichier "ifo" a été correctement renseigné par l'auteur lors de la création du dictionnaire, vous trouverez les informations utiles comme suit :

  • Allez dans la gestion des dictionnaires (icône du bas à droite),
A cette étape, il y a plus simple... au lieu de suivre la démarche indiquée ci-dessous, il suffit de double-cliquer sur un dictionnaire pour ouvrir la fenêtre donnant ses caractéristiques.
  • Bouton "Gestion des Dictionnaires",
  • Sélectionnez dans la liste le dictionnaire dont vous souhaitez connaitre les caractéristiques,
  • Cliquer sur l'icône "ampoule" à droite.
  • Voir la capture d'écran ci-dessous, avec l'exemple du dictionnaire "Corse-Français" :

Comment activer la prononciation des mots

Pour pouvoir prononcer certains mots (uniquement en anglais) on peut installer le paquet WyabdcRealPeopleTTS. Il est composé d'un ensemble de mot au format wav.

Récupérez le tarball à cette adresse :
http://prdownloads.sourceforge.net/stardict/WyabdcRealPeopleTTS.tar.bz2?download

Décompressez le puis deux possibilités :

1) en tant qu'utilisateur courant : placez le répertoire WyabdcRealPeopleTTS dans le répertoire caché .stardic de votre home : /home/nom_de_l'utilisateur/.stardict/WyabdcRealPeopleTTS.
Allez dans les préférences de stardic>dictionnaire>son, activer le son et mettre le chemin de votre répertoire WyabdcRealPeopleTTS : /home/nom_de_l'utilisateur/.stardict/WyabdcRealPeopleTTS.

2) ou placez le grâce à nautilus en mode superutilisateur dans "/usr/share/".

Édition et conversion des dictionnaires

Dissection d'un dictionnaire

Quelques informations sur le format des dictionnaires stardict.

Pour ouvrir un dictionnaire Stardict va chercher l'extension .ifo, puis ouvrir le fichier .idx ou .idx.gz et le fichier .dict.dz ou .dict qui est dans le même répertoire et avec le même nom. Il peut y avoir un fichier .syn non obligatoire.

Le fichier ".ifo"

De type :
StarDict's dict ifo file
version=2.4.2
[options] qui sont de types :
bookname= requis
wordcount= requis
synwordcount= requis si le fichier ".syn" existe
idxfilesize= requis
sametypesequence= très important mais non obligatoire
description=
author=
email=
website=

Si l'option de sametypesequence est placée, elle indique à StarDict que les données de chaque mot dans le dossier de .dict auront le même type de données. Chaque dictionnaire devrait essayer d'employer le dispositif de sametypesequence pour économiser l'espace disque.
Exemples :

  • 'm' : les mots sont du texte pur au format utf-8 finissant par '\0'.
  • 'x' : dictionnaire converti à partir d'un fichier xdxf (cf l'utilitaire makedict ci-dessous), ce qui permet des indications de style (cf le site xdxf).
  • 'g' : dictionnaire créé en utilisant les informations de style de pango: cf Pango markup language.

Le fichier ".idx" est une liste de noms.

Le fichier ".syn" contient des informations pour les synonymes, ce qui signifie que quand vous rentrez un synonyme, StarDict va chercher un autre mot en relation avec lui.

Le fichier ".dict". est une séquence de données, le placement et la taille de chaque mot est enregistré dans le fichier ".idx" correspondant. Ce fichier peut être compressé : son extension est alors ".dict.dz".

Outils de conversion et d'édition

Stardict-tools

Ce paquet contient les outils de conversion de dictionnaires qui peuvent convertir les dictionnaires de DICT, wquick, mova and pydict au format stardict. Il inclut notamment :

stardict-editor

{{capture-stardict-editor.png|

stardict-editor est un utilitaire graphique qui permet de "compiler" et "décompiler" un dictionnaire (i.e. passer d'un fichier texte au format stardict et vice-versa).
Pour décompiler un dictionnaire, c'est-à-dire le convertir du format StarDict au format texte tabulé :

  • prenons l'exemple d'un dictionnaire "langue1_langue2"
  • mettre sur votre bureau le répertoire contenant les trois fichiers du dictionnaire aux extensions "ifo", "dict.dz" et "idx" (certains dictionnaires peuvent comporter un 4ème fichier ayant une extension "syn")
  • le dictionnaire ayant son fichier dict compressé - extension .dict.dz au lieu de .dict -, il faut décompresser ce dernier. Pour ce faire, le renommer en langue1_langue2.dict.gz, puis clic-droit, extraire ici.
  • lancer stardict-editor (Alt+F2 –> stardict-editor → lancer)
  • onglet "DeCompile"... Indiquer le chemin du fichier à décompiler (bouton "Browse...". Important : il faut indiquer précisément le chemin du fichier ayant l'extension "ifo" (langue1_langue2.ifo) et sélectionner celui-ci, puis clic sur "ouvrir")
  • clic sur le bouton "Decompile" (en bas de la fenêtre stardict-editor)
  • stardict-editor affiche alors le message :
Building...
Write to file: langue1_langue2.txt
Done!
  • vous trouverez le fichier langue1_langue2.txt dans /home/votre_identité : il s'agit de votre dictionnaire au format texte tabulé.
tabfile

Exécutable en ligne de commande, qu'on trouve dans /usr/lib/stardict-tools/. Il permet uniquement de compiler. La syntaxe est : /usr/lib/stardict-tools/tabfile mondico.txt

Les 2 outils précédents proposent de "compiler" un dictionnaire texte : pour cela, il faut que ce fichier texte respecte une certaine syntaxe :

  • Être encodé en UTF-8.
  • Chaque ligne du fichier doit correspondre à un mot et sa définition.
  • La ligne est constituée :
    1. du mot
    2. suivi d'une tabulation
    3. suivi de la définition (si on souhaite que la définition soit sur plusieurs lignes, les séparer par \n ).

Makedict

http://sourceforge.net/project/showfiles.php?group_id=95155&package_id=160978
Il convertit de : dictd, dsl, sdict, stardict, xdxf vers dictd (expérimental), stardict, xdxf. Pour le compiler, téléchargez l'archive et suivre les instructions du fichier README.

Exemple d'utilisation (conversion d'un fichier xdxf (XML) en fichier Stardict) :

./makedict -i xdxf -o stardict exemple.xdxf

(avec sudo ? FIXME )

Dictconv

cf DictConv. Le seul outil permettant de convertir les fichiers de babylon de type ".bgl". Il convertit des dictionnaires de Babylon, Freedict, Sdictionary et Stardict vers les dictionnaires au format DICT, plain text et StarDict.

rtf2xml

Un petit utilitaire en python, qui transforme le format microsoft rtf en xml. il est téléchargeable ici (j'ai dû télécharger le paquet python-profiler pour que ça marche). Problème avec les caractères non ascii ? FIXME

rtf2xml monfichier.rtf

tidy

cf ici. tidy (disponible dans synaptic) permet notamment la conversion de HTML en XHTML : ce qui permet ensuite d'utiliser des feuilles XSL, par exemple pour convertir en XDXF.

tidy -asxhtml -o exemple.xhtml exemple.html

bouts de codes divers

Convertisseur de polices non-latines (symbol ou greekttf pour le grec, etc.) en utf-8

(ou "comment échapper aux bidouillages microsoftiens").

Lorsqu'on récupère des lexiques originellement au format doc ou html, composés de caractères non-latins, on risque d'être confronté au problème suivant : les caractères visiblement non-latins peuvent s'avérer être des caractères latins, affublés d'une police comme "symbol". Pour remédier à ça, voici un petit programme en C qui convertit ces caractères en l'unicode correspondant, à compiler ( gcc -o convertcarac convertcarac.c) et exécuter :

./convertcarac lexiquecarac.txt <avant.txt >apres.txt

avec lexiquecarac.txt un fichier de conversion des caractères (encodé en utf-8), dont voici un mini-exemple :

V   ω
a   α
b   β

avant.txt quant à lui est un fichier texte de la même structure que décrite plus haut (paragraphe tabfile), encodé lui aussi en utf-8 :

apo   loin de
agV   conduire

le code convertira les éléments de la première colonne uniquement. apres.txt devrait contenir après exécution :

απο   loin de
αγω   conduire

Le code :

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define ALPHABETMAX 100
 
int creetableau(FILE* fichier , char tab[ALPHABETMAX][2][5], int* taille){
	int i=0, j=0, k=0, drapeau=0;
	char c;
	while((c = getc(fichier)) != EOF){
		if(c=='\t'){
			drapeau=1;
			j=1;
			k=0;		
		}else 
		if(c=='\n'){
			drapeau=0;
			j=0;
			i++;
			k=0;			
		}else{
			tab[i][j][k]=c;
			tab[i][j][++k]='\0';
		}
	}
	*taille=i;
	return 0;
}
 
int apptableau(int taille, char d[5], char tab[ALPHABETMAX][2][5], int* ind){
	int res=-1, i=0, victoire=1, j=0;	
	for(i=0;i<taille;i++){
		victoire=1;
		j=0;
		while( (d[j]!='\0') && (tab[i][0][j]!='\0') ){
			if (d[j]!=tab[i][0][j]){
				victoire=0;
				break;
			}
			j++;
		}
		if (victoire && (j>0)){
			*ind=i;
			res=1;
		}
	}
	return res;
}
 
 
int main(int narg, char** argv) {
	char tab[ALPHABETMAX][2][5]; 
	int i=0, j=0, k=0, drapeau=1, ind=0, res=0, taille=0;
	char c,e;
	char d[5];
	FILE* lexique;
	lexique=fopen(*(argv+1),"r");
	if(lexique==NULL){
		printf("Pas trouvé de fichier.\n");
	}
	res=creetableau(lexique, tab, &taille);
	fclose(lexique);
	while ((c = getchar()) != EOF){
		if (c=='\n'){
			putchar('\n');		
			drapeau=1;
		}else if (c=='\t'){
			putchar('\t');		
			drapeau=0;
		}else if (drapeau){
			i=1;
			*d=c;
			if((unsigned char)c >192){ /* unicode sur 2 octets*/
				e = getchar();
				*(d+(i++))=e;
			}
			if((unsigned char)c >224){/* unicode sur 3 octets*/
				e = getchar();
				*(d+(i++))=e;			
			}
			if((unsigned char)c >240){/* unicode sur 4 octets*/
				e = getchar();
				*(d+(i++))=e;			
			}
			*(d+i)='\0';
			if ((res=apptableau(taille,d,tab,&ind))==1){
				k=0;
				while(tab[ind][1][k] !='\0'){
					putchar(tab[ind][1][k]);
					k++;
				}		
			}else{
				i=0;
				while(*(d+i)!='\0'){			
					putchar(*(d+(i++)));
				}
			}
		}else{
			putchar(c);
		}
	}
	putchar('\x0A');
	return 0;
}
Convertisseur de dictionnaires texte en xdxf
Rajouter l'en-tête et supprimer les 2 dernières lignes.

Exemple d'en-tête :

<?xml version="1.0" encoding="UTF-8" ?>
<xdxf lang_from="FRA" lang_to="FRA" format="visual">
<full_name>Nom du dictionnaire</full_name>
<description>blablabla </description>

Compilation :

 gcc -o tab2xdxf tab2xdxf.c

et exécution :

./tab2xdxf <DicoAvant.txt >DicoApres.xdxf
#include <stdio.h>
 
 
int entete(void){
	return 0;
}
 
int baliseouvrante(char* t){
	int i=0;
	putchar('<');
	while(t[i]!='\0'){
		putchar(t[i]);
		i++;
	}
	putchar('>');
	return 0;
}
 
int balisefermante(char* t){
	int i=0;
	putchar('<');
	putchar('/');
	while(t[i]!='\0'){
		putchar(t[i]);
		i++;
	}
	putchar('>');
	putchar('\n');
	return 0;
}
 
int baliseautofermante(char* t){
	int i=0;
	putchar('<');
	while(t[i]!='\0'){
		putchar(t[i]);
		i++;
	}
	putchar('/');
	putchar('>');
	putchar('\n');
	return 0;
}
 
int balises(char* t){
	baliseouvrante(t);
	balisefermante(t);
	return 0;
}
 
int main(int narg, char** argv) {
	int i, drapeau=1, drapeauparenthese=0;
	char* def="ar";
	char* par="tr";	
	char* mot="k";
	char* sen="sens";
	char* bq="blockquote";
	char* tra="traduction";
	char* syn="synonyme";
	char* it="i";
	char* gras="b";
	char* kref="kref";
	char c;
	for(i=0;i<narg;i++){
		while(argv[i]!='\0'){
			i++;
		}
	}
	entete();
	baliseouvrante(def);
	putchar('\n');
	baliseouvrante(mot);	
	while ((c = getchar()) != EOF){
		if(c=='\t'){
			drapeau=0;
			balisefermante(mot);
		}else if (c=='\n'){
			putchar('\n');		
			balisefermante(def);
			baliseouvrante(def);
			putchar('\n');
			baliseouvrante(mot);
			drapeau=1;
		}else{
			putchar(c);
		}
	}
	putchar('\x0A');
	return 0;
}

Captures d'écran

Pour faciliter la désactivation de "Dict Net" (dictionnaires en réseau)

Références


stardict.txt · Dernière modification: 11/08/2008, à 14:29 par Sorbus
Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL