202 new_hmi_value: function(index, value, oldval) { |
202 new_hmi_value: function(index, value, oldval) { |
203 apply_hmi_value(heartbeat_index, value+1); |
203 apply_hmi_value(heartbeat_index, value+1); |
204 } |
204 } |
205 }); |
205 }); |
206 |
206 |
|
207 var translated = false; |
|
208 |
|
209 function switch_langnum(langnum) { |
|
210 if(langnum == current_lang) { |
|
211 return; |
|
212 } |
|
213 |
|
214 if (!translated) { |
|
215 translated = true; |
|
216 for (let translation of translations) { |
|
217 let [objs] = translation; |
|
218 translation.push(Array.prototype.map.call(objs[0].children, x=>x.textContent).join("\\\\n")); |
|
219 } |
|
220 } |
|
221 |
|
222 for (let translation of translations) { |
|
223 let [objs, msgs, orig] = translation; |
|
224 let msg = langnum == 0 ? orig : msgs[langnum - 1]; |
|
225 for (let obj of objs) { |
|
226 msg.split('\\\\n').map((line,i) => {obj.children[i].textContent = line;}); |
|
227 } |
|
228 } |
|
229 current_lang = langnum; |
|
230 } |
|
231 var lang_local_index = hmi_local_index("lang"); |
|
232 subscribers(lang_local_index).add({ |
|
233 indexes: [lang_local_index], |
|
234 new_hmi_value: function(index, value, oldval) { |
|
235 switch_langnum(value); |
|
236 } |
|
237 }); |
|
238 var current_lang = 0; |
|
239 switch_langnum(cache[lang_local_index]); |
207 |
240 |
208 function update_subscriptions() { |
241 function update_subscriptions() { |
209 let delta = []; |
242 let delta = []; |
210 for(let index in subscriptions){ |
243 for(let index in subscriptions){ |
211 let widgets = subscribers(index); |
244 let widgets = subscribers(index); |
470 parent.removeChild(tmpgrp); |
503 parent.removeChild(tmpgrp); |
471 |
504 |
472 current_modal = undefined; |
505 current_modal = undefined; |
473 }; |
506 }; |
474 |
507 |
475 function switch_lang(lang) { |
|
476 langnum = langs.indexOf(lang); |
|
477 if(langnum == -1) { |
|
478 console.log("Unknown language: "+lang+", return to original"); |
|
479 location.reload(true); |
|
480 } |
|
481 |
|
482 for (let translation of translations) { |
|
483 let [objs, msgs] = translation; |
|
484 let msg = msgs[langnum]; |
|
485 for (let obj of objs) { |
|
486 msg.split('\\\\n').map((line,i) => {obj.children[i].textContent = line;}); |
|
487 } |
|
488 } |
|
489 } |
|