%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Programma per la traduzione del nome dei giorni della
% settimana dall'italiano all'inglese e viceversa -
% versione con ripetizione della traduzione
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
%%% giorno(G,D): vero se G e' il nome di un giorno in italiano
%%% e D e' il nome del giorno corrispondente in inglese

giorno('lunedi''', 'Monday').
giorno('martedi''', 'Tuesday').
giorno('mercoledi''', 'Wednesday').
giorno('giovedi''', 'Thursday').
giorno('venerdi''', 'Friday').
giorno('sabato', 'Saturday').
giorno('domenica', 'Sunday').


%%% Interfaccia utente

% Inizio programma

start :- write('Programma di traduzione giorni della settimana'), 
         traduci_ripeti,
         write('Arrivederci!').

traduci_ripeti :-  
         nl, 
         write('Scegliere la lingua (inglese./italiano.)'), nl,
         read(Lingua),
         traduci(Lingua), 
         traduci_ripeti_cont(Lingua),
         nl.

%traduci(L): se L e' il nome 'italiano' ('inglese') legge il 
% nome di un giorno in italiano (inglese) e stampa il 
% corrispondente nome della settimana in inglese (italiano)

traduci(italiano) :- 
         write('Dai il nome del giorno'),nl,
         read(Nome_giorno),
         giorno(Nome_giorno,X),
         write(X), nl.
traduci(inglese) :-  
         write('Insert the name of the day'),nl,
         read(Nome_giorno),
         giorno(X,Nome_giorno),
         write(X), nl.

traduci_ripeti_cont(italiano) :- 
         write('Vuoi continuare (s/n) ?'),
         get(C),
         get0(_),
         test_ripeti_it(C).
traduci_ripeti_cont(inglese) :-  
         write('Do you want to continue? (y/n)'), nl,
         get(C),
         get0(_),
         test_ripeti_en(C).

test_ripeti_it(115) :- 
         traduci_ripeti.       %continua se la risposta e' 's'
test_ripeti_it(110).           %termina se la risposta e' 'n'

test_ripeti_en(121) :- 
         traduci_ripeti.       %continua se la risposta e' 'y'
test_ripeti_en(110).           %termina se la risposta e' 'n'
