User Tools

Site Tools


inglese:software_wordit

< indice

wordit

È un programma per il terminale Linux che permette di esercitarsi a tradurre dall'italiano all'inglese e di ascoltare la pronuncia. I file audio possono essere ottenuti da www.wiktionary.org con licenza CC-by-sa 4.0

Approfondimento: esiste un programma per il download dei file audio da wiktionary wordit-download-en

Licenza d'uso

MIT

Dipendenze
sudo apt install sox
Esempio d'uso
wordit.sh elenco-a.csv

elenco-a.csv contiene solo parole che iniziano con la lettera a* su ogni riga del file sono presenti quattro tipi di dati, separati da tre virgole, ad esempio:

italiano,./percorso/file-pronuncia-it.ogg,inglese,./percorso/file-pronuncia-en.ogg
ancora,./a/it-ancora.ogg,again,./a/En-uk-again.ogg

(vedere esempio file di input in fondo alla pagina)

Codice sorgente
wordit.sh
#!/bin/bash
# programma per il terminale Linux che permette di esercitarsi
# a tradurre dall'italiano all'inglese e di ascoltare la pronuncia
# i file audio possono essere ottenuti da www.wiktionary.org con licenza CC-by-sa 4.0
 
# Licenza d'uso
# MIT
 
# Dipendenze:
# sudo apt install sox
 
# Esempio d'uso:
# wordit.sh elenco-a.txt
 
# elenco-a.txt contiene solo parole che iniziano con la lettera a*
# al cui interno sono presenti quattro dati, separati da tre virgole:
# italiano,file-pronuncia-it.ogg,inglese,file-pronuncia-en.ogg
# ancora,./a/it-ancora.ogg,again,./a/En-uk-again.ogg
 
#----------variables----------------
if [ -z "$1" ]
    then
        echo "Esempio d'uso: \n wordit.sh elenco-a.txt"
        exit 0;
    else
        file="$1"
fi
declare -a namearray
 
#----------file reading----------------
i=0
while IFS= read -r varname; do
    namearray[i]=${varname}
    i=$((i+1))
done < "$file"
unset IFS
 
size=$i;
echo "-- translate $size words --"
echo "------------------------"
IFS=$'\n' unsorted=($(shuf <<<"${namearray[*]}"))
unset IFS
 
i=0
while [ $i -lt ${size} ]
do
	myvar=${unsorted[i]}
	#-------------split-----------
	wordit=${myvar%%,*}
	#uno
	it=${myvar#*,*}
	audioit=${it%%,*}
	#due
	en=${myvar%,*}
	worden=${en##*,}
	#tre
	audioen=${myvar##*,}
	#quattro
	#----------Italian question-----------
	attempt=''
	echo "$i) Type a word (or 'help') followed by [ENTER]"
	echo "(it) ${wordit}"
	if [ -z "${audioit}" ]
	then
		echo "no audio it"
	else
		play -q ${audioit} 2> /dev/null
	fi
	echo "(en)?"
 
	#----------English answer-----------
	while [ -z "${attempt}" ]
	do
		read attempt
		if [ "${attempt}" == "${worden}" ]
		then
			echo "YES! :) -----------------"
			result="ok"
				if [ -z "${audioen}" ]
				then
					echo "no audio en"
				else
					play -q ${audioen} 2> /dev/null
				fi
		elif [ "${attempt}" != "help" ]
			then
				echo -e "No :( \nType a word (or 'help')"
				echo "(it) ${wordit}"
				attempt=''
		fi
		if [ "${attempt}" == 'help' ]
		then
			echo "(it) ${wordit} -> (en) ${worden}"
			echo "No. Type a word (or 'help')"
			echo "(it) ${wordit}"
			attempt=''
		fi    
	done
    i=$((i+1));
done
esempio file di input

Esempio di parole che iniziano solo con la lettera a*

elenco-a.csv
arte,,art,./a/De-Art2.ogg
ancora,,again,./a/En-uk-again.ogg
anniversario,,anniversary,./a/En-uk-anniversary.ogg
un altro,,another,./a/En-uk-another-unstressed.ogg
appartamento,,apartment,./a/En-uk-apartment.ogg
straniero,,abroad,./a/En-us-abroad.ogg
accompagnare,,accompany,./a/En-us-accompany.ogg
dolore,,ache,./a/En-us-ache.ogg
ottenere,,achieve,./a/En-us-achieve.ogg
difendere,,advocate,./a/En-us-advocate-verb.ogg
contro,,against,./a/En-us-against.ogg
tra,,among,./a/En-us-among.ogg
quantità,,amount,./a/En-us-amount.ogg
e,,and,./a/En-us-and-stressed.ogg
animale,,animal,./a/En-us-animal.ogg
caviglia,,ankle,./a/En-us-ankle.ogg
anniversario,,anniversary,./a/En-us-anniversary.ogg
annuncio,,announce,./a/En-us-announce.ogg
annoiare,,annoy,./a/En-us-annoy.ogg
annuale,,annual,./a/En-us-annual.ogg
antico,,antique,./a/En-us-antique.ogg
formica,,ant,./a/En-us-ant.ogg
ansioso,,anxious,./a/En-us-anxious.ogg
parte,,apart,./a/En-us-apart.ogg
non sei (tu),,aren't,./a/En-us-arent.ogg
intorno,,around,./a/En-us-around.ogg
odiare,,ate,./a/En-us-ate.ogg
zia,,aunt,./a/En-us-aunt.ogg
terribile,,awful,./a/En-us-awful.ogg
pancetta e uova,,ham and eggs,./a/En-us-ham-and-eggs.ogg
inglese/software_wordit.txt · Last modified: 2024/02/25 22:17 by profpro