chore: update translations and references
This commit is contained in:
@@ -480,6 +480,16 @@ function applyLang(){
|
||||
setText('file-ready-btn',T.file_ready_btn);
|
||||
setText('file-slots-btn',T.file_slots_btn);
|
||||
setText('file-cancel-btn',T.file_cancel_btn);
|
||||
// Elements not yet covered by setText above
|
||||
var settingsBtn=document.getElementById('settings-btn');
|
||||
if(settingsBtn)settingsBtn.title=T.settings_btn_tooltip||T.settings_title||'Einstellungen';
|
||||
var snpEl=document.getElementById('s-printer-name');
|
||||
if(snpEl)snpEl.placeholder=T.settings_printer_name_placeholder||'z.B. Kobra X Links';
|
||||
var sdidEl=document.getElementById('s-device-id');
|
||||
if(sdidEl)sdidEl.placeholder=T.settings_device_id_placeholder||'32 Hex-Zeichen';
|
||||
setText('d-fan-off',T.label_off||'Aus');
|
||||
setText('skip-confirm',T.skip_confirm_btn||'Überspringen');
|
||||
setText('ams-no-data',T.ams_no_data||'Keine AMS-Daten empfangen');
|
||||
// GCode-Browser-Karten: Texte sind via innerHTML eingebacken,
|
||||
// bei Sprachwechsel komplett neu rendern.
|
||||
if(typeof renderStore==='function' && typeof storeFiles!=='undefined'){
|
||||
@@ -1235,7 +1245,7 @@ function refreshUserProfileList(){
|
||||
return '<div style="display:flex;justify-content:space-between;align-items:center;padding:3px 0;border-bottom:1px solid var(--border)">'
|
||||
+'<span>★ '+label+'</span>'
|
||||
+'<button onclick="deleteUserProfile(\''+encodeURIComponent(p.vendor)+'\',\''+encodeURIComponent(p.name)+'\')" '
|
||||
+'style="background:none;border:none;color:var(--err);cursor:pointer;font-size:14px" title="löschen">🗑</button>'
|
||||
+'style="background:none;border:none;color:var(--err);cursor:pointer;font-size:14px" title="'+tr('btn_delete','Löschen')+'">🗑</button>'
|
||||
+'</div>';
|
||||
}).join('');
|
||||
}).catch(function(){});
|
||||
@@ -1272,7 +1282,7 @@ function refreshImportDialogList(){
|
||||
return '<div style="display:flex;justify-content:space-between;align-items:center;padding:4px 6px;border-bottom:1px solid var(--border)">'
|
||||
+'<span>★ '+label+'</span>'
|
||||
+'<button onclick="deleteUserProfile(\''+encodeURIComponent(p.vendor)+'\',\''+encodeURIComponent(p.name)+'\')" '
|
||||
+'style="background:none;border:none;color:var(--err);cursor:pointer;font-size:14px" title="löschen">🗑</button>'
|
||||
+'style="background:none;border:none;color:var(--err);cursor:pointer;font-size:14px" title="'+tr('btn_delete','Löschen')+'">🗑</button>'
|
||||
+'</div>';
|
||||
}).join('');
|
||||
}).catch(function(){});
|
||||
@@ -1312,7 +1322,7 @@ function doProfileImportUpload(files){
|
||||
_one(idx+1);
|
||||
})
|
||||
.catch(function(e){
|
||||
status.textContent='Fehler: '+e;
|
||||
status.textContent=tr('log_error','Fehler:')+' '+e;
|
||||
status.style.color='var(--err)';
|
||||
});
|
||||
}
|
||||
@@ -1470,7 +1480,7 @@ function startReadyFile(filename){
|
||||
if(btn){btn.disabled=false;setText('file-ready-btn',T.file_ready_btn);}
|
||||
})
|
||||
.catch(function(e){
|
||||
clog(tr('log_error')+' '+e,'msg-err');
|
||||
clog(tr('log_error','Fehler:')+' '+e,'msg-err');
|
||||
if(btn){btn.disabled=false;setText('file-ready-btn',T.file_ready_btn);}
|
||||
});
|
||||
}
|
||||
@@ -1598,7 +1608,7 @@ function saveSlotEdit(){
|
||||
if(typeof applyState==='function') applyState();
|
||||
if(typeof poll==='function') poll();
|
||||
})
|
||||
.catch(function(e){clog('Fehler: '+e,'msg-err');});
|
||||
.catch(function(e){clog(tr('log_error','Fehler:')+' '+e,'msg-err');});
|
||||
}
|
||||
document.addEventListener('DOMContentLoaded',function(){
|
||||
document.getElementById('s-printer-ip').addEventListener('input',function(){
|
||||
@@ -1646,7 +1656,7 @@ function saveSettings(){
|
||||
},4000);
|
||||
}).catch(function(e){
|
||||
btn.disabled=false;setText('btn-save-settings',T.settings_save);
|
||||
clog('Settings-Fehler: '+e,'msg-err');
|
||||
clog(T.settings_title+' '+tr('log_error','Fehler:')+' '+e,'msg-err');
|
||||
});
|
||||
}
|
||||
function checkUpdate(){
|
||||
@@ -1719,8 +1729,8 @@ var pollTimer;
|
||||
|
||||
// ── Print actions ──
|
||||
function printAction(a){
|
||||
post('/printer/print/'+a,{}).then(function(){clog('Druck: '+a,'msg-ok');poll()})
|
||||
.catch(function(e){clog('Fehler: '+e,'msg-err')});
|
||||
post('/printer/print/'+a,{}).then(function(){clog(tr('log_print_action','Druck:')+' '+a,'msg-ok');poll()})
|
||||
.catch(function(e){clog(tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
function togglePauseResume(){
|
||||
// Druckt → pause; Pausiert → resume. Status kommt aus dem zuletzt gepollten
|
||||
@@ -1759,42 +1769,42 @@ function move(axis,dir,dist){
|
||||
// axis: 0=X,1=Y,2=Z → printer axis codes: 1=X,2=Y,3=Z
|
||||
var axisMap={0:1,1:2,2:3};
|
||||
post('/api/axis',{axis:axisMap[axis],move_type:1,distance:dir*dist})
|
||||
.then(function(){clog('Achse '+(axis===0?'X':axis===1?'Y':'Z')+' '+(dir>0?'+':'')+dir*dist+'mm','msg-ok')})
|
||||
.catch(function(e){clog('Achse-Fehler: '+e,'msg-err')});
|
||||
.then(function(){clog(tr('log_axis','Achse')+' '+(axis===0?'X':axis===1?'Y':'Z')+' '+(dir>0?'+':'')+dir*dist+'mm','msg-ok')})
|
||||
.catch(function(e){clog(tr('log_axis','Achse')+'-'+tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
function homeAll(){
|
||||
post('/api/axis',{axis:5,move_type:2,distance:0})
|
||||
.then(function(){clog('Home All','msg-ok')})
|
||||
.catch(function(e){clog('Home-Fehler: '+e,'msg-err')});
|
||||
.then(function(){clog(tr('log_home_all','Home All'),'msg-ok')})
|
||||
.catch(function(e){clog(tr('log_home_all','Home All')+' '+tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
function homeXY(){
|
||||
post('/api/axis',{axis:4,move_type:2,distance:0})
|
||||
.then(function(){clog('Home XY','msg-ok')})
|
||||
.catch(function(e){clog('Home-Fehler: '+e,'msg-err')});
|
||||
.then(function(){clog(tr('btn_home_xy','Home XY'),'msg-ok')})
|
||||
.catch(function(e){clog(tr('btn_home_xy','Home XY')+' '+tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
function homeZ(){
|
||||
post('/api/axis',{axis:3,move_type:2,distance:0})
|
||||
.then(function(){clog('Home Z','msg-ok')})
|
||||
.catch(function(e){clog('Home-Fehler: '+e,'msg-err')});
|
||||
.then(function(){clog(tr('btn_home_z','Home Z'),'msg-ok')})
|
||||
.catch(function(e){clog(tr('btn_home_z','Home Z')+' '+tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
function disableMotors(){
|
||||
post('/api/axis',{action:'turnOff'})
|
||||
.then(function(){clog('Motors Off','msg-ok')})
|
||||
.catch(function(e){clog('Motors-Fehler: '+e,'msg-err')});
|
||||
.then(function(){clog(tr('btn_disable_motors','Motors Off'),'msg-ok')})
|
||||
.catch(function(e){clog(tr('btn_disable_motors','Motors Off')+' '+tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
|
||||
// ── Temperature ──
|
||||
function setNozzle(){
|
||||
var v=parseFloat(document.getElementById('p-nozzle-inp').value||0);
|
||||
post('/api/temperature',{nozzle:v,bed:S.bed_target})
|
||||
.then(function(){clog('Nozzle → '+v+'°C','msg-ok')})
|
||||
.catch(function(e){clog('Temp-Fehler: '+e,'msg-err')});
|
||||
.then(function(){clog(tr('log_nozzle','Nozzle → ')+v+'°C','msg-ok')})
|
||||
.catch(function(e){clog(tr('label_nozzle','Düse')+' '+tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
function setBed(){
|
||||
var v=parseFloat(document.getElementById('p-bed-inp').value||0);
|
||||
post('/api/temperature',{nozzle:S.nozzle_target,bed:v})
|
||||
.then(function(){clog(T.label_bed+' → '+v+'°C','msg-ok')})
|
||||
.catch(function(e){clog('Temp-Fehler: '+e,'msg-err')});
|
||||
.then(function(){clog(tr('log_bed','Bett → ')+v+'°C','msg-ok')})
|
||||
.catch(function(e){clog(tr('label_bed','Bett')+' '+tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
|
||||
// ── Light ──
|
||||
@@ -1814,7 +1824,7 @@ function setSpeed(mode){
|
||||
if(b) b.classList.toggle('spd-active',m===mode);
|
||||
});
|
||||
post('/api/speed',{mode:mode})
|
||||
.catch(function(e){clog('Speed-Fehler: '+e,'msg-err')});
|
||||
.catch(function(e){clog(tr('label_speed','Geschwindigkeit')+' '+tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
|
||||
// ── Fan ──
|
||||
@@ -1822,15 +1832,15 @@ function setFan(){
|
||||
var v=parseInt(document.getElementById('d-fan').value);
|
||||
document.getElementById('d-fan-val').textContent=v;
|
||||
post('/api/fan',{speed:v})
|
||||
.then(function(){clog('Lüfter → '+v+'%','msg-ok')})
|
||||
.catch(function(e){clog('Lüfter-Fehler: '+e,'msg-err')});
|
||||
.then(function(){clog(tr('log_fan','Lüfter → ')+v+'%','msg-ok')})
|
||||
.catch(function(e){clog(tr('log_fan','Lüfter → ')+tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
function quickFan(v){
|
||||
document.getElementById('d-fan').value=v;
|
||||
document.getElementById('d-fan-val').textContent=v;
|
||||
post('/api/fan',{speed:v})
|
||||
.then(function(){clog('Lüfter → '+v+'%','msg-ok')})
|
||||
.catch(function(e){clog('Lüfter-Fehler: '+e,'msg-err')});
|
||||
.then(function(){clog(tr('log_fan','Lüfter → ')+v+'%','msg-ok')})
|
||||
.catch(function(e){clog(tr('log_fan','Lüfter → ')+tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
|
||||
// ── AMS ──
|
||||
@@ -1845,7 +1855,7 @@ function amsFeed(type,slotIndex){
|
||||
}
|
||||
return post('/api/ams/feed',{slot_index:globalIdx,type:type})
|
||||
.then(function(){clog((type===1?T.lbl_feed:T.lbl_unload)+' Slot '+(globalIdx+1),'msg-ok')})
|
||||
.catch(function(e){clog('AMS-Fehler: '+e,'msg-err');throw e;});
|
||||
.catch(function(e){clog('AMS '+tr('log_error','Fehler:')+' '+e,'msg-err');throw e;});
|
||||
}
|
||||
|
||||
// ── Camera ──
|
||||
@@ -1871,14 +1881,14 @@ function camStart(){
|
||||
ph.style.display='flex';
|
||||
camOn=false;
|
||||
document.getElementById('cam-toggle-btn').textContent=tr('btn_cam_start');
|
||||
clog(tr('log_error')+' '+tr('cam_stream_unavailable'),'msg-err');
|
||||
clog(tr('log_error','Fehler:')+' '+tr('cam_stream_unavailable'),'msg-err');
|
||||
};
|
||||
img.src='/api/camera/stream?t='+Date.now();
|
||||
}
|
||||
}).catch(function(e){
|
||||
sp.style.display='none';
|
||||
ph.style.display='flex';
|
||||
clog(tr('log_error')+' '+e,'msg-err');
|
||||
clog(tr('log_error','Fehler:')+' '+e,'msg-err');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1910,7 +1920,7 @@ function aceDryStart(aceId){
|
||||
clog('ACE '+(aceId+1)+' - '+tr('ace_dry_dryer')+': '+tr('ace_dry_start')+' ('+t+'°C, '+d+' min)','msg-ok');
|
||||
poll();
|
||||
})
|
||||
.catch(function(e){clog('ACE-Fehler: '+e,'msg-err');});
|
||||
.catch(function(e){clog('ACE '+tr('log_error','Fehler:')+' '+e,'msg-err');});
|
||||
}
|
||||
|
||||
var _aceAutoFeedPending={};
|
||||
@@ -2114,7 +2124,7 @@ function saveAceDryPresetAndRestart(){
|
||||
}).catch(function(e){
|
||||
btn.disabled=false;
|
||||
btn.textContent=tr('ace_dry_dialog_save_restart');
|
||||
clog('ACE-Preset Fehler: '+e,'msg-err');
|
||||
clog('ACE preset '+tr('log_error','Fehler:')+' '+e,'msg-err');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2152,14 +2162,14 @@ function aceDryStop(aceId){
|
||||
clog('ACE '+(aceId+1)+' - '+tr('ace_dry_dryer')+': '+tr('ace_dry_stop'),'msg-ok');
|
||||
poll();
|
||||
})
|
||||
.catch(function(e){clog('ACE-Fehler: '+e,'msg-err');});
|
||||
.catch(function(e){clog('ACE '+tr('log_error','Fehler:')+' '+e,'msg-err');});
|
||||
}
|
||||
|
||||
function loadStore(){
|
||||
fetch(_apiUrl('/kx/files')).then(function(r){return r.json()}).then(function(d){
|
||||
storeFiles=d.result||[];
|
||||
renderStore();
|
||||
}).catch(function(e){clog('Store-Fehler: '+e,'msg-err')});
|
||||
}).catch(function(e){clog(tr('log_error','Fehler:')+' '+e,'msg-err')});
|
||||
}
|
||||
|
||||
function uploadGcode(file){
|
||||
@@ -2199,7 +2209,7 @@ function uploadGcode(file){
|
||||
if(status){ status.textContent=T.store_upload_error.replace('{error}',e.message); status.className='upload-status-err'; }
|
||||
if(label) label.style.display='';
|
||||
if(zone) zone.style.pointerEvents='';
|
||||
clog('Upload-Fehler: '+e,'msg-err');
|
||||
clog(tr('log_error','Fehler:')+' '+e,'msg-err');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2357,7 +2367,7 @@ function clearWebUploadWarningFlag(fileId, onDone){
|
||||
loadStore();
|
||||
})
|
||||
.catch(function(e){
|
||||
clog('Verifizierungs-Fehler: '+e,'msg-err');
|
||||
clog(tr('log_error','Fehler:')+' '+e,'msg-err');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2435,7 +2445,7 @@ function confirmStoreWebVerify(){
|
||||
})
|
||||
.catch(function(e){
|
||||
if(status){status.textContent='✗ '+e.message;}
|
||||
clog('Verifizierungs-Fehler: '+e,'msg-err');
|
||||
clog(tr('log_error','Fehler:')+' '+e,'msg-err');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2793,7 +2803,7 @@ function confirmFilamentPrint(){
|
||||
document.getElementById('file-ready-banner').style.display='none';
|
||||
if(btn){btn.disabled=false;setText('file-ready-btn',T.file_ready_btn);}
|
||||
}).catch(function(e){
|
||||
clog(tr('log_error')+' '+e,'msg-err');
|
||||
clog(tr('log_error','Fehler:')+' '+e,'msg-err');
|
||||
if(btn){btn.disabled=false;setText('file-ready-btn',T.file_ready_btn);}
|
||||
});
|
||||
} else {
|
||||
@@ -2803,9 +2813,9 @@ function confirmFilamentPrint(){
|
||||
headers:{'Content-Type':'application/json'},
|
||||
body:JSON.stringify({file_id:_storeFileId,filament_assignments:assignments,excluded_objects:excludedObjects,auto_leveling:fdAutoLeveling})
|
||||
}).then(function(r){return r.json()}).then(function(d){
|
||||
if(d.result==='ok'){clog('Druckstart: '+_storeFilename,'msg-ok');showPanel('dashboard');}
|
||||
else{clog('Druckfehler: '+(d.error||'?'),'msg-err');}
|
||||
}).catch(function(e){clog('Druckfehler: '+e,'msg-err');});
|
||||
if(d.result==='ok'){clog(tr('log_print_start','Druckstart:')+' '+_storeFilename,'msg-ok');showPanel('dashboard');}
|
||||
else{clog(tr('log_error','Fehler:')+' '+(d.error||'?'),'msg-err');}
|
||||
}).catch(function(e){clog(tr('log_error','Fehler:')+' '+e,'msg-err');});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2978,7 +2988,7 @@ function confirmSkip(){
|
||||
fetch(_apiUrl('/kx/skip'),{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify({names:names})})
|
||||
.then(function(r){return r.json().then(function(j){return {ok:r.ok,j:j};});})
|
||||
.then(function(res){
|
||||
if(!res.ok){st.textContent=(res.j&&res.j.error)||'Fehler';st.style.color='var(--err)';btn.disabled=false;return;}
|
||||
if(!res.ok){st.textContent=(res.j&&res.j.error)||tr('log_error','Fehler:');st.style.color='var(--err)';btn.disabled=false;return;}
|
||||
st.textContent=tr('skip_success');st.style.color='var(--ok)';
|
||||
// Dialog offen lassen + neu laden damit der "übersprungen"-Status erscheint
|
||||
setTimeout(function(){ _refreshSkipDialog(); btn.disabled=false; st.textContent=''; }, 1500);
|
||||
@@ -2990,7 +3000,7 @@ function storeDelete(fileId){
|
||||
if(!confirm(T.store_delete_confirm)) return;
|
||||
fetch(_apiUrl('/kx/files/'+fileId),{method:'DELETE'}).then(function(r){
|
||||
if(r.ok){loadStore();}
|
||||
else{clog('Löschen fehlgeschlagen','msg-err');}
|
||||
else{clog(tr('log_delete_failed','Löschen fehlgeschlagen'),'msg-err');}
|
||||
});
|
||||
}
|
||||
|
||||
@@ -3024,7 +3034,7 @@ function confirmAddPrinter(){
|
||||
body:JSON.stringify({printer_ip:ip,name:name})})
|
||||
.then(function(r){return r.json().then(function(j){return {ok:r.ok,j:j};});})
|
||||
.then(function(res){
|
||||
if(!res.ok){st.textContent=(res.j&&res.j.error)||'Fehler';st.style.color='var(--err)';btn.disabled=false;return;}
|
||||
if(!res.ok){st.textContent=(res.j&&res.j.error)||tr('log_error','Fehler:');st.style.color='var(--err)';btn.disabled=false;return;}
|
||||
st.textContent=T.apd_success;st.style.color='var(--ok)';
|
||||
setTimeout(function(){location.reload();},2500);
|
||||
})
|
||||
@@ -3035,7 +3045,7 @@ function removePrinter(id,name){
|
||||
fetch('/kx/printers/'+encodeURIComponent(id),{method:'DELETE'})
|
||||
.then(function(r){return r.json().then(function(j){return {ok:r.ok,j:j};});})
|
||||
.then(function(res){
|
||||
if(!res.ok){alert((res.j&&res.j.error)||'Fehler');return;}
|
||||
if(!res.ok){alert((res.j&&res.j.error)||tr('log_error','Fehler:'));return;}
|
||||
setTimeout(function(){location.href='/printer1';},2000);
|
||||
})
|
||||
.catch(function(e){alert(''+e);});
|
||||
@@ -3104,6 +3114,6 @@ function loadPrinterTab(){
|
||||
}).join('');
|
||||
});
|
||||
}).catch(function(e){
|
||||
if(grid)grid.innerHTML='<div style="color:var(--err);font-size:13px;padding:20px">Fehler: '+e+'</div>';
|
||||
if(grid)grid.innerHTML='<div style="color:var(--err);font-size:13px;padding:20px">'+tr('log_error','Fehler:')+' '+e+'</div>';
|
||||
});
|
||||
}
|
||||
|
||||
@@ -315,7 +315,7 @@
|
||||
<span class="slider-val" id="d-fan-val">0</span>
|
||||
</div>
|
||||
<div style="margin-top:12px;display:flex;gap:8px;flex-wrap:wrap">
|
||||
<button class="btn btn-sm" style="background:var(--raised);color:var(--txt)" onclick="quickFan(0)">Aus</button>
|
||||
<button class="btn btn-sm" id="d-fan-off" style="background:var(--raised);color:var(--txt)" onclick="quickFan(0)">Aus</button>
|
||||
<button class="btn btn-sm" style="background:var(--raised);color:var(--txt)" onclick="quickFan(25)">25%</button>
|
||||
<button class="btn btn-sm" style="background:var(--raised);color:var(--txt)" onclick="quickFan(50)">50%</button>
|
||||
<button class="btn btn-sm" style="background:var(--raised);color:var(--txt)" onclick="quickFan(75)">75%</button>
|
||||
|
||||
@@ -287,5 +287,23 @@
|
||||
"log_clear": "✕ Leeren",
|
||||
"log_filter_placeholder": "Filtern…",
|
||||
"skip_cancel": "Abbrechen",
|
||||
"skip_confirm": "Überspringen"
|
||||
"skip_confirm": "Überspringen",
|
||||
"settings_cat_connection": "Verbindung",
|
||||
"settings_cat_printer": "Drucker",
|
||||
"settings_cat_system": "System",
|
||||
"settings_btn_tooltip": "Einstellungen",
|
||||
"settings_printer_name_placeholder": "z.B. Kobra X Links",
|
||||
"settings_device_id_placeholder": "32 Hexzeichen",
|
||||
"settings_mqtt_username_placeholder": "userXXXXXXXX",
|
||||
"settings_device_id_hint": "32 Hexzeichen",
|
||||
"settings_mode_id_placeholder": "20030",
|
||||
"settings_language": "Sprache",
|
||||
"settings_theme_toggle": "Wechsel Hell / Dunkel",
|
||||
"settings_orca_profiles_label": "OrcaSlicer-Profile",
|
||||
"settings_orca_profiles_import": "Profile importieren",
|
||||
"skip_confirm_btn": "Überspringen",
|
||||
"btn_delete": "Löschen",
|
||||
"log_print_start": "Druckstart:",
|
||||
"log_print_action": "Druck:",
|
||||
"log_delete_failed": "Löschung fehlgeschlagen"
|
||||
}
|
||||
|
||||
@@ -136,10 +136,6 @@
|
||||
"settings_print": "Print Settings",
|
||||
"settings_poll": "Poll Interval (seconds)",
|
||||
"nav_settings": "Settings",
|
||||
"settings_cat_display": "Appearance",
|
||||
"settings_cat_filament": "Filament",
|
||||
"settings_cat_language": "Language",
|
||||
"settings_cat_theme": "Toggle light / dark",
|
||||
"settings_filament_mapping": "Filament profile mapping (per slot)",
|
||||
"settings_filament_mapping_save": "Save mapping",
|
||||
"settings_visible_vendors": "Visible vendors (profile dropdown)",
|
||||
@@ -161,6 +157,14 @@
|
||||
"settings_default_slot": "Default Slot (single color)",
|
||||
"settings_slot_auto": "Auto (all loaded slots)",
|
||||
"settings_auto_leveling": "Auto-Leveling Default",
|
||||
"settings_cat_connection": "Connection",
|
||||
"settings_cat_printer": "Printer",
|
||||
"settings_cat_display": "Appearance",
|
||||
"settings_cat_filament": "Filament",
|
||||
"settings_cat_system": "System",
|
||||
"settings_auto_leveling_label": "Auto-Leveling before print",
|
||||
"settings_poll_interval_label": "Poll Interval (seconds)",
|
||||
"settings_poll_interval_hint": "How often the bridge queries printer status",
|
||||
"fd_options_title": "Print Options",
|
||||
"print_auto_leveling": "Auto-Leveling",
|
||||
"settings_file_ready_mode": "Start Print Behavior",
|
||||
@@ -168,6 +172,12 @@
|
||||
"settings_file_ready_dialog": "Print Dialog",
|
||||
"settings_camera_on_print": "Turn camera on at print start",
|
||||
"settings_web_upload_warning": "Show warning when printing web uploads",
|
||||
"settings_filament_mapping_label": "Filament profile mapping (per slot)",
|
||||
"settings_filament_mapping_hint": "Fixed Orca profile per AMS slot. On slicer sync, the bridge sends this profile instead of \"Generic\".",
|
||||
"settings_filament_mapping_save_label": "Save mapping",
|
||||
"settings_visible_vendors_label": "Visible vendors (profile dropdown)",
|
||||
"settings_visible_vendors_save_label": "Save selection",
|
||||
"settings_vendor_filter_placeholder": "Search vendors…",
|
||||
"update_check": "Check for Updates",
|
||||
"update_checking": "Checking...",
|
||||
"update_available": "available",
|
||||
@@ -287,5 +297,20 @@
|
||||
"sf_new": "New",
|
||||
"ss_date": "↓ Date",
|
||||
"ss_name": "A–Z Name",
|
||||
"ss_dur": "⏱ Print time"
|
||||
"ss_dur": "⏱ Print time",
|
||||
"settings_btn_tooltip": "Settings",
|
||||
"settings_printer_name_placeholder": "e.g. Kobra X Left",
|
||||
"settings_device_id_placeholder": "32 hex characters",
|
||||
"settings_mqtt_username_placeholder": "userXXXXXXXX",
|
||||
"settings_device_id_hint": "32 hex characters",
|
||||
"settings_mode_id_placeholder": "20030",
|
||||
"settings_language": "Language",
|
||||
"settings_theme_toggle": "Toggle light / dark",
|
||||
"settings_orca_profiles_label": "OrcaSlicer Profiles",
|
||||
"settings_orca_profiles_import": "Import profiles",
|
||||
"skip_confirm_btn": "Skip",
|
||||
"btn_delete": "Delete",
|
||||
"log_print_start": "Print start:",
|
||||
"log_print_action": "Print:",
|
||||
"log_delete_failed": "Delete failed"
|
||||
}
|
||||
|
||||
@@ -287,5 +287,23 @@
|
||||
"log_clear": "✕ Limpiar",
|
||||
"log_filter_placeholder": "Filtrar…",
|
||||
"skip_cancel": "Cancelar",
|
||||
"skip_confirm": "Omitir"
|
||||
"skip_confirm": "Omitir",
|
||||
"settings_cat_connection": "Conexión",
|
||||
"settings_cat_printer": "Impresora",
|
||||
"settings_cat_system": "Sistema",
|
||||
"settings_btn_tooltip": "Ajustes",
|
||||
"settings_printer_name_placeholder": "p. ej. Kobra X Sala",
|
||||
"settings_device_id_placeholder": "32 caracteres hexadecimales",
|
||||
"settings_mqtt_username_placeholder": "userXXXXXXXX",
|
||||
"settings_device_id_hint": "32 caracteres hexadecimales",
|
||||
"settings_mode_id_placeholder": "20030",
|
||||
"settings_language": "Idioma",
|
||||
"settings_theme_toggle": "Alternar claro / oscuro",
|
||||
"settings_orca_profiles_label": "Perfiles de OrcaSlicer",
|
||||
"settings_orca_profiles_import": "Importar perfiles",
|
||||
"skip_confirm_btn": "Omitir",
|
||||
"btn_delete": "Eliminar",
|
||||
"log_print_start": "Inicio de impresión:",
|
||||
"log_print_action": "Impresión:",
|
||||
"log_delete_failed": "Error al eliminar"
|
||||
}
|
||||
|
||||
@@ -287,5 +287,23 @@
|
||||
"log_clear": "✕ Effacer",
|
||||
"log_filter_placeholder": "Filtrer…",
|
||||
"skip_cancel": "Annuler",
|
||||
"skip_confirm": "Ignorer"
|
||||
"skip_confirm": "Ignorer",
|
||||
"settings_cat_connection": "Connexion",
|
||||
"settings_cat_printer": "Imprimante",
|
||||
"settings_cat_system": "Système",
|
||||
"settings_btn_tooltip": "Paramètres",
|
||||
"settings_printer_name_placeholder": "p. ex. Kobra X Salon",
|
||||
"settings_device_id_placeholder": "32 caractères hexadécimaux",
|
||||
"settings_mqtt_username_placeholder": "userXXXXXXXX",
|
||||
"settings_device_id_hint": "32 caractères hexadécimaux",
|
||||
"settings_mode_id_placeholder": "20030",
|
||||
"settings_language": "Langue",
|
||||
"settings_theme_toggle": "Basculer clair / sombre",
|
||||
"settings_orca_profiles_label": "Profils OrcaSlicer",
|
||||
"settings_orca_profiles_import": "Importer des profils",
|
||||
"skip_confirm_btn": "Ignorer",
|
||||
"btn_delete": "Supprimer",
|
||||
"log_print_start": "Début de l'impression :",
|
||||
"log_print_action": "Impression :",
|
||||
"log_delete_failed": "Échec de la suppression"
|
||||
}
|
||||
|
||||
@@ -287,5 +287,23 @@
|
||||
"sf_new": "Nuovo",
|
||||
"ss_date": "↓ Data",
|
||||
"ss_name": "Nome A–Z",
|
||||
"ss_dur": "⏱ Tempo di stampa"
|
||||
}
|
||||
"ss_dur": "⏱ Tempo di stampa",
|
||||
"settings_cat_connection": "Connessione",
|
||||
"settings_cat_printer": "Stampante",
|
||||
"settings_cat_system": "Sistema",
|
||||
"settings_btn_tooltip": "Impostazioni",
|
||||
"settings_printer_name_placeholder": "p. es. Kobra X Sala",
|
||||
"settings_device_id_placeholder": "32 caratteri esadecimali",
|
||||
"settings_mqtt_username_placeholder": "userXXXXXXXX",
|
||||
"settings_device_id_hint": "32 caratteri esadecimali",
|
||||
"settings_mode_id_placeholder": "20030",
|
||||
"settings_language": "Lingua",
|
||||
"settings_theme_toggle": "Attiva/disattiva chiaro / scuro",
|
||||
"settings_orca_profiles_label": "Profili OrcaSlicer",
|
||||
"settings_orca_profiles_import": "Importa profili",
|
||||
"skip_confirm_btn": "Salta",
|
||||
"btn_delete": "Elimina",
|
||||
"log_print_start": "Inizio stampa:",
|
||||
"log_print_action": "Stampa:",
|
||||
"log_delete_failed": "Eliminazione non riuscita"
|
||||
}
|
||||
|
||||
@@ -287,5 +287,23 @@
|
||||
"log_clear": "✕ 清空",
|
||||
"log_filter_placeholder": "筛选…",
|
||||
"skip_cancel": "取消",
|
||||
"skip_confirm": "跳过"
|
||||
"skip_confirm": "跳过",
|
||||
"settings_cat_connection": "连接",
|
||||
"settings_cat_printer": "打印机",
|
||||
"settings_cat_system": "系统",
|
||||
"settings_btn_tooltip": "设置",
|
||||
"settings_printer_name_placeholder": "例如 Kobra X 左",
|
||||
"settings_device_id_placeholder": "32 个十六进制字符",
|
||||
"settings_mqtt_username_placeholder": "userXXXXXXXX",
|
||||
"settings_device_id_hint": "32 个十六进制字符",
|
||||
"settings_mode_id_placeholder": "20030",
|
||||
"settings_language": "语言",
|
||||
"settings_theme_toggle": "切换浅色 / 深色",
|
||||
"settings_orca_profiles_label": "OrcaSlicer 配置文件",
|
||||
"settings_orca_profiles_import": "导入配置文件",
|
||||
"skip_confirm_btn": "跳过",
|
||||
"btn_delete": "删除",
|
||||
"log_print_start": "打印开始:",
|
||||
"log_print_action": "打印:",
|
||||
"log_delete_failed": "删除失败"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user