- Replace sub-nav + HiddenTabsTabControl with 3-column Fluent card layout: PumpCommandsCard (vertical ME/FBKW/PreIn sliders) + DfiCalibrationCard / PumpLiveDataCard (KPI tiles + RPM rolling chart + redesigned status bytes) / PumpIdentificationCard + DtcCard - Add PumpTopStripView: pump selector, model badge, CAN + K-Line chips - Move immobilizer unlock to MainWindow bottom snackbar (UnlockSnackbarView): auto-close on success after 3 s, persist on failure with manual Dismiss - Redesign StatusDisplayView to 2×8 rounded 28px tiles with bit index + tooltip - Add NullToVisibilityConverter; add SnackbarShell, PumpCard, and related styles - Delete obsolete views: UnlockProgressDialog, UnlockPanelView, PumpIdentificationPanelView, PumpLiveDataView, DfiManageView, DtcListView, PumpControlView - PumpPageViewModel: remove PumpSubPage enum, add RpmChart wired to Root.PumpRpm Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
532 lines
39 KiB
XML
532 lines
39 KiB
XML
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||
xmlns:sys="clr-namespace:System;assembly=System.Runtime">
|
||
|
||
<!-- ══════════════════════════════════════════════════════════════════
|
||
Spanish (ESP) — Default language
|
||
══════════════════════════════════════════════════════════════════ -->
|
||
|
||
<!-- ── App ──────────────────────────────────────────────────────────── -->
|
||
<sys:String x:Key="App.Title">HC_APTBS — Herlic Banco de Pruebas</sys:String>
|
||
|
||
<!-- ── Navigation rail ──────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Nav.Dashboard">Panel</sys:String>
|
||
<sys:String x:Key="Nav.Bench">Banco</sys:String>
|
||
<sys:String x:Key="Nav.Pump">Bomba</sys:String>
|
||
<sys:String x:Key="Nav.Tests">Pruebas</sys:String>
|
||
<sys:String x:Key="Nav.Results">Resultados</sys:String>
|
||
<sys:String x:Key="Nav.Settings">Configuración</sys:String>
|
||
|
||
<!-- ── Página de panel ──────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Dashboard.Readings">Lecturas del banco</sys:String>
|
||
<sys:String x:Key="Dashboard.Connections">Conexiones</sys:String>
|
||
<sys:String x:Key="Dashboard.Conn.Can">Bus CAN</sys:String>
|
||
<sys:String x:Key="Dashboard.Conn.Bench">Controlador del banco</sys:String>
|
||
<sys:String x:Key="Dashboard.Conn.Pump">ECU de la bomba</sys:String>
|
||
<sys:String x:Key="Dashboard.Conn.KLine">Sesión K-Line</sys:String>
|
||
<sys:String x:Key="Dashboard.StateOnline">EN LÍNEA</sys:String>
|
||
<sys:String x:Key="Dashboard.StateOffline">FUERA DE LÍNEA</sys:String>
|
||
<sys:String x:Key="Dashboard.StateOpen">ABIERTA</sys:String>
|
||
<sys:String x:Key="Dashboard.StateClosed">CERRADA</sys:String>
|
||
<sys:String x:Key="Dashboard.StateFailed">FALLO</sys:String>
|
||
<sys:String x:Key="Dashboard.Alarms">Alarmas activas</sys:String>
|
||
<sys:String x:Key="Dashboard.AlarmsNone">Sistema OK — sin alarmas activas</sys:String>
|
||
<sys:String x:Key="Dashboard.TestSummary">Resumen de prueba</sys:String>
|
||
<sys:String x:Key="Dashboard.TestActive">Activa:</sys:String>
|
||
<sys:String x:Key="Dashboard.TestPhase">Fase:</sys:String>
|
||
<sys:String x:Key="Dashboard.NoTestRunning">No hay ninguna prueba en curso.</sys:String>
|
||
<sys:String x:Key="Dashboard.LastTestPass">Última prueba: APROBADA</sys:String>
|
||
<sys:String x:Key="Dashboard.LastTestFail">Última prueba: FALLIDA</sys:String>
|
||
<sys:String x:Key="Dashboard.Action.StartTest">Iniciar prueba</sys:String>
|
||
<sys:String x:Key="Dashboard.Action.StartTest.Tip">Requiere una bomba seleccionada y conexión CAN abierta.</sys:String>
|
||
<sys:String x:Key="Dashboard.Action.Stop">Detener</sys:String>
|
||
<sys:String x:Key="Dashboard.Action.EmergencyStop">PARADA DE EMERGENCIA</sys:String>
|
||
|
||
<!-- ── Dashboard KPI tile labels ──────────────────────────────────────── -->
|
||
<sys:String x:Key="Dashboard.Kpi.Rpm">RPM del banco</sys:String>
|
||
<sys:String x:Key="Dashboard.Kpi.Qdelivery">Q. caudal</sys:String>
|
||
<sys:String x:Key="Dashboard.Kpi.P1">Presión P1</sys:String>
|
||
<sys:String x:Key="Dashboard.Kpi.P2">Presión P2</sys:String>
|
||
<sys:String x:Key="Dashboard.Kpi.Tin">T. entrada</sys:String>
|
||
<sys:String x:Key="Dashboard.Kpi.Tout">T. salida</sys:String>
|
||
<sys:String x:Key="Dashboard.Kpi.Unit.Rpm">rpm</sys:String>
|
||
<sys:String x:Key="Dashboard.Kpi.Unit.CcS">cc/s</sys:String>
|
||
<sys:String x:Key="Dashboard.Kpi.Unit.Bar">bar</sys:String>
|
||
<sys:String x:Key="Dashboard.Kpi.Unit.Celsius">°C</sys:String>
|
||
<!-- Dashboard test summary extras -->
|
||
<sys:String x:Key="Dashboard.TestSummary.Elapsed">Duración:</sys:String>
|
||
<!-- Dashboard connection chip extras -->
|
||
<sys:String x:Key="Dashboard.Conn.Pump.Label">Bomba:</sys:String>
|
||
<sys:String x:Key="Dashboard.Conn.NoPump">Sin bomba</sys:String>
|
||
|
||
<!-- ── Dashboard Devices column ─────────────────────────────────────── -->
|
||
<sys:String x:Key="Dashboard.Devices">Dispositivos</sys:String>
|
||
<sys:String x:Key="Dashboard.Devices.Can">CAN</sys:String>
|
||
<sys:String x:Key="Dashboard.Devices.Kline">K-Line</sys:String>
|
||
<sys:String x:Key="Dashboard.Devices.Bench">Banco</sys:String>
|
||
<sys:String x:Key="Dashboard.Devices.Refresh">Actualizar</sys:String>
|
||
<sys:String x:Key="Dashboard.Devices.State.Idle">Disponible</sys:String>
|
||
<sys:String x:Key="Dashboard.Devices.State.Connected">Conectado</sys:String>
|
||
<sys:String x:Key="Dashboard.Devices.State.Active">Sesión activa</sys:String>
|
||
<sys:String x:Key="Dashboard.Devices.State.Failed">Error</sys:String>
|
||
<sys:String x:Key="Dashboard.Devices.None">Sin dispositivos</sys:String>
|
||
<sys:String x:Key="Dashboard.Devices.BenchRow">Controlador del banco</sys:String>
|
||
<!-- Confirmation dialogs -->
|
||
<sys:String x:Key="Devices.Confirm.Title">Confirmar cambio de dispositivo</sys:String>
|
||
<sys:String x:Key="Devices.Confirm.Body.Active">La sesión {0} está activa. ¿Desea desconectar?</sys:String>
|
||
<sys:String x:Key="Devices.Confirm.Body.TestRunning">Hay una prueba en ejecución. Cambiar el estado del dispositivo puede interrumpirla. ¿Continuar?</sys:String>
|
||
|
||
<!-- ── Status bar / connection indicators ───────────────────────────── -->
|
||
<sys:String x:Key="Status.Label">Estado:</sys:String>
|
||
<sys:String x:Key="Status.Can">CAN</sys:String>
|
||
<sys:String x:Key="Status.Bench">Banco</sys:String>
|
||
<sys:String x:Key="Status.Pump">Bomba</sys:String>
|
||
<sys:String x:Key="Status.KLine">K-Line</sys:String>
|
||
<sys:String x:Key="Status.Connected">Conectado</sys:String>
|
||
<sys:String x:Key="Status.ConnectionFailed">Fallo de conexión</sys:String>
|
||
<sys:String x:Key="Status.Disconnected">Desconectado</sys:String>
|
||
|
||
<!-- ── Bench section ────────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Bench.ConnectCan">Conectar CAN</sys:String>
|
||
<sys:String x:Key="Bench.DisconnectCan">Desconectar CAN</sys:String>
|
||
<sys:String x:Key="Bench.Rpm">rpm</sys:String>
|
||
<sys:String x:Key="Bench.Target">Objetivo:</sys:String>
|
||
<sys:String x:Key="Bench.Voltage">V:</sys:String>
|
||
<sys:String x:Key="Bench.TempIn">T. Ent.:</sys:String>
|
||
<sys:String x:Key="Bench.TempOut">T. Sal.:</sys:String>
|
||
<sys:String x:Key="Bench.Temp4">T. 4:</sys:String>
|
||
<sys:String x:Key="Bench.TempTank">T. Tanq.:</sys:String>
|
||
<sys:String x:Key="Bench.P1">P1:</sys:String>
|
||
<sys:String x:Key="Bench.P2">P2:</sys:String>
|
||
<sys:String x:Key="Bench.QDelivery">Q-Del.:</sys:String>
|
||
<sys:String x:Key="Bench.QOver">Q-Over:</sys:String>
|
||
<sys:String x:Key="Bench.CcStroke">cc/golpe</sys:String>
|
||
<sys:String x:Key="Bench.PumpRpm">P-RPM:</sys:String>
|
||
<sys:String x:Key="Bench.PumpTemp">P-Temp:</sys:String>
|
||
<sys:String x:Key="Bench.PumpMe">P-ME:</sys:String>
|
||
<sys:String x:Key="Bench.PumpFbkw">P-FBkW:</sys:String>
|
||
<sys:String x:Key="Bench.PsgEncoder">Encoder PSG:</sys:String>
|
||
|
||
<!-- ── Bench controls ───────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Bench.Direction">Dirección</sys:String>
|
||
<sys:String x:Key="Bench.Left">IZQUIERDA</sys:String>
|
||
<sys:String x:Key="Bench.Right">DERECHA</sys:String>
|
||
<sys:String x:Key="Bench.Motor">Motor del Banco</sys:String>
|
||
<sys:String x:Key="Bench.Start">ARRANCAR</sys:String>
|
||
<sys:String x:Key="Bench.Stop">PARAR</sys:String>
|
||
<sys:String x:Key="Bench.SetRpm">Fijar RPM:</sys:String>
|
||
<sys:String x:Key="Bench.Go">IR</sys:String>
|
||
<sys:String x:Key="Bench.OilPump">Bomba de Aceite</sys:String>
|
||
<sys:String x:Key="Bench.OilOff">ACEITE OFF</sys:String>
|
||
<sys:String x:Key="Bench.OilOn">ACEITE ON</sys:String>
|
||
<sys:String x:Key="Bench.Counter">Contador</sys:String>
|
||
<sys:String x:Key="Bench.Turns">Vueltas:</sys:String>
|
||
<sys:String x:Key="Bench.Send">Enviar</sys:String>
|
||
<sys:String x:Key="Bench.Relays">Relés</sys:String>
|
||
<sys:String x:Key="Bench.Electronic">Electrónico</sys:String>
|
||
<sys:String x:Key="Bench.DepositCooler">Enfriador Depósito</sys:String>
|
||
<sys:String x:Key="Bench.DepositHeater">Calentador Depósito</sys:String>
|
||
<sys:String x:Key="Bench.TinCooler">Enfriador T-in</sys:String>
|
||
<sys:String x:Key="Bench.Flasher">Intermitente</sys:String>
|
||
<sys:String x:Key="Bench.Pulse4Signal">Señal 4-Pulsos</sys:String>
|
||
<sys:String x:Key="Bench.RelayOn">ON</sys:String>
|
||
<sys:String x:Key="Bench.RelayOff">OFF</sys:String>
|
||
<sys:String x:Key="Bench.TempControl">Temperatura</sys:String>
|
||
<sys:String x:Key="Bench.Setpoint">Consigna</sys:String>
|
||
<sys:String x:Key="Bench.Tolerance">Tolerancia</sys:String>
|
||
<sys:String x:Key="Bench.ApplySetpoint">Aplicar consigna</sys:String>
|
||
|
||
<!-- ── Pump page sub-nav / banners ──────────────────────────────────── -->
|
||
<sys:String x:Key="PumpSub.Identification">Identificación</sys:String>
|
||
<sys:String x:Key="PumpSub.Dtcs">Códigos de Falla</sys:String>
|
||
<sys:String x:Key="PumpSub.LiveData">Datos en Vivo</sys:String>
|
||
<sys:String x:Key="PumpSub.Adaptation">Adaptación</sys:String>
|
||
<sys:String x:Key="PumpSub.Unlock">Desbloqueo Immo</sys:String>
|
||
<sys:String x:Key="Pump.KLineClosed">La sesión K-Line no está abierta. Identifique una bomba para iniciar el diagnóstico.</sys:String>
|
||
<sys:String x:Key="Pump.NoPumpSelected">Seleccione una bomba en la pestaña Identificación para habilitar el diagnóstico.</sys:String>
|
||
<sys:String x:Key="Pump.NoUnlockActive">No hay ningún desbloqueo de inmovilizador en curso para esta bomba.</sys:String>
|
||
<sys:String x:Key="PumpLive.Engineering">Valores de ingeniería (en bruto)</sys:String>
|
||
|
||
<!-- ── DTC list ─────────────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Dtc.Read">Leer DTC</sys:String>
|
||
<sys:String x:Key="Dtc.Clear">Borrar DTC</sys:String>
|
||
<sys:String x:Key="Dtc.NoFaults">La ECU no reportó códigos de falla.</sys:String>
|
||
<sys:String x:Key="Dtc.LastRead">Última lectura:</sys:String>
|
||
<sys:String x:Key="Dtc.Cleared">Códigos de falla borrados.</sys:String>
|
||
|
||
<!-- ── Auth gate ────────────────────────────────────────────────────── -->
|
||
<sys:String x:Key="AuthGate.LockedTitle">Se requiere autenticación</sys:String>
|
||
<sys:String x:Key="AuthGate.LockedMessage">Esta sección puede modificar parámetros de la bomba. Inicie sesión para desbloquearla.</sys:String>
|
||
<sys:String x:Key="AuthGate.Authenticate">Autenticar…</sys:String>
|
||
<sys:String x:Key="AuthGate.UnlockedAs">Desbloqueado como</sys:String>
|
||
<sys:String x:Key="AuthGate.Lock">Bloquear</sys:String>
|
||
|
||
<!-- ── Pump live data ───────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Pump.THyb">T-hyb</sys:String>
|
||
<sys:String x:Key="Pump.Rpm">RPM</sys:String>
|
||
<sys:String x:Key="Pump.TEin">T-ein</sys:String>
|
||
<sys:String x:Key="Pump.UnitRpm">1/min</sys:String>
|
||
<sys:String x:Key="Pump.UnitCelsius">°C</sys:String>
|
||
<sys:String x:Key="Pump.UnitUs">µs</sys:String>
|
||
<sys:String x:Key="Pump.Commands.Title">Pump Commands</sys:String>
|
||
<sys:String x:Key="Pump.Commands.Me">ME</sys:String>
|
||
<sys:String x:Key="Pump.Commands.Fbkw">FBKW</sys:String>
|
||
<sys:String x:Key="Pump.Commands.PreIn">Pre-inj</sys:String>
|
||
<sys:String x:Key="Pump.LiveData.Title">Live Data</sys:String>
|
||
<sys:String x:Key="Pump.LiveData.RPM">RPM Bomba</sys:String>
|
||
<sys:String x:Key="Pump.LiveData.THyb">T-hyb</sys:String>
|
||
<sys:String x:Key="Pump.LiveData.TEin">T-ein</sys:String>
|
||
<sys:String x:Key="Pump.LiveData.Me">ME</sys:String>
|
||
<sys:String x:Key="Pump.LiveData.Fbkw">FBKW</sys:String>
|
||
<sys:String x:Key="Pump.LiveData.RpmChart">Tendencia RPM</sys:String>
|
||
<sys:String x:Key="Pump.Status.Active">Activo</sys:String>
|
||
<sys:String x:Key="Pump.Dfi.Title">Calibración Ralentí</sys:String>
|
||
<sys:String x:Key="Pump.Dfi.Version">Versión</sys:String>
|
||
<sys:String x:Key="Pump.Dfi.Current">DFI Actual</sys:String>
|
||
<sys:String x:Key="Pump.Dtcs.Title">Códigos de Falla</sys:String>
|
||
<sys:String x:Key="Pump.Identification.Title">Identificación</sys:String>
|
||
<sys:String x:Key="Pump.TopStrip.Brand">Marca</sys:String>
|
||
<sys:String x:Key="Pump.TopStrip.NoPump">Sin bomba seleccionada</sys:String>
|
||
<sys:String x:Key="Pump.TopStrip.Can">CAN</sys:String>
|
||
<sys:String x:Key="Pump.TopStrip.KLine">K-Line</sys:String>
|
||
<sys:String x:Key="Pump.NoPumpBanner">Sin bomba seleccionada — seleccione una bomba para habilitar el diagnóstico.</sys:String>
|
||
<sys:String x:Key="Pump.FastUnlock">Intento de desbloqueo rápido...</sys:String>
|
||
|
||
<!-- ── Pump identification ──────────────────────────────────────────── -->
|
||
<sys:String x:Key="PumpId.Label">Bomba:</sys:String>
|
||
<sys:String x:Key="PumpId.Dfi">DFI:</sys:String>
|
||
<sys:String x:Key="PumpId.PumpId">ID Bomba:</sys:String>
|
||
<sys:String x:Key="PumpId.SerialNo">Nro. Serie:</sys:String>
|
||
<sys:String x:Key="PumpId.ModelRef">Ref. Modelo:</sys:String>
|
||
<sys:String x:Key="PumpId.DataRecord">Registro Datos:</sys:String>
|
||
<sys:String x:Key="PumpId.PumpCtrl">Ctrl. Bomba:</sys:String>
|
||
<sys:String x:Key="PumpId.ModelIndex">Índice Modelo:</sys:String>
|
||
<sys:String x:Key="PumpId.SwVer1">SW Ver 1:</sys:String>
|
||
<sys:String x:Key="PumpId.SwVer2">SW Ver 2:</sys:String>
|
||
<sys:String x:Key="PumpId.Errors">Errores:</sys:String>
|
||
<sys:String x:Key="PumpId.Error">Error:</sys:String>
|
||
<sys:String x:Key="PumpId.ReadKLine">Leer K-Line</sys:String>
|
||
<sys:String x:Key="PumpId.Disconnect">Desconectar</sys:String>
|
||
<sys:String x:Key="PumpId.NoKLineDevice">No se encontró dispositivo K-Line</sys:String>
|
||
|
||
<!-- ── DFI management ───────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Dfi.Read">LEER</sys:String>
|
||
<sys:String x:Key="Dfi.Write">ESCRIBIR</sys:String>
|
||
<sys:String x:Key="Dfi.Label">DFI:</sys:String>
|
||
<sys:String x:Key="Dfi.Auto">AUTO</sys:String>
|
||
|
||
<!-- ── Pump control sliders ─────────────────────────────────────────── -->
|
||
<sys:String x:Key="PumpCtrl.Fbkw">FBKW - Control de Avance</sys:String>
|
||
<sys:String x:Key="PumpCtrl.Me">ME - Control de Caudal</sys:String>
|
||
<sys:String x:Key="PumpCtrl.PreInj">ME - Caudal Pre-inyección</sys:String>
|
||
<sys:String x:Key="PumpCtrl.MinStepMax">Mín / Paso / Máx</sys:String>
|
||
<sys:String x:Key="PumpCtrl.Min">Mín</sys:String>
|
||
<sys:String x:Key="PumpCtrl.Step">Paso</sys:String>
|
||
<sys:String x:Key="PumpCtrl.Max">Máx</sys:String>
|
||
|
||
<!-- ── Bench parameter config ───────────────────────────────────────── -->
|
||
<sys:String x:Key="BenchParam.CanBusId">CAN-Bus ID (0x)</sys:String>
|
||
<sys:String x:Key="BenchParam.ByteL">Byte L</sys:String>
|
||
<sys:String x:Key="BenchParam.ByteH">Byte H</sys:String>
|
||
<sys:String x:Key="BenchParam.FilterAlpha">Filtro α</sys:String>
|
||
<sys:String x:Key="BenchParam.EnableFormula">Habilitar fórmula</sys:String>
|
||
|
||
<!-- ── Angle display ────────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Angle.Header">MONITOREO DE AVANCE</sys:String>
|
||
<sys:String x:Key="Angle.Psg">PSG:</sys:String>
|
||
<sys:String x:Key="Angle.Inj">INJ:</sys:String>
|
||
<sys:String x:Key="Angle.AbsDeg">ABS º:</sys:String>
|
||
<sys:String x:Key="Angle.LockDeg">LOCK º:</sys:String>
|
||
<sys:String x:Key="Angle.SetPsgZero">Fijar referencia cero PSG</sys:String>
|
||
<sys:String x:Key="Angle.SetInjZero">Fijar referencia cero INJ</sys:String>
|
||
|
||
<!-- ── Test panel ───────────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Test.StartTest">▶ INICIAR TEST</sys:String>
|
||
<sys:String x:Key="Test.Stop">■ PARAR</sys:String>
|
||
<sys:String x:Key="Test.Report">📄 Informe</sys:String>
|
||
<sys:String x:Key="Test.ShowValues">Mostrar valores</sys:String>
|
||
<sys:String x:Key="Test.CheckAll">Marcar Todos</sys:String>
|
||
<sys:String x:Key="Test.SecondsRemaining">s restantes</sys:String>
|
||
<sys:String x:Key="Test.Condition">Cond:</sys:String>
|
||
<sys:String x:Key="Test.Measurement">Med:</sys:String>
|
||
<sys:String x:Key="Test.MeasPerSec">M/s:</sys:String>
|
||
<sys:String x:Key="Test.Required">Requerido:</sys:String>
|
||
<sys:String x:Key="Test.TestLabel">Test:</sys:String>
|
||
<sys:String x:Key="Test.Critical">Crítico</sys:String>
|
||
<sys:String x:Key="Test.Started">Test iniciado...</sys:String>
|
||
<sys:String x:Key="Test.Stopped">Test detenido.</sys:String>
|
||
|
||
<!-- ── Asistente de la página de tests ────────────────────────────────── -->
|
||
<sys:String x:Key="Test.Wizard.Plan">1. Planificar</sys:String>
|
||
<sys:String x:Key="Test.Wizard.Preconditions">2. Precondiciones</sys:String>
|
||
<sys:String x:Key="Test.Wizard.Running">3. En ejecución</sys:String>
|
||
<sys:String x:Key="Test.Wizard.Done">4. Finalizado</sys:String>
|
||
<sys:String x:Key="Test.Wizard.Next">Siguiente ▶</sys:String>
|
||
<sys:String x:Key="Test.Wizard.Back">◀ Atrás</sys:String>
|
||
|
||
<!-- ── Checklist de precondiciones ────────────────────────────────────── -->
|
||
<sys:String x:Key="Test.Precheck.Title">Precondiciones</sys:String>
|
||
<sys:String x:Key="Test.Precheck.PumpSelected">Bomba seleccionada</sys:String>
|
||
<sys:String x:Key="Test.Precheck.CanLive">Bus CAN activo</sys:String>
|
||
<sys:String x:Key="Test.Precheck.KLineOpen">Sesión K-Line abierta</sys:String>
|
||
<sys:String x:Key="Test.Precheck.RpmZero">RPM del banco a cero</sys:String>
|
||
<sys:String x:Key="Test.Precheck.OilPumpOn">Bomba de aceite en marcha</sys:String>
|
||
<sys:String x:Key="Test.Precheck.NoCriticalAlarms">Sin alarmas críticas</sys:String>
|
||
<sys:String x:Key="Test.Precheck.UserAuth">Usuario autenticado</sys:String>
|
||
<sys:String x:Key="Test.Precheck.FixButton">Corregir</sys:String>
|
||
<sys:String x:Key="Test.Precheck.Ready">Todas las precondiciones cumplidas. Listo para comenzar.</sys:String>
|
||
<sys:String x:Key="Test.Precheck.NotReady">Resuelva los elementos anteriores antes de comenzar.</sys:String>
|
||
<sys:String x:Key="Test.Precheck.AuthBanner">Este test requiere autenticación del operador.</sys:String>
|
||
<sys:String x:Key="Test.Precheck.AuthButton">Autenticar…</sys:String>
|
||
<sys:String x:Key="Test.Precheck.Remediation.SelectPump">Vaya a la página de Bomba para seleccionar una.</sys:String>
|
||
<sys:String x:Key="Test.Precheck.Remediation.CheckCan">Abra el Dashboard para verificar la conexión CAN.</sys:String>
|
||
<sys:String x:Key="Test.Precheck.Remediation.OpenKLine">Abra una sesión K-Line en la página Bomba.</sys:String>
|
||
<sys:String x:Key="Test.Precheck.Remediation.StopBench">Detenga el banco desde la página Banco.</sys:String>
|
||
<sys:String x:Key="Test.Precheck.Remediation.StartOilPump">Arranque la bomba de aceite desde la página Banco.</sys:String>
|
||
<sys:String x:Key="Test.Precheck.Remediation.ClearAlarms">Elimine las alarmas críticas en el Dashboard.</sys:String>
|
||
<sys:String x:Key="Test.Precheck.Remediation.Authenticate">Autentique al operador arriba.</sys:String>
|
||
|
||
<!-- ── Controles del paso En ejecución ────────────────────────────────── -->
|
||
<sys:String x:Key="Test.Running.Abort">■ Abortar</sys:String>
|
||
<sys:String x:Key="Test.Running.Pause">Pausar</sys:String>
|
||
<sys:String x:Key="Test.Running.Resume">Reanudar</sys:String>
|
||
<sys:String x:Key="Test.Running.Retry">Reintentar fase</sys:String>
|
||
<sys:String x:Key="Test.Running.Skip">Saltar fase</sys:String>
|
||
<sys:String x:Key="Test.Running.ComingSoon">Próximamente</sys:String>
|
||
|
||
<!-- ── Paso Finalizado ────────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Test.Done.Passed">APROBADO</sys:String>
|
||
<sys:String x:Key="Test.Done.Failed">FALLIDO</sys:String>
|
||
<sys:String x:Key="Test.Done.ViewFullResults">Ver resultados completos</sys:String>
|
||
<sys:String x:Key="Test.Done.RunAgain">Ejecutar de nuevo</sys:String>
|
||
|
||
<!-- ── Confirmación de aborto ─────────────────────────────────────────── -->
|
||
<sys:String x:Key="Test.Abort.Title">¿Abortar el test?</sys:String>
|
||
<sys:String x:Key="Test.Abort.Message">Detener el test ahora finalizará la fase actual y devolverá resultados parciales. ¿Continuar?</sys:String>
|
||
<sys:String x:Key="Test.Abort.Confirm">Abortar</sys:String>
|
||
<sys:String x:Key="Test.Abort.Cancel">Seguir ejecutando</sys:String>
|
||
|
||
<!-- ── Test types ───────────────────────────────────────────────────── -->
|
||
<sys:String x:Key="TestType.Warmup">Calentamiento</sys:String>
|
||
<sys:String x:Key="TestType.Adjustment">Ajuste</sys:String>
|
||
<sys:String x:Key="TestType.Flow">Caudal</sys:String>
|
||
<sys:String x:Key="TestType.ServoValve">Servoválvula</sys:String>
|
||
<sys:String x:Key="TestType.Upstroke">Carrera Ascendente</sys:String>
|
||
<sys:String x:Key="TestType.PreInjection">Pre-inyección</sys:String>
|
||
|
||
<!-- ── Result display ───────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Result.Phase">Fase</sys:String>
|
||
<sys:String x:Key="Result.Parameter">Parámetro</sys:String>
|
||
<sys:String x:Key="Result.Target">Objetivo</sys:String>
|
||
<sys:String x:Key="Result.Tolerance">Tol ±</sys:String>
|
||
<sys:String x:Key="Result.Average">Promedio</sys:String>
|
||
<sys:String x:Key="Result.ResultHeader">Resultado</sys:String>
|
||
<sys:String x:Key="Result.AllTests">Todos los Tests</sys:String>
|
||
|
||
<!-- ── Página de resultados (§5) ────────────────────────────────────── -->
|
||
<sys:String x:Key="Results.PageTitle">Resultados</sys:String>
|
||
<sys:String x:Key="Results.HistoryHeader">Historial de pruebas (sesión)</sys:String>
|
||
<sys:String x:Key="Results.DetailHeader">Detalle de la prueba</sys:String>
|
||
<sys:String x:Key="Results.ObservationsLabel">Observaciones / Notas</sys:String>
|
||
<sys:String x:Key="Results.ExportButton">Exportar PDF…</sys:String>
|
||
<sys:String x:Key="Results.EmptyState">Aún no hay pruebas completadas. Finalice una prueba para verla aquí.</sys:String>
|
||
<sys:String x:Key="Results.NoSelection">Seleccione una prueba en la lista para ver sus detalles.</sys:String>
|
||
<sys:String x:Key="Results.InterruptedLabel">INTERRUMPIDA</sys:String>
|
||
<sys:String x:Key="Results.DeleteTooltip">Eliminar esta entrada</sys:String>
|
||
<sys:String x:Key="Results.ClearSessionButton">Limpiar sesión</sys:String>
|
||
<sys:String x:Key="Results.ClearSessionConfirm">¿Eliminar todas las entradas del historial de esta sesión?</sys:String>
|
||
|
||
<!-- ── Common strings ───────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Common.Pass">APROBADO</sys:String>
|
||
<sys:String x:Key="Common.Fail">REPROBADO</sys:String>
|
||
<sys:String x:Key="Common.Accept">Aceptar</sys:String>
|
||
<sys:String x:Key="Common.Cancel">Cancelar</sys:String>
|
||
<sys:String x:Key="Common.Close">Cerrar</sys:String>
|
||
<sys:String x:Key="Common.Save">Guardar</sys:String>
|
||
<sys:String x:Key="Common.Ok">OK</sys:String>
|
||
<sys:String x:Key="Common.Yes">Sí</sys:String>
|
||
<sys:String x:Key="Common.No">No</sys:String>
|
||
<sys:String x:Key="Common.Warning">ADVERTENCIA</sys:String>
|
||
<sys:String x:Key="Common.Disabled">deshabilitado</sys:String>
|
||
<sys:String x:Key="Common.Dismiss">Cerrar</sys:String>
|
||
|
||
<!-- ── Dialog: Report ───────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Dialog.Report.Title">Generar Informe</sys:String>
|
||
<sys:String x:Key="Dialog.Report.ClientList">Lista de Clientes</sys:String>
|
||
<sys:String x:Key="Dialog.Report.ClientData">Datos del Cliente</sys:String>
|
||
<sys:String x:Key="Dialog.Report.CompanyData">Datos de la Empresa</sys:String>
|
||
<sys:String x:Key="Dialog.Report.Name">Nombre:</sys:String>
|
||
<sys:String x:Key="Dialog.Report.ClientInfo">Información del cliente</sys:String>
|
||
<sys:String x:Key="Dialog.Report.Observations">Observaciones</sys:String>
|
||
<sys:String x:Key="Dialog.Report.Operator">Operador:</sys:String>
|
||
<sys:String x:Key="Dialog.Report.Company">Empresa:</sys:String>
|
||
<sys:String x:Key="Dialog.Report.CompanyInfo">Información de la empresa</sys:String>
|
||
<sys:String x:Key="Dialog.Report.DeleteClient">Eliminar Cliente</sys:String>
|
||
<sys:String x:Key="Dialog.Report.Generate">Generar</sys:String>
|
||
|
||
<!-- ── Dialog: User authentication ──────────────────────────────────── -->
|
||
<sys:String x:Key="Dialog.UserCheck.Title">Autenticación de Usuario</sys:String>
|
||
<sys:String x:Key="Dialog.UserCheck.Username">Usuario:</sys:String>
|
||
<sys:String x:Key="Dialog.UserCheck.Password">Contraseña:</sys:String>
|
||
|
||
<!-- ── Dialog: Voltage warning ──────────────────────────────────────── -->
|
||
<sys:String x:Key="Dialog.Voltage.Title">Advertencia de Fuente de Alimentación</sys:String>
|
||
<sys:String x:Key="Dialog.Voltage.VoltageLabel">VOLTAJE: </sys:String>
|
||
<sys:String x:Key="Dialog.Voltage.PumpRequires">La bomba seleccionada requiere </sys:String>
|
||
<sys:String x:Key="Dialog.Voltage.PowerSupply"> de alimentación.</sys:String>
|
||
<sys:String x:Key="Dialog.Voltage.SwitchTo">CAMBIE LA FUENTE DE ALIMENTACIÓN A </sys:String>
|
||
|
||
<!-- ── Dialog: Oil pump confirmation ────────────────────────────────── -->
|
||
<sys:String x:Key="Dialog.OilPump.Title">Activación de Bomba de Aceite</sys:String>
|
||
<sys:String x:Key="Dialog.OilPump.Message">Está a punto de activar la bomba de aceite. Confirme que el nivel de aceite es adecuado y que todas las conexiones están seguras antes de continuar.</sys:String>
|
||
<sys:String x:Key="Dialog.OilPump.LeaksChecked">He verificado — sin fugas, conexiones listas</sys:String>
|
||
|
||
<!-- ── Dialog: RPM safety warning ───────────────────────────────────── -->
|
||
<sys:String x:Key="Dialog.RpmSafety.Title">Advertencia de Seguridad RPM</sys:String>
|
||
<sys:String x:Key="Dialog.RpmSafety.Message">La bomba de aceite está APAGADA. Hacer funcionar el motor del banco sin circulación de aceite puede causar daño a los rodamientos de la bomba.</sys:String>
|
||
<sys:String x:Key="Dialog.RpmSafety.OilAndProceed">Encender bomba de aceite e iniciar el banco</sys:String>
|
||
<sys:String x:Key="Dialog.RpmSafety.ProceedWithout">Sé lo que hago — iniciar sin aceite</sys:String>
|
||
|
||
<!-- ── Dialog: Unlock progress ──────────────────────────────────────── -->
|
||
<sys:String x:Key="Dialog.Unlock.Title">Desbloqueo de Inmovilizador</sys:String>
|
||
<sys:String x:Key="Dialog.Unlock.Progress">PROGRESO</sys:String>
|
||
<sys:String x:Key="Dialog.Unlock.Phase1">Fase 1: Enviando señales de desbloqueo</sys:String>
|
||
<sys:String x:Key="Dialog.Unlock.Phase2Testing">Fase 2: Probando</sys:String>
|
||
<sys:String x:Key="Dialog.Unlock.Phase2Sending">Fase 2: Enviando...</sys:String>
|
||
<sys:String x:Key="Dialog.Unlock.Cancelled">CANCELADO</sys:String>
|
||
<sys:String x:Key="Dialog.Unlock.Unlocked">DESBLOQUEADO</sys:String>
|
||
<sys:String x:Key="Dialog.Unlock.Failed">DESBLOQUEO FALLIDO</sys:String>
|
||
<sys:String x:Key="Dialog.Unlock.TypeLabel">Tipo {0}</sys:String>
|
||
|
||
<!-- ── Dialog: K-Line errors ────────────────────────────────────────── -->
|
||
<sys:String x:Key="Dialog.KlineErrors.Title">Códigos de Falla K-Line</sys:String>
|
||
<sys:String x:Key="Dialog.KlineErrors.Header">Códigos de falla:</sys:String>
|
||
<sys:String x:Key="Dialog.KlineErrors.Read">Leer</sys:String>
|
||
<sys:String x:Key="Dialog.KlineErrors.Clear">Borrar</sys:String>
|
||
|
||
<!-- ── Dialog: Settings ───────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Dialog.Settings.Title">Configuración</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.Tab.General">General</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.Tab.Safety">Seguridad</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.Tab.Pid">PID</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.Tab.Motor">Motor</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.Tab.Report">Reporte</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.Tab.KLine">K-Line</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.Tab.Advanced">Avanzado</sys:String>
|
||
|
||
<sys:String x:Key="Dialog.Settings.Language">Idioma:</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.DaysKeepLogs">Días de retención de logs:</sys:String>
|
||
|
||
<sys:String x:Key="Dialog.Settings.TempMax">Temperatura máx. (°C):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.TempMin">Temperatura mín. (°C):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.SecurityRpmLimit">Límite RPM de seguridad:</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.MaxPressureBar">Presión máx. (bar):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.ToleranceUp">Extensión tolerancia UP:</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.TolerancePfp">Extensión tolerancia PFP:</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.IgnoreTin">Ignorar T-in por defecto</sys:String>
|
||
|
||
<sys:String x:Key="Dialog.Settings.PidP">Proporcional (P):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.PidI">Integral (I):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.PidD">Derivativo (D):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.PidLoopMs">Período del lazo (ms):</sys:String>
|
||
|
||
<sys:String x:Key="Dialog.Settings.EncoderRes">Resolución encoder:</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.VoltMaxRpm">Voltaje para RPM máx. (V):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.MaxRpm">RPM máximo:</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.RightRelay">Derecha = relé ON</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.Relations">Tabla RPM-Voltaje</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.RelRpm">RPM</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.RelVoltage">Voltaje (V)</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.AddRow">Agregar</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.RemoveRow">Eliminar</sys:String>
|
||
|
||
<sys:String x:Key="Dialog.Settings.CompanyName">Nombre empresa:</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.CompanyInfo">Información empresa:</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.ReportLogo">Ruta logo de informe:</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.BrowseLogoTitle">Seleccionar imagen de logo</sys:String>
|
||
|
||
<sys:String x:Key="Dialog.Settings.KLinePort">Puerto K-Line (FTDI):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.RefreshPorts">Refrescar</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.KLineHint">Seleccione un dispositivo FTDI o ingrese el número de serie manualmente.</sys:String>
|
||
|
||
<sys:String x:Key="Dialog.Settings.RefreshBench">Interfaz banco (ms):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.RefreshReading">Durante lectura K-Line (ms):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.RefreshCanBus">Lectura CAN bus (ms):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.RefreshPumpReq">Solicitud bomba (ms):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.RefreshPumpParams">Parámetros bomba (ms):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.BlinkInterval">Intervalo parpadeo (ms):</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.FlasherInterval">Intervalo flasher (ms):</sys:String>
|
||
|
||
<sys:String x:Key="Dialog.Settings.UsersHeader">Usuarios</sys:String>
|
||
<sys:String x:Key="Dialog.Settings.ManageUsers">Administrar Usuarios...</sys:String>
|
||
|
||
<!-- ── Dialog: Gestión de usuarios ──────────────────────────────────── -->
|
||
<sys:String x:Key="Dialog.UserManage.Title">Gestión de Usuarios</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.ColumnUsername">Usuario</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Add">Añadir...</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Remove">Eliminar</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.ChangePassword">Cambiar Contraseña...</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Close">Cerrar</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Prompt.AddTitle">Añadir Usuario</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Prompt.ChangeTitle">Cambiar contraseña de '{0}'</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Confirm.RemoveTitle">Eliminar Usuario</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Confirm.Remove">¿Eliminar el usuario '{0}'?</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Error.EmptyTitle">Entrada Inválida</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Error.Empty">El usuario y la contraseña no pueden estar vacíos.</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Error.InvalidCharsTitle">Entrada Inválida</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Error.InvalidChars">El nombre de usuario no puede contener ':' o ','.</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Error.DuplicateTitle">Usuario Duplicado</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Error.Duplicate">Ya existe un usuario con ese nombre.</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Error.LastUserTitle">No Se Puede Eliminar</sys:String>
|
||
<sys:String x:Key="Dialog.UserManage.Error.LastUser">No se puede eliminar el último usuario restante.</sys:String>
|
||
|
||
<!-- ── Error messages ───────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Error.ReportGeneration">Error al generar informe:\n{0}</sys:String>
|
||
<sys:String x:Key="Error.ReportTitle">Error de Informe</sys:String>
|
||
<sys:String x:Key="Error.PsgSync">No se detectó el pulso de sincronización PSG. Verifique la conexión del encoder.</sys:String>
|
||
<sys:String x:Key="Error.PsgTitle">Error PSG</sys:String>
|
||
<sys:String x:Key="Error.EmergencyStop">PARADA DE EMERGENCIA: {0}</sys:String>
|
||
<sys:String x:Key="Error.KLineNotFound">Dispositivo K-Line no encontrado. Verifique que el adaptador FTDI esté conectado.</sys:String>
|
||
<sys:String x:Key="Error.KLineTitle">Error K-Line</sys:String>
|
||
<sys:String x:Key="Error.AuthInvalid">Usuario o contraseña inválidos.\n(Ambos distinguen mayúsculas y minúsculas.)</sys:String>
|
||
<sys:String x:Key="Error.AuthTitle">Error de Autenticación</sys:String>
|
||
|
||
<!-- ── PDF Report ───────────────────────────────────────────────────── -->
|
||
<sys:String x:Key="Pdf.ReportTitle">INFORME DE PRUEBA DE BOMBA INYECTORA VP44</sys:String>
|
||
<sys:String x:Key="Pdf.GeneratedBy">Generado por HC-APTBS</sys:String>
|
||
<sys:String x:Key="Pdf.Page">Página </sys:String>
|
||
<sys:String x:Key="Pdf.Of"> de </sys:String>
|
||
<sys:String x:Key="Pdf.Date">Fecha: {0:dd/MM/yyyy HH:mm}</sys:String>
|
||
<sys:String x:Key="Pdf.Operator">Operador: {0}</sys:String>
|
||
<sys:String x:Key="Pdf.Client">Cliente: {0}</sys:String>
|
||
<sys:String x:Key="Pdf.PumpIdentification">IDENTIFICACIÓN DE BOMBA</sys:String>
|
||
<sys:String x:Key="Pdf.PumpId">ID Bomba:</sys:String>
|
||
<sys:String x:Key="Pdf.Model">Modelo:</sys:String>
|
||
<sys:String x:Key="Pdf.SerialNo">Nro. Serie:</sys:String>
|
||
<sys:String x:Key="Pdf.Injector">Inyector:</sys:String>
|
||
<sys:String x:Key="Pdf.Tube">Tubo:</sys:String>
|
||
<sys:String x:Key="Pdf.Valve">Válvula:</sys:String>
|
||
<sys:String x:Key="Pdf.Tension">Tensión:</sys:String>
|
||
<sys:String x:Key="Pdf.Rotation">Rotación:</sys:String>
|
||
<sys:String x:Key="Pdf.LockAngle">Ángulo de Bloqueo:</sys:String>
|
||
<sys:String x:Key="Pdf.Measured">Medido:</sys:String>
|
||
<sys:String x:Key="Pdf.Chaveta">Chaveta:</sys:String>
|
||
<sys:String x:Key="Pdf.PreInj">Pre-Iny.:</sys:String>
|
||
<sys:String x:Key="Pdf.EcuData">DATOS ECU (K-Line)</sys:String>
|
||
<sys:String x:Key="Pdf.OverallResult">RESULTADO GENERAL DEL TEST</sys:String>
|
||
<sys:String x:Key="Pdf.TestsExecuted">Tests ejecutados: {0} de {1}</sys:String>
|
||
<sys:String x:Key="Pdf.ParamsEvaluated">Parámetros evaluados: {0} / {1} aprobados</sys:String>
|
||
<sys:String x:Key="Pdf.TestHeader">TEST: {0}</sys:String>
|
||
<sys:String x:Key="Pdf.Phase">Fase</sys:String>
|
||
<sys:String x:Key="Pdf.Parameter">Parámetro</sys:String>
|
||
<sys:String x:Key="Pdf.Target">Objetivo</sys:String>
|
||
<sys:String x:Key="Pdf.ToleranceHeader">Tolerancia ±</sys:String>
|
||
<sys:String x:Key="Pdf.Average">Promedio</sys:String>
|
||
<sys:String x:Key="Pdf.Result">Resultado</sys:String>
|
||
<sys:String x:Key="Pdf.ErrorBits"> ⚠ Bits de error: {0}</sys:String>
|
||
<sys:String x:Key="Pdf.NoSampleData">No hay datos de muestra disponibles para visualización gráfica.</sys:String>
|
||
<sys:String x:Key="Pdf.ChartSamples">Muestras: {0} | Objetivo: {1} ± {2} | Promedio: {3} | Resultado: {4}</sys:String>
|
||
<sys:String x:Key="Pdf.Observations">OBSERVACIONES</sys:String>
|
||
|
||
</ResourceDictionary>
|