Dizionari Babylon per GNU/linux?
Perchè non usare i dizionari Babylon con i software che abbiamo a disposizione?
Vediamo cosa fare per avere i dizionari di Babylon funzionanti con software open.
Io ho provato Ktranslator e Stardict.
Tutto è cominciato quando sono venuto a conoscenza del programma dictconv V. 0.2 (creato dallo stesso autore di Ktranslator).
Questo software permette di convertire file dizionario da un formato all’altro, di seguito l’output del comando, digitato senza parametri:
egregorion:~$ dictconv
Usage: dictconv [-hv] -o OUTPUT_FILE INPUT_FILEConvert INPUT_FILE dictionary to OUTPUT_FILE dictionary.
The extension of file determines the dictionary type.-o OUTPUT_FILE path to target dictionary
INPUT_FILE path to source dictionary
-h print help message and exit
-? print help message and exit
-v shows the version information and exitINPUT_FILE can be:
Babylon Glossary (.bgl)
Freedict dictionary (.tei)
Sdictionary dictionary (.dct)
StarDict dictionary (.ifo)OUTPUT_FILE can be:
DICT dictionary (.index)
PlainText dictionary (.dic)
StarDict dictionary (.ifo)
Come vedete accetta i dizionari babylon.
Devo avvertirvi che ktranslator accetta già i file babylon, ma solo quelli con il vecchio formato .dic.
Il software dictconv può essere usato per convertire quelli .bgl.
Adesso babylon usa dizionari che a quanto pare sono cifrati ed hanno estensione “bcl” o qualcosa del genere.
Di seguito c’è una lista dei software usati.
- dictconv: usato per convertire i dizionari da alcuni formati ad altri.
- tabfile: converte dal formato testo (rispettando sempre una determinata sintassi) al formato stardict. (modalità console)
- stradict-editor: converte dal formato testo (rispettando sempre una determinata sintassi) al formato stardict. (modalità grafica)
- dictzip: serve per comprimere i dizionari.
- Ktranslator: programma per la consultazione dei dizionari per KDE.
- Stardict : programma per la consultazione dei dizionari per GNOME (gtk).
- cat, sed e awk: dovrebbero essere già disponibili nella vostra distro, se non li avete … cambiate distribuzione
.
Ci sono due modi di procedere:
1) convertire il dizionario .BGL direttamente in formato stardict con dictconv e comprimerlo con dictzip
2) convertire il dizionario .BGL in formato plaintext, modificarlo (se necessario) ed infine convertirlo in formato stardict e comprimerlo (le ultime due operazioni contemporaneamente con tabfile o stardict-editor)
Italiano -> Inglese
Prima di tutto, scaricate da http://www.babylon.com/category/13/Italian.html il secondo dizionario, cioè il “Babylon Italian-English”.
A questo punto abbiamo un file “Babylon_Italian_English_dictio.BGL” che convertiremo direttamente nel formato stardict, visto che non soffre di nessun problema di conversione.
Digitiamo quindi, su un’unica linea:
dictconv -o Babylon_Italian_English_dictio.ifo Babylon_Italian_English_dictio.BGL
Ecco fatto abbiamo il nostro dizionario bello e pronto nella sottodirectory stardict. (sono tre files)
Per comprimere il dizionario potete usare dictzip. (man dictzip)
Inglese -> Italiano
Scaricate uno o entrambi i dizionari elencati di seguito:
il primo nella pagina http://www.babylon.com/category/13/Italian.html dal titolo “Babylon English-Italian”.
il penultimo dalla pagina http://www.babylon.com/category/13/Italian,2.html dal titolo “English-Italian Dictionary 1.01″
Per poter usare il primo dei due, dobbiamo procedere con la seconda maniera.
Convertiamo il file in formato plaintext:
dictconv -o Babylon_English_Italian.dic Babylon_English_Italian.BGL
Prendiamo nota delle informazioni che vengono stampate sullo schermo alla fine della conversione:
Title: Babylon English-Italian
Author: Babylon Ltd.
Email: linguistic-support@babylon.com
Description: This comprehensive English-Italian dictionary contains words, phrases, abbreviations & acronyms. It includes terms from a vast variety of subjects, such as Medicine, Electronics, Zoology, Business, Computers, Religion, etc., and features both the American and British forms of spelling.
Editando il file ci accorgiamo che ogni linea contiene:
Termine_da_tradurre, una coppia di “$” riempita di numeri, un TAB ed infine la traduzione vera e propria.
Per eliminare i caratteri $XXXX$, che non servono ed anzi impediscono il funzionamento con ktranslator, passiamo al setaccio il file con sed, digitando sempre tutto su un’unica linea:
cat Babylon_English_Italian.dic | sed 's/\$[0-9][0-9]*\$\t/\t/' > Babylon_English_Italian_new.dic
Prima di convertire il dizionario, dobbiamo controllare che la sintassi del file da convertire sia corretta, cioè il file deve essere fatto in questa maniera:
Termine_da_convertire TABULAZIONE Termine_convertito
Oltre a questo bisogna ricordarsi che il carattere backslash “\”, se presente e se si vuole visualizzarlo proprio come backslash, deve essere scritto come “\\”;
visualizziamo quindi tutte le linee che contengono questo carattere:
cat Babylon_English_Italian_new.dic |grep '\\'
otterremo come output:
DLL file DLL, libreria dinamica in linea, file procedurale del sistema operativo Windows e OS\2
Netscape n. Netscape (società di programmazione produttrice delle pagine d'Internet, Navigator\Communicator)
farthing n. farthing (moneta inglese non più in uso del valore di 1\4 di penny)
if so in tal caso, se e cosi, in caso affermativo \\
Come notate, i primi tre backslash dovrebbero essere convertiti con uno slash “/”
Il quarto, anzi i quarti :-), non servono e possiamo cancellarli
Per la quarta linea possiamo digitare, su una linea:
cat Babylon_English_Italian_new.dic | sed 's/\\*\ *$//' > Babylon_English_Italian_new1.dic
Per le prime tre sostituiamo semplicemente i “\” con “/” nel modo seguente, sempre su una linea:
cat Babylon_English_Italian_new1.dic |sed 's/\\/\//g' > Babylon_English_Italian_new2.dic
Abbiamo finito.
Adesso possiamo cancellare i file che non servono più:
“Babylon_English_Italian.BGL”
“Babylon_English_Italian.dic”
“Babylon_English_Italian_new.dic”
“Babylon_English_Italian_new1.dic”
e rinominiamo il file Babylon_English_Italian_new2.dic in Babylon_English_Italian.dic.
Conversione in modalità grafica con stardict-editor
Per la conversione è necessario un chierico che abbia almeno 78 punti-magia. mmm … no, in questo caso meglio un software.
Allora useremo stardict-editor se vogliamo lavorare in modalità grafica. È estremamente semplice ed intuitivo: una volta avviato il software si seleziona il dizionario .dic da convertire e si preme il pulsante “build”. Fatto.
Conversione in modalità testo con tabfile
Nel caso decidessimo di lavorare in console, sarà necessario il programma tabfile che si trova nel programma stardict-tools scaricabile dal sito di stardict.
Io ho trovato solo i sorgenti quindi dovrete compilarlo ed è molto semplice:
scaricate il software, scompattatelo, dalla directory del programma digitate “./configure” e poi “make” e “make install”.
se il configure non va a buon fine, allora vi manca qualcosa che si capisce dai messaggi, installate quel qualcosa e riprovate.
Convertiamo con:
tabfile Babylon_English_Italian.dic
Facciamo un po di pulizia
a questo punto possiamo anche cancellare il “Babylon_English_Italian.dic” perchè avremo il nostro dizionario nel formato stardict che consiste in tre file:
Babylon_English_Italian.dict.dz
Babylon_English_Italian.idx
Babylon_English_Italian.ifo
Non so se ci avete fatto caso, il programma tabfile ha anche compresso il nostro dizionario (dictzip deve essere installato)
quindi al posto del file Babylon_English_Italian.dict abbiamo Babylon_English_Italian.dict.dz.
Compilazione del file .ifo
Un’ultima cosa: il file .ifo, contiene le informazioni sul dizionario (autore, descrizione ecc…).
Prendete le informazioni che avete conservato durante la prima conversione ed aggiungetele nel file:
(alcune vengono ricavate al momento della conversione, noi dobbiamo aggiungere quelle che sono state perse, rispettando la sintassi del formato stardict)
bookname=Babylon English-Italian
author=Babylon Ltd.
email=linguistic-support@babylon.com
description=This comprehensive English-Italian dictionary contains words, phrases, abbreviations & acronyms. It includes terms from a vast variety of subjects, such as Medicine, Electronics, Zoology, Business, Computers, Religion, etc., and features both the American and British forms of spelling.
Installazione dei dizionari
Adesso abbiamo veramente finito ![]()
copiate il dizionario (i files .dict.dz, .idx e .ifo) nella cartella /usr/share/stardict/dic/ (io uso kubuntu) oppure in ~/.stardict/dic/ e quando avvierete stardict, avrete il dizionario funzionante.
Se usate ktranslator, dal menu` aggiungete un dizionario ed indicate il percorso nel quale si trovano i dizionari.
Note
Devo aggiungere una nota per chi volesse usare anche il secondo dizionario “English-Italian Dictionary 1.01″:
L’unico problema che ho notato è che tutti i caratteri backslash “\” dovrebbero essere degli slash “/” quindi l’unica modifica che ho fatto è quella di sostituire i “\” con “/”
cat English_Italian_Dictionary_1_0.dic |sed 's/\\/\//g' > English_Italian_Dictionary_1_0_new.dic
Conclusione
Vi ho mostrato come agire in tre diversi casi. Se voleste altri dizionari (non dite che vi è passata la voglia
) le cose da fare le valuterete al momento della visione del plaintext ed è possibile che si debba modificare il file leggermente o in maniera più sostanziale.
Io ho convertito diversi dizionari fra cui:
- il quarto de http://www.babylon.com/category/13/Italian,1.html dal titolo “ADO’s ITALIENISCH-DEUTSCH WÖRTERBUCH” che non mi ha dato nessun problema.
- il nono de http://www.babylon.com/category/13/Italian,1.html dal titolo “Deutsch-Italienisch”, nessun problema.
- il sesto in http://www.babylon.com/category/13/Italian,5.html dal titolo “Italienisch-Deutsch” non vi consiglio di convertirlo, primo perchè l’ADO’s ITA-DEU è più completo, secondo, bisogna fare qualche modifica “sostanziale”.
Nello specifico, il file contiene molte linee strutturate in questo modo: termine;sinonimo;sinonimo2 TAB traduzione
quindi possiamo o eliminare dal primo “;” al TAB e trattarlo come gli altri oppure trasformarlo in un plaintext con sintassi babylon.
Dopo tutto adesso sapete come crearvi un dizionario per conto vostro, non so … la vostra collezione di libri, la rubrica, tutto quello che volete. Basta creare un file di testo e riempirlo in questo modo:
Termine TAB Corrispondenza
ed il gioco è fatto. Basterà passarlo al “tabfile” ed avremo il nostro dizionario consultabile tramite stardict o ktranslator.
Regards
April 18th, 2007 at 2:58 pm
[…] pia di Egregorion, che ringrazio infinitamente (questo post è tratto da un suo how-to), ha trovato la soluzione a tutti quei problemini! Ora vediamo come […]
April 18th, 2007 at 3:00 pm
Fantastico! Uno degli how-to più utili degli ultimi anni
April 29th, 2007 at 9:28 pm
[…] EDIT: Ho trovato la soluzione al problema delle parole scritte male.Basta recarsi qui: http://www.egregorion.net/2007/04/17/dizionari-babylon-per-gnulinux/ […]
May 1st, 2007 at 11:00 am
[…] Primo Secondo […]
May 12th, 2007 at 12:05 am
bella guida! utilissima, grazie.
qualcuno sa come far funzionare il Devoto-Oli (dizionario lingua italiana) ?
convertendolo normalmente (con output *.ifo) da’ un output in html:
tipo:
=====================
problema
<pro-blè-ma> s.m. (pl. -i)
May 12th, 2007 at 1:10 am
@negyl
Grazie a te.
Se l’output è come quello che hai postato prima non dovrebbe essere difficile … vediamo:
1 - HTML -> txt (codifica in unicode)
2 - txt -> sostituzione del carattere “a capo” fra il termine da tradurre e il tradotto con un carattere di tabulazione
3 - trattamento del txt con tabfile o stardict-tools.
4 - brindare e vantarsene con gli amici
Se descrivi con più particolari il formato di origine, forse posso aiutarti meglio.
Regards
May 13th, 2007 at 9:44 am
@giuseppe
se vuoi (e se hai tempo) ti posto il file cosi gli dai un’occhiata. (anche perche’ ci sono molti *.BGL fatti in questo modo e potrebbe venire comodo anche ad altri un metodo efficace di conversione….
ciao, non so se hai visto tutto quello che avevo postato in quanto sul blog e’ troncato. comunque il dizionario in questione e’ in formato html, che a quanto ho capito non e’ supportato dal nostro buon stardict. ora: ho letto la tua risposta ma non saprei che comandi dare a ’sed’
ciao
May 25th, 2007 at 7:33 pm
Aiutooo!! Sono un ex windowsiano, che tenta di trovare un sostituto a Babylon.. ma quando mi si dice “Estraete i sorgenti e spostatevi nella directory dei sorgenti.” l’unica cosa che posso dire è: “Ehhhhh?”
Tralasciando, ho scaicato l’rpm, ho usato il comando “rpm -i”, però mi è comparsa una lista immensa di errori, del tipo
“rpm -i stardict-2.4.8-1.i386.rpm
error: Failed dependencies:
/bin/sh is needed by stardict-2.4.8-1.i386
bonobo-activation >= 2.2.0 is needed by stardict-2.4.8-1.i386
libICE.so.6 is needed by stardict-2.4.8-1.i386
libORBit-2.so.0 is needed by stardict-2.4.8-1.i386
libSM.so.6 is needed by stardict-2.4.8-1.i386
libX11.so.6 is needed by stardict-2.4.8-1.i386
libart_lgpl_2.so.2 is needed by stardict-2.4.8-1.i386
libatk-1.0.so.0 is needed by stardict-2.4.8-1.i386
libbonobo >= 2.2.0 is needed by stardict-2.4.8-1.i386
libbonobo-2.so.0 is needed by stardict-2.4.8-1.i386
libbonobo-activation.so.4 is needed by stardict-2.4.8-1.i386″ ecc. Aiutatemi voi, ne ho parecchio bisogno!!
(Cmq, non sono un impedito in informatica, anzi programmicchio piuttosto bene in c++ =D) Grazie delle collaborazione!
May 25th, 2007 at 8:17 pm
@Atcold
Ho indicato due software per fare la conversione.
Se hai difficoltà con tabfile, usa stardict-editor e non dovrai compilare niente.
In effetti ho inserito tabfile perchè all’inizio ho usato quello, ma puoi fare tutto con stardict-editor (che è anche grafico).
Non so che distro usi ma non dovresti avere nessuna difficoltà ad installare il pacchetto “stardict-editor”.
Con debian o ubuntu basta scrivere “sudo apt-get install stardict-editor”, questo in modalità console.
Per la tua distribuzione rpm-based, dovresti avere qualcosa di simile, altrimenti usa il gestore dei pacchetti grafico che sicuramente avrai, e non dovrai preoccuparti di nessuna compilazione ne dipendenza.
Fammi sapere, ciao
May 26th, 2007 at 4:27 pm
Installando “libxml2-dev” sono riuscito ad installare dictconv, ma per stardict-editor mi dice che mi manca “gtk+-2.0″. Vado su adept (ho Kubuntu), ma vedo che è già ben che installato.
Allora che posso fare per poter tirare via quegli odiosi $$?
Grazie mille (cmq con dictconv sono riuscito ad tradurre i dizionari di Babylon, però con tutti quei $$)
May 26th, 2007 at 5:03 pm
@Atcold
Per togliere “quegli odiosi $$” non puoi convertirlo direttamente con dictconv.
Prima devi convertirlo in formato testo, lo modifichi ed infine lo converti in formato stardict.
Anche io uso kubuntu, quindi, per installare stardict-editor, dal menù sistema, apri gestore adept (gestione pacchetti) e cerca stardict-editor. Le dipendenze le risolve da solo.
Regards
June 1st, 2007 at 11:00 pm
Scusa del ritardo, ma ho dato 3 esami all’università in due settimane… devo recuperare qualcosa come 96h di sonno, ma tralasciando..
Ho avviato adept, e vorrei postare il “print” dello schermo (parziale) per farti capire che io “stardict-editor” proprio nn lo vedo tra le voci dei downloads! In attesa di istruzioni, ti ringrazio della pazienza che mi stai concedendo.
June 4th, 2007 at 11:27 am
@Atcold
troppo distratto.
Non so come è successo …
Il pacchetto che ti serve è: stardict-tools
Una volta installato, avvia stardict-editor e prosegui.
In pratica, il software stardict-editor è contenuto nel pacchetto stardict-tools.
Ciao
July 1st, 2007 at 6:09 pm
Se servisse ho appena rilasciato una nuova versione non ufficiale di dictconv fixando anche il suddetto baco
http://mattneri.altervista.org/?p=29
July 1st, 2007 at 6:19 pm
@Mattneri
Grazie per la segnalazione, appena ho un po di tempo lo provo.
July 23rd, 2007 at 7:30 pm
Hai scritto: “copiate il dizionario (i files .dict.dz, .idx e .ifo) nella cartella /usr/share/stardict/dic/ (io uso kubuntu) oppure in ~/.stardict/dic/ e quando…”
Come si fa?
PS: sono un neofitissimo!
July 23rd, 2007 at 11:26 pm
@giovanni
se vuoi copiare dei file basta che scrivi:
“cp $NOMEFILE $DESTINAZIONE”
ma se vuoi copiarli come amministratore usa “sudo” prima del comando, quindi “sudo cp $NOMEFILE $DESTINAZIONE”.
Nel nostro caso “sudo cp * /usr/share/stardict/dic/” dovrebbe funzionare.
ciao
July 24th, 2007 at 12:19 pm
Ho messo i files sul desktop, quindi ho seguito la procedura, ma…
giovanni@giovanni-desktop:~$ sudo cp Babylon* /usr/share/stardict/dic/
cp: impossibile fare stat di `Babylon*’: Nessun file o directory
giovanni@giovanni-desktop:~$
July 24th, 2007 at 1:10 pm
@giovanni
a meno che tu non abbia specificato che il desktop deve coincidere con la tua home, tu non sei sul desktop.
Sei nella tua home, che di default è diversa dal desktop.
-> giovanni@giovanni-desktop:~$ <-
per entrare nel desktop scrivi “cd Desktop”
July 24th, 2007 at 3:20 pm
grazie, fatto. Ma aprendo Stardict trovo solo il dizionario Italiano - Iglese.
Dov’è l’altro?
July 24th, 2007 at 4:13 pm
@giovanni
Se hai copiato tutti i tre file che compongono il dizionario dovresti vederlo.
Sottintendo che il dizionario non contenga errori di formato.
Suggerimento:
puoi copiare il tutto anche in ~/.stardict/dic
in questa maniera non richiede “sudo” e puoi fare tutto da utente.
Questa è un’installazione locale, nel senso che solo te potrai usufruire dei dizionari.
Una volta che tutto funzionerà, farai una installazione di sistema.
July 29th, 2007 at 9:00 pm
E’ stata dura (per me) ma ce l’ho fatta!
October 5th, 2008 at 3:16 pm
come si cancella babylon?
October 6th, 2008 at 3:25 am
mmm… non capisco cosa intendi dire. Vuoi cancellare i dizionari? o un programma?
per i dizionari, cancelli direttamente i 3 files relativi al dizionario che vuoi cancellare.
riguardo al programma, puoi disinstallarlo dall’apposito software per la gestione dei pacchetti della tua distribuzione, proprio come con windows.
ciao
October 19th, 2008 at 2:34 pm
ciao, vorrei creare un mio dizionario italiano-thailandese per poi poterlo aprire con ktranslator o stardict per kde.
oltre i campi
Termine TAB Corrispondenza
è possibile aggiungere anche un altro
campo tipo esempio?
ciao, grazie
October 20th, 2008 at 1:16 pm
@ gabry
se usi i file dizionario normali non puoi avere piu’ di due campi, quindi l’esempio dovrai inserirlo nel secondo campo “Corrispondenza”.
Da quello che vedo stardict e’ il migliore, non ho trovato nessun altro software al suo livello, compreso qstardict, ktranslator.
I motivi sono molteplici e non sto qui ad elencarli ma ti consiglio di lavorare con stardict. Non so se hai visto le ultime versioni con il Wordnet 3.0 , e’ molto potente. Ci sono foto, links, media e c’e’ un nuovo modo di visualizzazione dei termini da cercare: una visualizzazione ad albero. Ecco un esempio di quello a cui mi riferisco http://www.solutio360.com/index.php/Tecnologia/-O-melhor-dicionario-gratuito.html
In ogni caso puoi cominciare a farlo con la sintassi che conosci, potrai ampliarlo in seguito
Ciao
October 23rd, 2008 at 6:13 pm
ciao,
sembra che usando la sintassi \n si possa creare un’ulteriore campo da usare come frase di esempio. ho provato a convertire il file tab con stardict-editor e sembra che funziona.
ciao
October 26th, 2008 at 4:23 am
@gabry
Il carattere \n vuol dire “nuova linea” quindi forse e’ quello che ti serviva.
Non e’ un nuovo campo. Tieni presente che per visualizzare correttamente il testo arricchito avrai bisogno di uno stardict recente.
Volendo puoi anche inserire i tag dell’html (solo alcuni) e modificando una voce nell .ifo, sei anche in grado di vedere il grassetto, colori diversi, corsivo ecc….
a presto