svghmi/svghmi.js
branchsvghmi
changeset 3129 f2709923c82c
parent 3128 32a4675af377
child 3130 bdd81e12e7b5
equal deleted inserted replaced
3128:32a4675af377 3129:f2709923c82c
   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 }