Final MVP valid
This commit is contained in:
369
lib/i18n/en.json
369
lib/i18n/en.json
@@ -9,12 +9,12 @@
|
||||
"common.close": "Close",
|
||||
"common.save": "Save",
|
||||
"common.copy": "Copy",
|
||||
"nav.overview": "Overview",
|
||||
"nav.machines": "Machines",
|
||||
"nav.reports": "Reports",
|
||||
"nav.alerts": "Alerts",
|
||||
"nav.financial": "Financial",
|
||||
"nav.settings": "Settings",
|
||||
"nav.overview": "Overview",
|
||||
"nav.machines": "Machines",
|
||||
"nav.reports": "Reports",
|
||||
"nav.alerts": "Alerts",
|
||||
"nav.financial": "Financial",
|
||||
"nav.settings": "Settings",
|
||||
"sidebar.productTitle": "MIS",
|
||||
"sidebar.productSubtitle": "Control Tower",
|
||||
"sidebar.userFallback": "User",
|
||||
@@ -170,11 +170,11 @@
|
||||
"machine.detail.tooltip.deviation": "Deviation",
|
||||
"machine.detail.kpi.updated": "Updated {time}",
|
||||
"machine.detail.currentWorkOrder": "Current Work Order",
|
||||
"machine.detail.recentEvents": "Critical Events",
|
||||
"machine.detail.recentEvents": "Critical Events",
|
||||
"machine.detail.noEvents": "No events yet.",
|
||||
"machine.detail.cycleTarget": "Cycle target",
|
||||
"machine.detail.mini.events": "Detected Events",
|
||||
"machine.detail.mini.events.subtitle": "Canonical events (all)",
|
||||
"machine.detail.mini.events.subtitle": "Canonical events (all)",
|
||||
"machine.detail.mini.deviation": "Actual vs Standard Cycle",
|
||||
"machine.detail.mini.deviation.subtitle": "Average deviation",
|
||||
"machine.detail.mini.impact": "Production Impact",
|
||||
@@ -219,106 +219,106 @@
|
||||
"reports.scrapTrend": "Scrap Trend",
|
||||
"reports.topLossDrivers": "Top Loss Drivers",
|
||||
"reports.qualitySummary": "Quality Summary",
|
||||
"reports.notes": "Notes for Ops",
|
||||
"alerts.title": "Alerts",
|
||||
"alerts.subtitle": "Alert history with filters and drilldowns.",
|
||||
"alerts.comingSoon": "Alert configuration UI is coming soon.",
|
||||
"alerts.loading": "Loading alerts...",
|
||||
"alerts.error.loadPolicy": "Failed to load alert policy.",
|
||||
"alerts.error.savePolicy": "Failed to save alert policy.",
|
||||
"alerts.error.loadContacts": "Failed to load alert contacts.",
|
||||
"alerts.error.saveContacts": "Failed to save alert contact.",
|
||||
"alerts.error.deleteContact": "Failed to delete alert contact.",
|
||||
"alerts.error.createContact": "Failed to create alert contact.",
|
||||
"alerts.policy.title": "Alert policy",
|
||||
"alerts.policy.subtitle": "Configure escalation by role, channel, and duration.",
|
||||
"alerts.policy.save": "Save policy",
|
||||
"alerts.policy.saving": "Saving...",
|
||||
"alerts.policy.defaults": "Default escalation (per role)",
|
||||
"alerts.policy.enabled": "Enabled",
|
||||
"alerts.policy.afterMinutes": "After minutes",
|
||||
"alerts.policy.channels": "Channels",
|
||||
"alerts.policy.repeatMinutes": "Repeat (min)",
|
||||
"alerts.policy.readOnly": "You can view alert policy settings, but only owners can edit.",
|
||||
"alerts.policy.defaultsHelp": "Defaults apply when a specific event is reset or not customized.",
|
||||
"alerts.policy.eventSelectLabel": "Event type",
|
||||
"alerts.policy.eventSelectHelper": "Adjust escalation rules for a single event type.",
|
||||
"alerts.policy.applyDefaults": "Apply defaults",
|
||||
"alerts.event.macrostop": "Macrostop",
|
||||
"alerts.event.microstop": "Microstop",
|
||||
"alerts.event.slow-cycle": "Slow cycle",
|
||||
"alerts.event.offline": "Offline",
|
||||
"alerts.event.error": "Error",
|
||||
"alerts.contacts.title": "Alert contacts",
|
||||
"alerts.contacts.subtitle": "External recipients and role targeting.",
|
||||
"alerts.contacts.name": "Name",
|
||||
"alerts.contacts.roleScope": "Role scope",
|
||||
"alerts.contacts.email": "Email",
|
||||
"alerts.contacts.phone": "Phone",
|
||||
"alerts.contacts.eventTypes": "Event types (optional)",
|
||||
"alerts.contacts.eventTypesPlaceholder": "macrostop, microstop, offline",
|
||||
"alerts.contacts.eventTypesHelper": "Leave empty to receive all event types.",
|
||||
"alerts.contacts.add": "Add contact",
|
||||
"alerts.contacts.creating": "Adding...",
|
||||
"alerts.contacts.empty": "No alert contacts yet.",
|
||||
"alerts.contacts.save": "Save",
|
||||
"alerts.contacts.saving": "Saving...",
|
||||
"alerts.contacts.delete": "Delete",
|
||||
"alerts.contacts.deleting": "Deleting...",
|
||||
"alerts.contacts.active": "Active",
|
||||
"alerts.contacts.linkedUser": "Linked user (edit in profile)",
|
||||
"alerts.contacts.role.custom": "Custom",
|
||||
"alerts.contacts.role.member": "Member",
|
||||
"alerts.contacts.role.admin": "Admin",
|
||||
"alerts.contacts.role.owner": "Owner",
|
||||
"alerts.contacts.readOnly": "You can view contacts, but only owners can add or edit.",
|
||||
"alerts.inbox.title": "Alerts Inbox",
|
||||
"alerts.inbox.loading": "Loading alerts...",
|
||||
"alerts.inbox.loadingFilters": "Loading filters...",
|
||||
"alerts.inbox.empty": "No alerts found.",
|
||||
"alerts.inbox.error": "Failed to load alerts.",
|
||||
"alerts.inbox.range.24h": "Last 24 hours",
|
||||
"alerts.inbox.range.7d": "Last 7 days",
|
||||
"alerts.inbox.range.30d": "Last 30 days",
|
||||
"alerts.inbox.range.custom": "Custom",
|
||||
"alerts.inbox.filters.title": "Filters",
|
||||
"alerts.inbox.filters.range": "Range",
|
||||
"alerts.inbox.filters.start": "Start",
|
||||
"alerts.inbox.filters.end": "End",
|
||||
"alerts.inbox.filters.machine": "Machine",
|
||||
"alerts.inbox.filters.site": "Site",
|
||||
"alerts.inbox.filters.shift": "Shift",
|
||||
"alerts.inbox.filters.type": "Classification",
|
||||
"alerts.inbox.filters.severity": "Severity",
|
||||
"alerts.inbox.filters.status": "Status",
|
||||
"alerts.inbox.filters.search": "Search",
|
||||
"alerts.inbox.filters.searchPlaceholder": "Title, description, machine...",
|
||||
"alerts.inbox.filters.includeUpdates": "Include updates",
|
||||
"alerts.inbox.filters.allMachines": "All machines",
|
||||
"alerts.inbox.filters.allSites": "All sites",
|
||||
"alerts.inbox.filters.allShifts": "All shifts",
|
||||
"alerts.inbox.filters.allTypes": "All types",
|
||||
"alerts.inbox.filters.allSeverities": "All severities",
|
||||
"alerts.inbox.filters.allStatuses": "All statuses",
|
||||
"alerts.inbox.table.time": "Time",
|
||||
"alerts.inbox.table.machine": "Machine",
|
||||
"alerts.inbox.table.site": "Site",
|
||||
"alerts.inbox.table.shift": "Shift",
|
||||
"alerts.inbox.table.type": "Type",
|
||||
"alerts.inbox.table.severity": "Severity",
|
||||
"alerts.inbox.table.status": "Status",
|
||||
"alerts.inbox.table.duration": "Duration",
|
||||
"alerts.inbox.table.title": "Title",
|
||||
"alerts.inbox.table.unknown": "Unknown",
|
||||
"alerts.inbox.status.active": "Active",
|
||||
"alerts.inbox.status.resolved": "Resolved",
|
||||
"alerts.inbox.status.unknown": "Unknown",
|
||||
"alerts.inbox.duration.na": "n/a",
|
||||
"alerts.inbox.duration.sec": "s",
|
||||
"alerts.inbox.duration.min": " min",
|
||||
"alerts.inbox.duration.hr": " h",
|
||||
"alerts.inbox.meta.workOrder": "WO",
|
||||
"alerts.inbox.meta.sku": "SKU",
|
||||
"reports.notes": "Notes for Ops",
|
||||
"alerts.title": "Alerts",
|
||||
"alerts.subtitle": "Alert history with filters and drilldowns.",
|
||||
"alerts.comingSoon": "Alert configuration UI is coming soon.",
|
||||
"alerts.loading": "Loading alerts...",
|
||||
"alerts.error.loadPolicy": "Failed to load alert policy.",
|
||||
"alerts.error.savePolicy": "Failed to save alert policy.",
|
||||
"alerts.error.loadContacts": "Failed to load alert contacts.",
|
||||
"alerts.error.saveContacts": "Failed to save alert contact.",
|
||||
"alerts.error.deleteContact": "Failed to delete alert contact.",
|
||||
"alerts.error.createContact": "Failed to create alert contact.",
|
||||
"alerts.policy.title": "Alert policy",
|
||||
"alerts.policy.subtitle": "Configure escalation by role, channel, and duration.",
|
||||
"alerts.policy.save": "Save policy",
|
||||
"alerts.policy.saving": "Saving...",
|
||||
"alerts.policy.defaults": "Default escalation (per role)",
|
||||
"alerts.policy.enabled": "Enabled",
|
||||
"alerts.policy.afterMinutes": "After minutes",
|
||||
"alerts.policy.channels": "Channels",
|
||||
"alerts.policy.repeatMinutes": "Repeat (min)",
|
||||
"alerts.policy.readOnly": "You can view alert policy settings, but only owners can edit.",
|
||||
"alerts.policy.defaultsHelp": "Defaults apply when a specific event is reset or not customized.",
|
||||
"alerts.policy.eventSelectLabel": "Event type",
|
||||
"alerts.policy.eventSelectHelper": "Adjust escalation rules for a single event type.",
|
||||
"alerts.policy.applyDefaults": "Apply defaults",
|
||||
"alerts.event.macrostop": "Macrostop",
|
||||
"alerts.event.microstop": "Microstop",
|
||||
"alerts.event.slow-cycle": "Slow cycle",
|
||||
"alerts.event.offline": "Offline",
|
||||
"alerts.event.error": "Error",
|
||||
"alerts.contacts.title": "Alert contacts",
|
||||
"alerts.contacts.subtitle": "External recipients and role targeting.",
|
||||
"alerts.contacts.name": "Name",
|
||||
"alerts.contacts.roleScope": "Role scope",
|
||||
"alerts.contacts.email": "Email",
|
||||
"alerts.contacts.phone": "Phone",
|
||||
"alerts.contacts.eventTypes": "Event types (optional)",
|
||||
"alerts.contacts.eventTypesPlaceholder": "macrostop, microstop, offline",
|
||||
"alerts.contacts.eventTypesHelper": "Leave empty to receive all event types.",
|
||||
"alerts.contacts.add": "Add contact",
|
||||
"alerts.contacts.creating": "Adding...",
|
||||
"alerts.contacts.empty": "No alert contacts yet.",
|
||||
"alerts.contacts.save": "Save",
|
||||
"alerts.contacts.saving": "Saving...",
|
||||
"alerts.contacts.delete": "Delete",
|
||||
"alerts.contacts.deleting": "Deleting...",
|
||||
"alerts.contacts.active": "Active",
|
||||
"alerts.contacts.linkedUser": "Linked user (edit in profile)",
|
||||
"alerts.contacts.role.custom": "Custom",
|
||||
"alerts.contacts.role.member": "Member",
|
||||
"alerts.contacts.role.admin": "Admin",
|
||||
"alerts.contacts.role.owner": "Owner",
|
||||
"alerts.contacts.readOnly": "You can view contacts, but only owners can add or edit.",
|
||||
"alerts.inbox.title": "Alerts Inbox",
|
||||
"alerts.inbox.loading": "Loading alerts...",
|
||||
"alerts.inbox.loadingFilters": "Loading filters...",
|
||||
"alerts.inbox.empty": "No alerts found.",
|
||||
"alerts.inbox.error": "Failed to load alerts.",
|
||||
"alerts.inbox.range.24h": "Last 24 hours",
|
||||
"alerts.inbox.range.7d": "Last 7 days",
|
||||
"alerts.inbox.range.30d": "Last 30 days",
|
||||
"alerts.inbox.range.custom": "Custom",
|
||||
"alerts.inbox.filters.title": "Filters",
|
||||
"alerts.inbox.filters.range": "Range",
|
||||
"alerts.inbox.filters.start": "Start",
|
||||
"alerts.inbox.filters.end": "End",
|
||||
"alerts.inbox.filters.machine": "Machine",
|
||||
"alerts.inbox.filters.site": "Site",
|
||||
"alerts.inbox.filters.shift": "Shift",
|
||||
"alerts.inbox.filters.type": "Classification",
|
||||
"alerts.inbox.filters.severity": "Severity",
|
||||
"alerts.inbox.filters.status": "Status",
|
||||
"alerts.inbox.filters.search": "Search",
|
||||
"alerts.inbox.filters.searchPlaceholder": "Title, description, machine...",
|
||||
"alerts.inbox.filters.includeUpdates": "Include updates",
|
||||
"alerts.inbox.filters.allMachines": "All machines",
|
||||
"alerts.inbox.filters.allSites": "All sites",
|
||||
"alerts.inbox.filters.allShifts": "All shifts",
|
||||
"alerts.inbox.filters.allTypes": "All types",
|
||||
"alerts.inbox.filters.allSeverities": "All severities",
|
||||
"alerts.inbox.filters.allStatuses": "All statuses",
|
||||
"alerts.inbox.table.time": "Time",
|
||||
"alerts.inbox.table.machine": "Machine",
|
||||
"alerts.inbox.table.site": "Site",
|
||||
"alerts.inbox.table.shift": "Shift",
|
||||
"alerts.inbox.table.type": "Type",
|
||||
"alerts.inbox.table.severity": "Severity",
|
||||
"alerts.inbox.table.status": "Status",
|
||||
"alerts.inbox.table.duration": "Duration",
|
||||
"alerts.inbox.table.title": "Title",
|
||||
"alerts.inbox.table.unknown": "Unknown",
|
||||
"alerts.inbox.status.active": "Active",
|
||||
"alerts.inbox.status.resolved": "Resolved",
|
||||
"alerts.inbox.status.unknown": "Unknown",
|
||||
"alerts.inbox.duration.na": "n/a",
|
||||
"alerts.inbox.duration.sec": "s",
|
||||
"alerts.inbox.duration.min": " min",
|
||||
"alerts.inbox.duration.hr": " h",
|
||||
"alerts.inbox.meta.workOrder": "WO",
|
||||
"alerts.inbox.meta.sku": "SKU",
|
||||
"reports.notes.suggested": "Suggested actions",
|
||||
"reports.notes.none": "No insights yet. Generate reports after data collection.",
|
||||
"reports.noTrend": "No trend data yet.",
|
||||
@@ -355,14 +355,14 @@
|
||||
"reports.pdf.cycleDistribution": "Cycle Time Distribution",
|
||||
"reports.pdf.notes": "Notes for Ops",
|
||||
"reports.pdf.none": "None",
|
||||
"settings.title": "Settings",
|
||||
"settings.subtitle": "Live configuration for shifts, alerts, and defaults.",
|
||||
"settings.tabs.general": "General",
|
||||
"settings.tabs.shifts": "Shifts",
|
||||
"settings.tabs.thresholds": "Thresholds",
|
||||
"settings.tabs.alerts": "Alerts",
|
||||
"settings.tabs.financial": "Financial",
|
||||
"settings.tabs.team": "Team",
|
||||
"settings.title": "Settings",
|
||||
"settings.subtitle": "Live configuration for shifts, alerts, and defaults.",
|
||||
"settings.tabs.general": "General",
|
||||
"settings.tabs.shifts": "Shifts",
|
||||
"settings.tabs.thresholds": "Thresholds",
|
||||
"settings.tabs.alerts": "Alerts",
|
||||
"settings.tabs.financial": "Financial",
|
||||
"settings.tabs.team": "Team",
|
||||
"settings.loading": "Loading settings...",
|
||||
"settings.loadingTeam": "Loading team...",
|
||||
"settings.refresh": "Refresh",
|
||||
@@ -442,68 +442,75 @@
|
||||
"settings.role.admin": "Admin",
|
||||
"settings.role.member": "Member",
|
||||
"settings.role.inactive": "Inactive",
|
||||
"settings.integrations": "Integrations",
|
||||
"settings.integrations.webhook": "Webhook URL",
|
||||
"settings.integrations.erp": "ERP Sync",
|
||||
"settings.integrations.erpNotConfigured": "Not configured",
|
||||
"financial.title": "Financial Impact",
|
||||
"financial.subtitle": "Translate downtime, slow cycles, and scrap into money.",
|
||||
"financial.ownerOnly": "Financial impact is available only to owners.",
|
||||
"financial.costsMoved": "Cost settings are now in",
|
||||
"financial.costsMovedLink": "Settings -> Financial",
|
||||
"financial.export.html": "HTML",
|
||||
"financial.export.csv": "CSV",
|
||||
"financial.totalLoss": "Total Loss",
|
||||
"financial.currencyLabel": "Currency: {currency}",
|
||||
"financial.noImpact": "No impact data yet.",
|
||||
"financial.chart.title": "Lost Money Over Time",
|
||||
"financial.chart.subtitle": "Stacked by event type",
|
||||
"financial.range.day": "Day",
|
||||
"financial.range.week": "Week",
|
||||
"financial.range.month": "Month",
|
||||
"financial.filters.title": "Filters",
|
||||
"financial.filters.machine": "Machine",
|
||||
"financial.filters.location": "Location",
|
||||
"financial.filters.sku": "SKU",
|
||||
"financial.filters.currency": "Currency",
|
||||
"financial.filters.allMachines": "All machines",
|
||||
"financial.filters.allLocations": "All locations",
|
||||
"financial.filters.skuPlaceholder": "Filter by SKU",
|
||||
"financial.filters.currencyPlaceholder": "MXN",
|
||||
"financial.loadingMachines": "Loading machines...",
|
||||
"financial.config.title": "Cost Parameters",
|
||||
"financial.config.subtitle": "Defaults apply to all machines unless overridden.",
|
||||
"financial.config.applyOrg": "Apply org defaults to all machines",
|
||||
"financial.config.save": "Save",
|
||||
"financial.config.saving": "Saving...",
|
||||
"financial.config.saved": "Saved",
|
||||
"financial.config.saveFailed": "Save failed",
|
||||
"financial.config.orgDefaults": "Org Defaults",
|
||||
"financial.config.locationOverrides": "Location Overrides",
|
||||
"financial.config.machineOverrides": "Machine Overrides",
|
||||
"financial.config.productOverrides": "Product Overrides",
|
||||
"financial.config.addLocation": "Add location override",
|
||||
"financial.config.addMachine": "Add machine override",
|
||||
"financial.config.addProduct": "Add product override",
|
||||
"financial.config.noneLocation": "No location overrides yet.",
|
||||
"financial.config.noneMachine": "No machine overrides yet.",
|
||||
"financial.config.noneProduct": "No product overrides yet.",
|
||||
"financial.config.location": "Location",
|
||||
"financial.config.selectLocation": "Select location",
|
||||
"financial.config.machine": "Machine",
|
||||
"financial.config.selectMachine": "Select machine",
|
||||
"financial.config.currency": "Currency",
|
||||
"financial.config.sku": "SKU",
|
||||
"financial.config.rawMaterialUnit": "Raw material / unit",
|
||||
"financial.config.ownerOnly": "Financial cost settings are available only to owners.",
|
||||
"financial.config.loading": "Loading financials...",
|
||||
"financial.field.machineCostPerMin": "Machine cost / min",
|
||||
"financial.field.operatorCostPerMin": "Operator cost / min",
|
||||
"financial.field.ratedRunningKw": "Running kW",
|
||||
"financial.field.idleKw": "Idle kW",
|
||||
"financial.field.kwhRate": "kWh rate",
|
||||
"financial.field.energyMultiplier": "Energy multiplier",
|
||||
"financial.field.energyCostPerMin": "Energy cost / min",
|
||||
"financial.field.scrapCostPerUnit": "Scrap cost / unit",
|
||||
"financial.field.rawMaterialCostPerUnit": "Raw material / unit"
|
||||
}
|
||||
"settings.integrations": "Integrations",
|
||||
"settings.integrations.webhook": "Webhook URL",
|
||||
"settings.integrations.erp": "ERP Sync",
|
||||
"settings.integrations.erpNotConfigured": "Not configured",
|
||||
"financial.title": "Financial Impact",
|
||||
"financial.subtitle": "Translate downtime, slow cycles, and scrap into money.",
|
||||
"financial.ownerOnly": "Financial impact is available only to owners.",
|
||||
"financial.costsMoved": "Cost settings are now in",
|
||||
"financial.costsMovedLink": "Settings -> Financial",
|
||||
"financial.export.html": "HTML",
|
||||
"financial.export.csv": "CSV",
|
||||
"financial.totalLoss": "Total Loss",
|
||||
"financial.currencyLabel": "Currency: {currency}",
|
||||
"financial.noImpact": "No impact data yet.",
|
||||
"financial.chart.title": "Lost Money Over Time",
|
||||
"financial.chart.subtitle": "Stacked by event type",
|
||||
"financial.range.day": "Day",
|
||||
"financial.range.week": "Week",
|
||||
"financial.range.month": "Month",
|
||||
"financial.filters.title": "Filters",
|
||||
"financial.filters.machine": "Machine",
|
||||
"financial.filters.location": "Location",
|
||||
"financial.filters.sku": "SKU",
|
||||
"financial.filters.currency": "Currency",
|
||||
"financial.filters.allMachines": "All machines",
|
||||
"financial.filters.allLocations": "All locations",
|
||||
"financial.filters.skuPlaceholder": "Filter by SKU",
|
||||
"financial.filters.currencyPlaceholder": "MXN",
|
||||
"financial.loadingMachines": "Loading machines...",
|
||||
"financial.config.title": "Cost Parameters",
|
||||
"financial.config.subtitle": "Defaults apply to all machines unless overridden.",
|
||||
"financial.config.applyOrg": "Apply org defaults to all machines",
|
||||
"financial.config.save": "Save",
|
||||
"financial.config.saving": "Saving...",
|
||||
"financial.config.saved": "Saved",
|
||||
"financial.config.saveFailed": "Save failed",
|
||||
"financial.config.orgDefaults": "Org Defaults",
|
||||
"financial.config.locationOverrides": "Location Overrides",
|
||||
"financial.config.machineOverrides": "Machine Overrides",
|
||||
"financial.config.productOverrides": "Product Overrides",
|
||||
"financial.config.addLocation": "Add location override",
|
||||
"financial.config.addMachine": "Add machine override",
|
||||
"financial.config.addProduct": "Add product override",
|
||||
"financial.config.noneLocation": "No location overrides yet.",
|
||||
"financial.config.noneMachine": "No machine overrides yet.",
|
||||
"financial.config.noneProduct": "No product overrides yet.",
|
||||
"financial.config.location": "Location",
|
||||
"financial.config.selectLocation": "Select location",
|
||||
"financial.config.machine": "Machine",
|
||||
"financial.config.selectMachine": "Select machine",
|
||||
"financial.config.currency": "Currency",
|
||||
"financial.config.sku": "SKU",
|
||||
"financial.config.rawMaterialUnit": "Raw material / unit",
|
||||
"financial.config.ownerOnly": "Financial cost settings are available only to owners.",
|
||||
"financial.config.loading": "Loading financials...",
|
||||
"financial.field.machineCostPerMin": "Machine cost / min",
|
||||
"financial.field.operatorCostPerMin": "Operator cost / min",
|
||||
"financial.field.ratedRunningKw": "Running kW",
|
||||
"financial.field.idleKw": "Idle kW",
|
||||
"financial.field.kwhRate": "kWh rate",
|
||||
"financial.field.energyMultiplier": "Energy multiplier",
|
||||
"financial.field.energyCostPerMin": "Energy cost / min",
|
||||
"financial.field.scrapCostPerUnit": "Scrap cost / unit",
|
||||
"financial.field.rawMaterialCostPerUnit": "Raw material / unit",
|
||||
"nav.downtime": "Downtime",
|
||||
"settings.tabs.modules": "Modules",
|
||||
"settings.modules.title": "Modules",
|
||||
"settings.modules.subtitle": "Enable/disable UI modules depending on how the plant operates.",
|
||||
"settings.modules.screenless.title": "Screenless mode",
|
||||
"settings.modules.screenless.helper": "Hide the Downtime module from navigation (for plants without Node-RED reason capture).",
|
||||
"settings.modules.note": "This setting is org-wide."
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user