package Ġcom . tri le ma . do ctr inal ang . support Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . speech . tts . Text ToS peech Ċ import Ġandroid . widget . TextView Ċ import Ġcom . tri le ma . do ctr inal ang . R Ċ import Ġjava . util .* Ċ Ċ object ĠTag are la Ġ{ ĊĠĠĠ Ġconst Ġval ĠLOG KEY Ġ= Ġ" DO CTR IN AL ANG " ĊĠĠĠ Ġlateinit Ġvar Ġt ts : ĠText ToS peech ĊĠĠĠ Ġlateinit Ġvar Ġcontext : ĠContext ĊĠĠĠ Ġlateinit Ġvar Ġview : ĠTextView ĊĠĠĠ Ġvar ĠACT UAL _ LANGUAGE Ġ= Ġ 0 ĊĠĠĠ Ġfun Ġsay It ( text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ACT UAL _ LANGUAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġt ts ?. set Language ( Locale . F REN CH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġt ts ?. set Language ( Locale . GER MAN ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġt ts ?. speak ( text , ĠText ToS peech . QUEUE _ FLUSH , Ġnull , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsay Month ( number : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġposition Ġ= Ġnumber Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġvar Ġmonths : ĠArray < String > Ġ= ĠarrayOf ("") ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ACT UAL _ LANGUAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. set Language ( Locale . F REN CH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonths Ġ= Ġcontext . resources . getString Array ( R . array . f rench _ months ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. set Language ( Locale . GER MAN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmonths Ġ= Ġcontext . resources . getString Array ( R . array . ger man _ months ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġt ts ?. speak ( months . get ( position ), ĠText ToS peech . QUEUE _ FLUSH , Ġnull , Ġnull ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġsay Week ( number : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġposition Ġ= Ġnumber Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġvar Ġweek : ĠArray < String > Ġ= ĠarrayOf ("") ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ACT UAL _ LANGUAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. set Language ( Locale . F REN CH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek Ġ= Ġcontext . resources . getString Array ( R . array . f rench _ week ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. set Language ( Locale . GER MAN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweek Ġ= Ġcontext . resources . getString Array ( R . array . ger man _ week ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġt ts ?. speak ( week . get ( position ), ĠText ToS peech . QUEUE _ FLUSH , Ġnull , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsay Time ( hour : ĠInt , Ġminute : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġmiddle Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġprefix Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġvar Ġpos fix Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ACT UAL _ LANGUAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. set Language ( Locale . F REN CH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmiddle Ġ= Ġif Ġ( hour Ġ> Ġ 1 ) Ġ" Ġhe ures Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ" Ġhe ure Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. set Language ( Locale . GER MAN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprefix Ġ= Ġ" ĠEs Ġist Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmiddle Ġ= Ġ" ĠU hr Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġt ts ?. speak ("$ prefix $ hour $ middle $ minute $ pos fix ", ĠText ToS peech . QUEUE _ FLUSH , Ġnull , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsay Position Question () Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ACT UAL _ LANGUAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. set Language ( Locale . F REN CH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. speak ( context . resources . getString ( R . string . f rench _ position _ question ), ĠText ToS peech . QUEUE _ FLUSH , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. set Language ( Locale . GER MAN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. speak ( context . resources . getString ( R . string . ger man _ position _ question ), ĠText ToS peech . QUEUE _ FLUSH , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsay Position ( position : Int ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġfr ases : ĠArray < String > Ġ= ĠarrayOf ("") ĊĠĠĠĠĠĠĠ Ġwhen Ġ( ACT UAL _ LANGUAGE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. set Language ( Locale . F REN CH ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfr ases Ġ= Ġcontext . resources . getString Array ( R . array . f rench _ position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. set Language ( Locale . GER MAN ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfr ases Ġ= Ġcontext . resources . getString Array ( R . array . ger man _ position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġt ts ?. speak ( fr ases . get ( position ), ĠText ToS peech . QUEUE _ FLUSH , Ġnull , Ġnull ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġstop () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( tts Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġt ts ?. stop () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcheck Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( view != null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setText (" test e ") ĊĠĠĠ Ġ} ĊĊ Ċ }