Questo spazio verrá prevalentemente utilizzato per condividere alcune informazioni e piccoli programmi che mi piace sviluppare nel tempo libero. L'argomento principale sono i sistemi operativi posix compliant tipo GNU/Linux. Spero che quello che trovate vi sia utile come lo é per me.
Read in English

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_FILE

Convert 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 exit

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

Filed under:Dictionaries

28 Responses to “Dizionari Babylon per GNU/linux?”

  • Babylon su Linux, ora ci siamo! « Neo’s blog Says:

    [...] 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 [...]

  • Neo Says:

    Fantastico! Uno degli how-to più utili degli ultimi anni :D

  • Traduttore per linux come Babylon « La Guida del Discepolo Says:

    [...] 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/ [...]

  • Traduttore (come Babylon) per Linux « Dott104 - Vuoto a perdere!!! Says:

    [...] Primo Secondo [...]

  • negyl Says:

    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)

  • Giuseppe Benigno Says:

    @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

  • negyl Says:

    @giuseppe
    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’ :) 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

  • Atcold Says:

    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!

  • Giuseppe Benigno Says:

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

  • Atcold Says:

    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 $$)

  • Giuseppe Benigno Says:

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

  • Atcold Says:

    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.

  • Giuseppe Benigno Says:

    @Atcold
    Non so come è successo … :-) troppo distratto.
    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

  • Mattneri Says:

    Se servisse ho appena rilasciato una nuova versione non ufficiale di dictconv fixando anche il suddetto baco
    http://mattneri.altervista.org/?p=29

  • Giuseppe Benigno Says:

    @Mattneri

    Grazie per la segnalazione, appena ho un po di tempo lo provo.

  • giovanni Says:

    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!

  • Giuseppe Benigno Says:

    @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

  • giovanni Says:

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

  • Giuseppe Benigno Says:

    @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”

  • giovanni Says:

    grazie, fatto. Ma aprendo Stardict trovo solo il dizionario Italiano - Iglese.
    Dov’è l’altro?

  • Giuseppe Benigno Says:

    @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.

  • giovanni Says:

    E’ stata dura (per me) ma ce l’ho fatta!

  • daniela Says:

    come si cancella babylon?

  • Giuseppe Benigno Says:

    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

  • gabry Says:

    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

  • Giuseppe Benigno Says:

    @ 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

  • gabry Says:

    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

  • Giuseppe Benigno Says:

    @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

Leave a Reply