diff --git a/web/themes/default/app.js b/web/themes/default/app.js
index bd1fe9f..dbce1c0 100644
--- a/web/themes/default/app.js
+++ b/web/themes/default/app.js
@@ -155,76 +155,9 @@ function _updateSpoolmanStatusDot(){
var lbl=document.getElementById('spoolman-status-lbl');
if(!dot||!lbl)return;
if(_spoolmanStatus.configured){
- dot.style.color='var(--ok)';lbl.textContent=_spoolmanStatus.server||'verbunden';
+ dot.style.color='var(--ok)';lbl.textContent=_spoolmanStatus.server||tr('spoolman_status_configured','verbunden');
} else {
- dot.style.color='var(--txt2)';lbl.textContent='nicht konfiguriert';
- }
-}
-
-function _buildSpoolmanSection(){
- var sec=document.getElementById('fd-spoolman-section');
- var rows=document.getElementById('fd-spoolman-rows');
- var loading=document.getElementById('fd-spoolman-loading');
- if(!sec||!rows)return;
- if(!_spoolmanStatus.configured){sec.style.display='none';return;}
- sec.style.display='';
- rows.innerHTML='';
- if(loading)loading.style.display='';
-
- var usedSlots={};
- document.querySelectorAll('#fd-slots select').forEach(function(sel){
- var idx=parseInt(sel.value);
- if(idx>=0){
- var slot=(_amsSlots||[]).find(function(s){return s.slot_index===idx;});
- if(slot&&!usedSlots[idx])usedSlots[idx]=slot;
- }
- });
-
- fetch(_apiUrl('/kx/spoolman/spools')).then(function(r){return r.json();}).then(function(d){
- if(loading)loading.style.display='none';
- _spoolmanSpools=d.spools||[];
- var slotKeys=Object.keys(usedSlots).map(Number).sort(function(a,b){return a-b;});
- if(!slotKeys.length){rows.innerHTML='–';return;}
- rows.innerHTML=slotKeys.map(function(idx){
- var slot=usedSlots[idx];
- var col=(slot.color_hex||'#888');
- var currentSpool=_slotSpoolMap[String(idx)]||'';
- var opts=''+_spoolmanSpools.map(function(sp){
- var rem=sp.remaining_weight!=null?' ('+sp.remaining_weight.toFixed(0)+'g)':'';
- var vendor=sp.filament&&sp.filament.vendor?sp.filament.vendor+' ':'';
- var name=sp.filament&&sp.filament.name?sp.filament.name:'Spool';
- return '';
- }).join('');
- return '
'+
- ''+
- 'Slot '+(idx+1)+''+
- '
';
- }).join('');
- }).catch(function(){if(loading)loading.style.display='none';});
-}
-
-// Spoolman state
-var _spoolmanStatus={configured:false,server:'',sync_rate:0,slot_spools:{}};
-var _spoolmanSpools=[];
-var _slotSpoolMap={}; // {String(global_index): spoolman_spool_id} — last committed assignment
-
-function _loadSpoolmanStatus(){
- fetch(_apiUrl('/kx/spoolman/status')).then(function(r){return r.json();}).then(function(d){
- _spoolmanStatus=d;
- _slotSpoolMap=d.slot_spools||{};
- _updateSpoolmanStatusDot();
- }).catch(function(){});
-}
-function _updateSpoolmanStatusDot(){
- var dot=document.getElementById('spoolman-status-dot');
- var lbl=document.getElementById('spoolman-status-lbl');
- if(!dot||!lbl)return;
- if(_spoolmanStatus.configured){
- dot.style.color='var(--ok)';lbl.textContent=_spoolmanStatus.server||'verbunden';
- } else {
- dot.style.color='var(--txt2)';lbl.textContent='nicht konfiguriert';
+ dot.style.color='var(--txt2)';lbl.textContent=tr('spoolman_status_not_configured','nicht konfiguriert');
}
}
@@ -670,6 +603,12 @@ function applyLang() {
setText('lbl-spoolman-url',T.lbl_spoolman_url||'Server-URL');
setText('lbl-spoolman-sync-rate',T.lbl_spoolman_sync_rate||'Sync-Rate (s, 0=aus)');
setText('modal-sec-obico',T.modal_sec_obico||'Obico');
+ var obicoBox=document.getElementById('obico-info-box');
+ if(obicoBox){
+ var cfgEl=document.getElementById('obico-cfg-path');
+ var cfgPath=cfgEl?cfgEl.textContent:'';
+ obicoBox.innerHTML=(T.obico_info_configured_via||'Obico wird über den moonraker-obico-Container konfiguriert.')+'
'+(T.obico_config_file_label||'Config-Datei:')+' '+cfgPath+'';
+ }
setText(
"setcat-lbl-notifications",
T.settings_cat_notifications || "Benachrichtigungen",
@@ -2883,6 +2822,19 @@ function saveSettings() {
(document.getElementById("s-notif-every-layers") || {}).value || "0",
10,
) || 0,
+ spoolman_server: (
+ (document.getElementById("s-spoolman-url") || {}).value || ""
+ ).trim(),
+ spoolman_sync_rate: Math.min(
+ 3600,
+ Math.max(
+ 0,
+ parseInt(
+ (document.getElementById("s-spoolman-sync-rate") || {}).value,
+ 10,
+ ) || 0,
+ ),
+ ),
})
.then(function () {
btn.textContent = T.update_restarting;
diff --git a/web/translations/de.json b/web/translations/de.json
index a317379..d013d5c 100644
--- a/web/translations/de.json
+++ b/web/translations/de.json
@@ -122,6 +122,8 @@
"lbl_light": "💡 Licht",
"lbl_remaining": "Restzeit:",
"lbl_slicer_time": "Slicer-Schätzung:",
+ "lbl_spoolman_sync_rate": "Sync-Rate (s, 0=aus)",
+ "lbl_spoolman_url": "Server-URL",
"lbl_unload": "Ausziehen",
"lbl_zpos": "Z (mm)",
"log_auto": "⬇ Auto",
@@ -155,6 +157,8 @@
"log_topic_label": "Thema:",
"log_topic_print": "Druck",
"log_topic_status": "Status",
+ "modal_sec_obico": "Obico",
+ "modal_sec_spoolman": "Spoolman",
"nav_ams": "AMS",
"nav_browser": "Browser",
"nav_console": "Konsole",
@@ -165,6 +169,8 @@
"nav_printers": "Drucker",
"nav_settings": "Einstellungen",
"nav_temps": "Temperaturen",
+ "obico_config_file_label": "Config-Datei:",
+ "obico_info_configured_via": "Obico wird über den moonraker-obico-Container konfiguriert.",
"orca_profile_done": "Importiert",
"orca_profile_dropmsg": "Hierher ziehen oder klicken",
"orca_profile_help_html": "Lade ein ZIP deines OrcaSlicer-Filament-Ordners oder einzelne .json-Files hoch.
In OrcaSlicer: Help → Show Configuration Folder → user/<id>/filament/",
@@ -225,6 +231,7 @@
"settings_file_ready_banner": "Druckleiste",
"settings_file_ready_dialog": "Druckdialog",
"settings_file_ready_mode": "Nach Upload: Druckstart-Verhalten",
+ "settings_integrations": "Integrationen",
"settings_language": "Sprache",
"settings_mode_id": "Mode-ID",
"settings_mode_id_placeholder": "20030",
@@ -295,6 +302,8 @@
"speed_normal": "⚡ Normal",
"speed_silent": "🐢 Leise",
"speed_sport": "🚀 Sport",
+ "spoolman_status_configured": "verbunden",
+ "spoolman_status_not_configured": "nicht konfiguriert",
"ss_date": "↓ Datum",
"ss_dur": "⏱ Druckzeit",
"ss_name": "A–Z Name",
@@ -312,45 +321,5 @@
"store_upload_error": "✗ {error}",
"store_upload_label_browse": "durchsuchen",
"store_upload_label_prefix": "GCode hierher ziehen oder ",
- "store_upload_only_gcode": "✗ Nur GCode-Dateien erlaubt (.gcode, .3mf, .bgcode)",
- "sf_all": "Alle",
- "sf_ok": "✓ Erfolgreich",
- "sf_err": "✗ Fehler",
- "sf_new": "Neu",
- "ss_date": "↓ Datum",
- "ss_name": "A–Z Name",
- "ss_dur": "⏱ Druckzeit",
- "ace_dry_preset_pla": "PLA",
- "ace_dry_preset_pla_plus": "PLA+",
- "ace_dry_preset_petg": "PETG",
- "ace_dry_preset_tpu": "TPU",
- "ace_dry_preset_abs_asa": "ABS / ASA",
- "ace_dry_preset_pa_pc": "PA / PC",
- "ace_dry_preset_custom": "Custom",
- "fd_options_title": "Optionen",
- "print_auto_leveling": "Auto-Leveling für diesen Druck",
- "settings_file_ready_mode": "Druckdialog starten",
- "settings_file_ready_banner": "Druckleiste",
- "settings_file_ready_dialog": "Druckdialog",
- "log_dir_rx": "RX",
- "log_dir_tx": "TX",
- "log_dir_label": "Richtung:",
- "log_lvl_err": "⛔ Fehler",
- "log_lvl_warn": "⚠ Warnung",
- "log_topic_label": "Thema:",
- "log_topic_ams": "AMS",
- "log_topic_print": "Druck",
- "log_topic_info": "Info",
- "log_topic_status": "Status",
- "log_download": "⬇ Download",
- "log_auto": "⬇ Auto",
- "log_clear": "✕ Leeren",
- "log_filter_placeholder": "Filtern…",
- "skip_cancel": "Abbrechen",
- "skip_confirm": "Überspringen",
- "settings_integrations": "Integrationen",
- "modal_sec_spoolman": "Spoolman",
- "lbl_spoolman_url": "Server-URL",
- "lbl_spoolman_sync_rate": "Sync-Rate (s, 0=aus)",
- "modal_sec_obico": "Obico"
+ "store_upload_only_gcode": "✗ Nur GCode-Dateien erlaubt (.gcode, .3mf, .bgcode)"
}
diff --git a/web/translations/en.json b/web/translations/en.json
index d57caf1..658d043 100644
--- a/web/translations/en.json
+++ b/web/translations/en.json
@@ -122,6 +122,8 @@
"lbl_light": "💡 Light",
"lbl_remaining": "Remaining:",
"lbl_slicer_time": "Slicer estimate:",
+ "lbl_spoolman_sync_rate": "Sync rate (s, 0=off)",
+ "lbl_spoolman_url": "Server URL",
"lbl_unload": "Unload",
"lbl_zpos": "Z (mm)",
"log_auto": "⬇ Auto",
@@ -155,6 +157,8 @@
"log_topic_label": "Topic:",
"log_topic_print": "Print",
"log_topic_status": "Status",
+ "modal_sec_obico": "Obico",
+ "modal_sec_spoolman": "Spoolman",
"nav_ams": "AMS",
"nav_browser": "Browser",
"nav_console": "Console",
@@ -165,6 +169,8 @@
"nav_printers": "Printers",
"nav_settings": "Settings",
"nav_temps": "Temperatures",
+ "obico_config_file_label": "Config file:",
+ "obico_info_configured_via": "Obico is configured via the moonraker-obico container.",
"orca_profile_done": "Imported",
"orca_profile_dropmsg": "Drop here or click",
"orca_profile_help_html": "Upload a ZIP of your OrcaSlicer filament folder or single .json files.
In OrcaSlicer: Help → Show Configuration Folder → user/<id>/filament/",
@@ -229,6 +235,7 @@
"settings_file_ready_banner": "Print bar",
"settings_file_ready_dialog": "Print dialog",
"settings_file_ready_mode": "After upload: Start print behavior",
+ "settings_integrations": "Integrations",
"settings_language": "Language",
"settings_mode_id": "Mode ID",
"settings_mode_id_placeholder": "20030",
@@ -304,6 +311,8 @@
"speed_normal": "⚡ Normal",
"speed_silent": "🐢 Silent",
"speed_sport": "🚀 Sport",
+ "spoolman_status_configured": "connected",
+ "spoolman_status_not_configured": "not configured",
"ss_date": "↓ Date",
"ss_dur": "⏱ Print time",
"ss_name": "A–Z Name",
@@ -321,17 +330,5 @@
"store_upload_error": "✗ {error}",
"store_upload_label_browse": "browse",
"store_upload_label_prefix": "Drag GCode here or ",
- "store_upload_only_gcode": "✗ Only GCode files allowed (.gcode, .3mf, .bgcode)",
- "sf_all": "All",
- "sf_ok": "✓ Completed",
- "sf_err": "✗ Failed",
- "sf_new": "New",
- "ss_date": "↓ Date",
- "ss_name": "A–Z Name",
- "ss_dur": "⏱ Print time",
- "settings_integrations": "Integrations",
- "modal_sec_spoolman": "Spoolman",
- "lbl_spoolman_url": "Server URL",
- "lbl_spoolman_sync_rate": "Sync rate (s, 0=off)",
- "modal_sec_obico": "Obico"
+ "store_upload_only_gcode": "✗ Only GCode files allowed (.gcode, .3mf, .bgcode)"
}
diff --git a/web/translations/es.json b/web/translations/es.json
index 797209b..9e7824f 100644
--- a/web/translations/es.json
+++ b/web/translations/es.json
@@ -122,6 +122,8 @@
"lbl_light": "💡 Luz",
"lbl_remaining": "Restante:",
"lbl_slicer_time": "Estimación del slicer:",
+ "lbl_spoolman_sync_rate": "Tasa de sincronización (s, 0=desact.)",
+ "lbl_spoolman_url": "URL del servidor",
"lbl_unload": "Descargar",
"lbl_zpos": "Z (mm)",
"log_auto": "⬇ Auto",
@@ -155,6 +157,8 @@
"log_topic_label": "Tema:",
"log_topic_print": "Impresión",
"log_topic_status": "Estado",
+ "modal_sec_obico": "Obico",
+ "modal_sec_spoolman": "Spoolman",
"nav_ams": "AMS",
"nav_browser": "Explorador",
"nav_console": "Consola",
@@ -165,6 +169,8 @@
"nav_printers": "Impresoras",
"nav_settings": "Ajustes",
"nav_temps": "Temperaturas",
+ "obico_config_file_label": "Archivo de configuración:",
+ "obico_info_configured_via": "Obico se configura mediante el contenedor moonraker-obico.",
"orca_profile_done": "Importado",
"orca_profile_dropmsg": "Suelta aquí o haz clic",
"orca_profile_help_html": "Sube un ZIP de tu carpeta de filamentos de OrcaSlicer o archivos .json sueltos.
En OrcaSlicer: Help → Show Configuration Folder → user/<id>/filament/",
@@ -227,6 +233,7 @@
"settings_file_ready_banner": "Barra de impresión",
"settings_file_ready_dialog": "Diálogo de impresión",
"settings_file_ready_mode": "Después de carga: Comportamiento de inicio de impresión",
+ "settings_integrations": "Integraciones",
"settings_language": "Idioma",
"settings_mode_id": "ID de modo",
"settings_mode_id_placeholder": "20030",
@@ -297,6 +304,8 @@
"speed_normal": "⚡ Normal",
"speed_silent": "🐢 Silencioso",
"speed_sport": "🚀 Sport",
+ "spoolman_status_configured": "conectado",
+ "spoolman_status_not_configured": "no configurado",
"ss_date": "↓ Fecha",
"ss_dur": "⏱ Tiempo de impresión",
"ss_name": "A–Z Nombre",
@@ -314,45 +323,5 @@
"store_upload_error": "✗ {error}",
"store_upload_label_browse": "buscar",
"store_upload_label_prefix": "Arrastra el GCode aquí o ",
- "store_upload_only_gcode": "✗ Solo se permiten archivos GCode (.gcode, .3mf, .bgcode)",
- "sf_all": "Todos",
- "sf_ok": "✓ Completado",
- "sf_err": "✗ Fallido",
- "sf_new": "Nuevo",
- "ss_date": "↓ Fecha",
- "ss_name": "A–Z Nombre",
- "ss_dur": "⏱ Tiempo de impresión",
- "ace_dry_preset_pla": "PLA",
- "ace_dry_preset_pla_plus": "PLA+",
- "ace_dry_preset_petg": "PETG",
- "ace_dry_preset_tpu": "TPU",
- "ace_dry_preset_abs_asa": "ABS / ASA",
- "ace_dry_preset_pa_pc": "PA / PC",
- "ace_dry_preset_custom": "Personalizado",
- "fd_options_title": "Opciones",
- "print_auto_leveling": "Autonivelado para esta impresión",
- "settings_file_ready_mode": "Iniciar diálogo de impresión",
- "settings_file_ready_banner": "Barra de impresión",
- "settings_file_ready_dialog": "Diálogo de impresión",
- "log_dir_rx": "RX",
- "log_dir_tx": "TX",
- "log_dir_label": "Dirección:",
- "log_lvl_err": "⛔ Errores",
- "log_lvl_warn": "⚠ Avisos",
- "log_topic_label": "Tema:",
- "log_topic_ams": "AMS",
- "log_topic_print": "Impresión",
- "log_topic_info": "Info",
- "log_topic_status": "Estado",
- "log_download": "⬇ Descargar",
- "log_auto": "⬇ Auto",
- "log_clear": "✕ Limpiar",
- "log_filter_placeholder": "Filtrar…",
- "skip_cancel": "Cancelar",
- "skip_confirm": "Omitir",
- "settings_integrations": "Integraciones",
- "modal_sec_spoolman": "Spoolman",
- "lbl_spoolman_url": "URL del servidor",
- "lbl_spoolman_sync_rate": "Tasa de sincronización (s, 0=desact.)",
- "modal_sec_obico": "Obico"
+ "store_upload_only_gcode": "✗ Solo se permiten archivos GCode (.gcode, .3mf, .bgcode)"
}
diff --git a/web/translations/fr.json b/web/translations/fr.json
index d77ca95..32a7250 100644
--- a/web/translations/fr.json
+++ b/web/translations/fr.json
@@ -123,6 +123,8 @@
"lbl_light": "💡 Lumière",
"lbl_remaining": "Restant :",
"lbl_slicer_time": "Estimation slicer :",
+ "lbl_spoolman_sync_rate": "Taux de sync. (s, 0=désact.)",
+ "lbl_spoolman_url": "URL du serveur",
"lbl_unload": "Décharger",
"lbl_zpos": "Z (mm)",
"log_auto": "⬇ Auto",
@@ -156,6 +158,8 @@
"log_topic_label": "Sujet :",
"log_topic_print": "Impression",
"log_topic_status": "Statut",
+ "modal_sec_obico": "Obico",
+ "modal_sec_spoolman": "Spoolman",
"nav_ams": "AMS",
"nav_browser": "Navigateur",
"nav_console": "Console",
@@ -166,6 +170,8 @@
"nav_printers": "Imprimantes",
"nav_settings": "Paramètres",
"nav_temps": "Températures",
+ "obico_config_file_label": "Fichier de config :",
+ "obico_info_configured_via": "Obico se configure via le conteneur moonraker-obico.",
"orca_profile_done": "Importé",
"orca_profile_dropmsg": "Déposez ici ou cliquez",
"orca_profile_help_html": "Déposez un ZIP de votre dossier filament OrcaSlicer ou des fichiers .json individuels.
Dans OrcaSlicer : Aide → Afficher le dossier de configuration → user/<id>/filament/",
@@ -228,6 +234,7 @@
"settings_file_ready_banner": "Barre d'impression",
"settings_file_ready_dialog": "Dialogue d'impression",
"settings_file_ready_mode": "Après téléchargement : Comportement de démarrage d'impression",
+ "settings_integrations": "Intégrations",
"settings_language": "Langue",
"settings_mode_id": "ID du mode",
"settings_mode_id_placeholder": "20030",
@@ -298,6 +305,8 @@
"speed_normal": "⚡ Normal",
"speed_silent": "🐢 Silencieux",
"speed_sport": "🚀 Sport",
+ "spoolman_status_configured": "connecté",
+ "spoolman_status_not_configured": "non configuré",
"ss_date": "↓ Date",
"ss_dur": "⏱ Durée d'impression",
"ss_name": "A–Z Nom",
@@ -315,45 +324,5 @@
"store_upload_error": "✗ {error}",
"store_upload_label_browse": "parcourir",
"store_upload_label_prefix": "Déposez un GCode ici ou ",
- "store_upload_only_gcode": "✗ Seuls les fichiers GCode sont autorisés (.gcode, .3mf, .bgcode)",
- "sf_all": "Tout",
- "sf_ok": "✓ Terminés",
- "sf_err": "✗ Échoués",
- "sf_new": "Nouveau",
- "ss_date": "↓ Date",
- "ss_name": "A–Z Nom",
- "ss_dur": "⏱ Durée d'impression",
- "ace_dry_preset_pla": "PLA",
- "ace_dry_preset_pla_plus": "PLA+",
- "ace_dry_preset_petg": "PETG",
- "ace_dry_preset_tpu": "TPU",
- "ace_dry_preset_abs_asa": "ABS / ASA",
- "ace_dry_preset_pa_pc": "PA / PC",
- "ace_dry_preset_custom": "Personnalisé",
- "fd_options_title": "Options",
- "print_auto_leveling": "Mise à niveau auto pour cette impression",
- "settings_file_ready_mode": "Démarrer le dialogue d'impression",
- "settings_file_ready_banner": "Barre d'impression",
- "settings_file_ready_dialog": "Dialogue d'impression",
- "log_dir_rx": "RX",
- "log_dir_tx": "TX",
- "log_dir_label": "Sens :",
- "log_lvl_err": "⛔ Erreurs",
- "log_lvl_warn": "⚠ Avert.",
- "log_topic_label": "Sujet :",
- "log_topic_ams": "AMS",
- "log_topic_print": "Impression",
- "log_topic_info": "Info",
- "log_topic_status": "Statut",
- "log_download": "⬇ Télécharger",
- "log_auto": "⬇ Auto",
- "log_clear": "✕ Effacer",
- "log_filter_placeholder": "Filtrer…",
- "skip_cancel": "Annuler",
- "skip_confirm": "Ignorer",
- "settings_integrations": "Intégrations",
- "modal_sec_spoolman": "Spoolman",
- "lbl_spoolman_url": "URL du serveur",
- "lbl_spoolman_sync_rate": "Taux de sync. (s, 0=désact.)",
- "modal_sec_obico": "Obico"
+ "store_upload_only_gcode": "✗ Seuls les fichiers GCode sont autorisés (.gcode, .3mf, .bgcode)"
}
diff --git a/web/translations/it.json b/web/translations/it.json
index cb6982c..9748216 100644
--- a/web/translations/it.json
+++ b/web/translations/it.json
@@ -123,6 +123,8 @@
"lbl_light": "💡 Luce",
"lbl_remaining": "Rimanente:",
"lbl_slicer_time": "Stima slicer:",
+ "lbl_spoolman_sync_rate": "Frequenza sync (s, 0=disatt.)",
+ "lbl_spoolman_url": "URL server",
"lbl_unload": "Rimuovi",
"lbl_zpos": "Z (mm)",
"log_auto": "⬇ Auto",
@@ -156,6 +158,8 @@
"log_topic_label": "Argomento:",
"log_topic_print": "Stampa",
"log_topic_status": "Stato",
+ "modal_sec_obico": "Obico",
+ "modal_sec_spoolman": "Spoolman",
"nav_ams": "AMS",
"nav_browser": "Browser",
"nav_console": "Console",
@@ -166,6 +170,8 @@
"nav_printers": "Stampanti",
"nav_settings": "Impostazioni",
"nav_temps": "Temperature",
+ "obico_config_file_label": "File di configurazione:",
+ "obico_info_configured_via": "Obico viene configurato tramite il container moonraker-obico.",
"orca_profile_done": "Importato",
"orca_profile_dropmsg": "Trascina qui o fai clic",
"orca_profile_help_html": "Carica un file ZIP della tua cartella filamenti di OrcaSlicer o file singoli .json.
In OrcaSlicer: Aiuto → Mostra cartella di configurazione → user/<id>/filament/",
@@ -226,6 +232,7 @@
"settings_file_ready_banner": "Barra di stampa",
"settings_file_ready_dialog": "Finestra di dialogo stampa",
"settings_file_ready_mode": "Dopo il caricamento: Comportamento di avvio stampa",
+ "settings_integrations": "Integrazioni",
"settings_language": "Lingua",
"settings_mode_id": "ID modalità",
"settings_mode_id_placeholder": "20030",
@@ -296,6 +303,8 @@
"speed_normal": "⚡ Normale",
"speed_silent": "🐢 Silenzioso",
"speed_sport": "🚀 Sport",
+ "spoolman_status_configured": "connesso",
+ "spoolman_status_not_configured": "non configurato",
"ss_date": "↓ Data",
"ss_dur": "⏱ Tempo di stampa",
"ss_name": "Nome A–Z",
@@ -313,17 +322,5 @@
"store_upload_error": "✗ {error}",
"store_upload_label_browse": "sfoglia",
"store_upload_label_prefix": "Trascina il GCode qui o ",
- "store_upload_only_gcode": "✗ Sono consentiti solo file GCode (.gcode, .3mf, .bgcode)",
- "sf_all": "Tutti",
- "sf_ok": "✓ Completato",
- "sf_err": "✗ Fallito",
- "sf_new": "Nuovo",
- "ss_date": "↓ Data",
- "ss_name": "Nome A–Z",
- "ss_dur": "⏱ Tempo di stampa",
- "settings_integrations": "Integrazioni",
- "modal_sec_spoolman": "Spoolman",
- "lbl_spoolman_url": "URL server",
- "lbl_spoolman_sync_rate": "Frequenza sync (s, 0=disatt.)",
- "modal_sec_obico": "Obico"
+ "store_upload_only_gcode": "✗ Sono consentiti solo file GCode (.gcode, .3mf, .bgcode)"
}
diff --git a/web/translations/zh-cn.json b/web/translations/zh-cn.json
index c80e04d..30f19a0 100644
--- a/web/translations/zh-cn.json
+++ b/web/translations/zh-cn.json
@@ -122,6 +122,8 @@
"lbl_light": "💡 灯光",
"lbl_remaining": "剩余时间:",
"lbl_slicer_time": "切片预估:",
+ "lbl_spoolman_sync_rate": "同步频率(秒,0=关闭)",
+ "lbl_spoolman_url": "服务器地址",
"lbl_unload": "退料",
"lbl_zpos": "Z (mm)",
"log_auto": "⬇ 自动",
@@ -155,6 +157,8 @@
"log_topic_label": "主题:",
"log_topic_print": "打印",
"log_topic_status": "状态",
+ "modal_sec_obico": "Obico",
+ "modal_sec_spoolman": "Spoolman",
"nav_ams": "AMS",
"nav_browser": "浏览器",
"nav_console": "控制台",
@@ -165,6 +169,8 @@
"nav_printers": "打印机",
"nav_settings": "设置",
"nav_temps": "温度",
+ "obico_config_file_label": "配置文件:",
+ "obico_info_configured_via": "Obico 通过 moonraker-obico 容器进行配置。",
"orca_profile_done": "已导入",
"orca_profile_dropmsg": "拖到此处或点击",
"orca_profile_help_html": "上传 OrcaSlicer 耗材文件夹的 ZIP 或单个 .json 文件。
在 OrcaSlicer 中: Help → Show Configuration Folder → user/<id>/filament/",
@@ -225,6 +231,7 @@
"settings_file_ready_banner": "打印栏",
"settings_file_ready_dialog": "打印对话框",
"settings_file_ready_mode": "上传后:开始打印行为",
+ "settings_integrations": "集成",
"settings_language": "语言",
"settings_mode_id": "模式 ID",
"settings_mode_id_placeholder": "20030",
@@ -295,6 +302,8 @@
"speed_normal": "⚡ 标准",
"speed_silent": "🐢 静音",
"speed_sport": "🚀 运动",
+ "spoolman_status_configured": "已连接",
+ "spoolman_status_not_configured": "未配置",
"ss_date": "↓ 日期",
"ss_dur": "⏱ 打印时间",
"ss_name": "A–Z 名称",
@@ -312,45 +321,5 @@
"store_upload_error": "✗ {error}",
"store_upload_label_browse": "浏览",
"store_upload_label_prefix": "将 GCode 拖到这里或 ",
- "store_upload_only_gcode": "✗ 仅允许 GCode 文件 (.gcode, .3mf, .bgcode)",
- "sf_all": "全部",
- "sf_ok": "✓ 已完成",
- "sf_err": "✗ 失败",
- "sf_new": "新",
- "ss_date": "↓ 日期",
- "ss_name": "A–Z 名称",
- "ss_dur": "⏱ 打印时间",
- "ace_dry_preset_pla": "PLA",
- "ace_dry_preset_pla_plus": "PLA+",
- "ace_dry_preset_petg": "PETG",
- "ace_dry_preset_tpu": "TPU",
- "ace_dry_preset_abs_asa": "ABS / ASA",
- "ace_dry_preset_pa_pc": "PA / PC",
- "ace_dry_preset_custom": "自定义",
- "fd_options_title": "选项",
- "print_auto_leveling": "本次打印自动调平",
- "settings_file_ready_mode": "开始打印对话框",
- "settings_file_ready_banner": "打印栏",
- "settings_file_ready_dialog": "打印对话框",
- "log_dir_rx": "RX",
- "log_dir_tx": "TX",
- "log_dir_label": "方向:",
- "log_lvl_err": "⛔ 错误",
- "log_lvl_warn": "⚠ 警告",
- "log_topic_label": "主题:",
- "log_topic_ams": "AMS",
- "log_topic_print": "打印",
- "log_topic_info": "信息",
- "log_topic_status": "状态",
- "log_download": "⬇ 下载",
- "log_auto": "⬇ 自动",
- "log_clear": "✕ 清空",
- "log_filter_placeholder": "筛选…",
- "skip_cancel": "取消",
- "skip_confirm": "跳过",
- "settings_integrations": "集成",
- "modal_sec_spoolman": "Spoolman",
- "lbl_spoolman_url": "服务器地址",
- "lbl_spoolman_sync_rate": "同步频率(秒,0=关闭)",
- "modal_sec_obico": "Obico"
+ "store_upload_only_gcode": "✗ 仅允许 GCode 文件 (.gcode, .3mf, .bgcode)"
}