@@ -13,12 +13,14 @@ $(function (e) {
13
13
var arrayDataRegioni = [ ] ;
14
14
var arrayRefGrafici = [ ] ; //Array che mi tiene i riferimenti ai grafici in modo che possa cambiare le loro impostazioni
15
15
16
+ var prefLang = 'it' ;
17
+
16
18
//Nomi dei valori che vengono messi a disposizionne dal file JSON della protezione civile
17
19
var tutteStats = [
18
- { key : "totale_casi" , titolo :"Totale Casi ", color : "#FFDD57" , backgroundColor : "#fff3c3" } ,
19
- { key : "dimessi_guariti" , titolo :"Dimessi Guariti ", color : "#48C774" , backgroundColor : "#cbffde" } ,
20
- { key : "deceduti" , titolo :"Deceduti " , color : "#F14668" , backgroundColor : "#ffb9c6" } ,
21
- { key : "terapia_intensiva" , titolo :"Terapia Intensiva " , color : "#0066CC" , backgroundColor : "#cce1ff" } ,
20
+ { key : "totale_casi" , titolo : "c19ti_totale_casi ", color : "#FFDD57" , backgroundColor : "#fff3c3" } ,
21
+ { key : "dimessi_guariti" , titolo : "c19ti_dimessi_guariti ", color : "#48C774" , backgroundColor : "#cbffde" } ,
22
+ { key : "deceduti" , titolo :"c19ti_deceduti " , color : "#F14668" , backgroundColor : "#ffb9c6" } ,
23
+ { key : "terapia_intensiva" , titolo :"c19ti_terapia_intensiva " , color : "#0066CC" , backgroundColor : "#cce1ff" } ,
22
24
//{ key: "totale_attualmente_positivi", titolo:"Totale Attualmente Positivi"},
23
25
//{ key: "nuovi_attualmente_positivi", titolo:"Nuovi Attualmente Positivi"},
24
26
//{ key: "ricoverati_con_sintomi", titolo:"Ricoverati con sintomi"},
@@ -27,6 +29,32 @@ $(function (e) {
27
29
//{ key: "tamponi", titolo:"Tamponi"}
28
30
] ;
29
31
32
+ //Funzione che mi traduce tutti i testi all'interno della pagina
33
+ function updateTraduzioniPage ( ) {
34
+
35
+ $ . getJSON ( `i18n/${ prefLang } .json` , function ( json ) {
36
+
37
+ let objTraduzioni = json ;
38
+
39
+ //Prendo tutti gli elementi che devo tradurre
40
+ let elems = document . querySelectorAll ( '[data-i18n]' ) ;
41
+ elems . forEach ( ( single ) => {
42
+ let keyToSearch = single . getAttribute ( 'data-i18n' ) ;
43
+ //Faccio il loop di tutto il mio oggetto per le traduzioni andando a cercare la chiave che mi serve tradurre
44
+ for ( const key of Object . keys ( objTraduzioni ) ) {
45
+ //Ho trovato la chiave che devo tradurre
46
+ if ( keyToSearch == key ) {
47
+ //Prendo la sua traduzione e la metto come testo
48
+ $ ( `[data-i18n="${ key } "]` ) . text ( objTraduzioni [ key ] )
49
+ return ;
50
+ } else {
51
+ console . log ( key )
52
+ }
53
+ }
54
+ } ) ;
55
+ } ) ;
56
+ }
57
+
30
58
//Funzione che prendendo il JSON ritornato dalla chiamata al repo della protezione civile
31
59
// mi formatta i valori negli array che mi servono per creare i grafici
32
60
function getValoriFormattati ( allStats ) {
@@ -77,23 +105,23 @@ $(function (e) {
77
105
document . getElementById ( "sezione_grafici" ) . innerHTML +=
78
106
`<div class="columns is-multiline singola_sezione">
79
107
<div class="column is-full">
80
- <p class="title is-4"> ${ singolaStat . titolo } </p>
108
+ <p class="title is-4" data-i18n=" ${ singolaStat . titolo } "> </p>
81
109
</div>
82
110
<div class="column is-half">
83
111
<div class="titolo">
84
- <p class="title is-5">Andamento Cumulativo </p>
112
+ <p class="title is-5" data-i18n="c19ti_andamento_cumulativo"> </p>
85
113
<div class="sezione_bottoni">
86
114
<button class="button is-small bottone btn_change_scala_grafico is-info is-light"
87
- data-progressivo="${ index * 2 } " data-tipo="logarithmic">LOGARTIMICO </button>
115
+ data-progressivo="${ index * 2 } " data-tipo="logarithmic">LOG </button>
88
116
<button class="button is-small bottone btn_change_scala_grafico is-info"
89
- data-progressivo="${ index * 2 } " data-tipo="linear">LINEARE </button>
117
+ data-progressivo="${ index * 2 } " data-tipo="linear">LIN </button>
90
118
</div>
91
119
</div>
92
120
<canvas id="chart-${ singolaStat . key } _cumulativo"></canvas>
93
121
</div>
94
122
<div class="column is-half">
95
123
<div class="titolo">
96
- <p class="title is-5">Valori Singoli Giornalieri </p>
124
+ <p class="title is-5" data-i18n="c19ti_valori_singoli_giornalieri"> </p>
97
125
</div>
98
126
<canvas id="chart-${ singolaStat . key } _giornaliero"></canvas>
99
127
</div>
@@ -165,6 +193,8 @@ $(function (e) {
165
193
166
194
let objValori = getValoriFormattati ( arrayDati ) ;
167
195
creaGrafici ( objValori ) ;
196
+ //Aggiorno le traduzioni
197
+ updateTraduzioniPage ( ) ;
168
198
}
169
199
170
200
//Funzione che mi crea un array con solo le regioni per la select con cui filtro i dati
@@ -251,5 +281,22 @@ $(function (e) {
251
281
$ ( "button.btn_change_scala_grafico[data-progressivo='" + progressivo + "']" ) . toggleClass ( 'is-light' ) ;
252
282
} ) ;
253
283
284
+ //Funzione che sente il click per il cambio di lingua
285
+ $ ( '.btn-lingua' ) . click ( function ( ) {
286
+ if ( $ ( this ) . hasClass ( 'active' ) ) { //Il bottone è già attivo e io lo sto premendo di nuovo
287
+ return ;
288
+ }
289
+
290
+ let newPrefLang = $ ( this ) . data ( 'lang' ) ;
291
+ console . log ( newPrefLang ) ;
292
+ prefLang = newPrefLang ; //Setto la nuova lingua
293
+ //Aggiorno le traduzioni
294
+ updateTraduzioniPage ( ) ;
295
+
296
+ //Cambio lo stato dei bottoni
297
+ $ ( this ) . closest ( '.col-switch-lingua' ) . find ( '.active' ) . removeClass ( 'active' ) ;
298
+ $ ( this ) . addClass ( 'active' ) ;
299
+
300
+ } ) ;
254
301
255
302
} )
0 commit comments