{
  "app.name": "MageStock",
  "lang.label": "Idioma",
  "theme.toggle": "Cambiar tema",
  "btn.logout": "Cerrar sesión",
  "btn.login": "Iniciar sesión",
  "btn.save": "Guardar",
  "btn.cancel": "Cancelar",
  "btn.close": "Cerrar",
  "btn.delete": "Eliminar",
  "btn.add": "Añadir",
  "btn.edit": "Editar",
  "btn.export": "Exportar",
  "btn.export_pdf": "Exportar PDF",
  "btn.print": "Imprimir",
  "btn.search": "Buscar",
  "search.placeholder": "Buscar…",
  "login.title": "Iniciar sesión",
  "login.username": "Nombre de usuario",
  "login.password": "Contraseña",
  "login.error": "Credenciales inválidas.",
  "nav.dashboard": "Inicio",
  "nav.products": "Productos",
  "nav.warehouses": "Almacenes",
  "nav.warehouse_manager": "Gestión de almacenes",
  "nav.movements": "Movimientos",
  "nav.inventory": "Inventarios",
  "nav.scanner": "Escáner",
  "nav.barcodes": "Códigos de barras",
  "nav.reports": "Informes",
  "nav.settings": "Configuración",
  "nav.users": "Usuarios",
  "nav.alerts": "Alertas",
  "nav.suppliers": "Proveedores",
  "nav.brands": "Marcas",
  "nav.orders": "Pedidos",
  "auto.21cb337616": "Todos los almacenes",
  "auto.318262fcf6": "Nueva alerta",
  "auto.b0b7cddbe9": "Alertas críticas",
  "auto.e238b76e11": "Alertas activas",
  "auto.b1a735917d": "Productos OK",
  "auto.38cfc9c7f5": "Estado actual",
  "auto.a1230fab7a": "Reglas de alerta",
  "auto.e30e2cb9aa": "Producto",
  "auto.055c3b9395": "Almacén",
  "auto.a1fa277792": "Tipo",
  "auto.3e8e07eb39": "Umbral",
  "auto.b7c0fdcea6": "Cant. actual",
  "auto.87a831bc99": "Estado",
  "auto.06df33001c": "Acciones",
  "auto.194eef0e3d": "Generador de etiquetas",
  "auto.c313d6dc96": "Seleccione productos, elija estilo + formato, previsualice e imprima.",
  "auto.7ce1f3fdf2": "Vaciar",
  "auto.94c48b9ef5": "Exportar PDF",
  "auto.943021b255": "Imprimir",
  "auto.e06ff32467": "🎨 Style",
  "auto.2f7174f197": "📏 Format",
  "auto.a777aa1532": "🖼️ Options",
  "auto.2186767964": "🖼️ Image + Code-barres",
  "auto.99e780809b": "Visuel produit + code-barres compact",
  "auto.d46181e2a6": "📊 Code-barres seul",
  "auto.9ad7781b20": "Impression rapide et lisible",
  "auto.241ee90c1d": "🏷️ QR Code",
  "auto.1e813ad6bd": "Encodage texte/URL ou payload produit",
  "auto.dd26d4798f": "📋 Étiquette complète",
  "auto.da652b69a5": "Image + infos + code-barres",
  "auto.966f80ae51": "Format de code-barres",
  "auto.db053df979": "CODE128",
  "auto.52eb5928a3": "EAN13",
  "auto.ed7ef6f38d": "Code personnalisé (optionnel)",
  "auto.a8fe1a3b2f": "📄 A4 — planche 24",
  "auto.3ebf618916": "3 colonnes × 8 lignes",
  "auto.dbde0d64d0": "🏷️ Avery L7160",
  "auto.da16c67df4": "63,5×38,1mm (3×7)",
  "auto.6507e11634": "📦 70×37mm",
  "auto.ee40c8a5ad": "3×8 (approx.)",
  "auto.f99b1a642e": "📦 105×37mm",
  "auto.8ace2ca182": "2 colonnes (approx.)",
  "auto.d3cbaa3e9e": "🎯 Personnalisé",
  "auto.368b7fb41b": "Largeur/hauteur + grille",
  "auto.505279d1db": "Largeur (mm)",
  "auto.5cd5426490": "Hauteur (mm)",
  "auto.be920cea70": "Colonnes",
  "auto.1945ed4570": "Lignes",
  "auto.af847154be": "Contenu",
  "auto.ca0dbad92a": "Code",
  "auto.be53a0541a": "Image",
  "auto.251040e9a0": "QR — texte personnalisé (optionnel)",
  "auto.a65da323a9": "📷 Scanner un QR",
  "auto.9100e163bb": "Prévisualisation",
  "auto.00882b098c": "Aucune sélection",
  "auto.7159991d00": "📦 Sélection produits",
  "auto.bbbe4b9ce4": "Todas las categorías",
  "auto.0e520a1ffa": "Impression",
  "auto.7d206237f9": "Cerrar",
  "auto.aa38fb6cd7": "Iniciar impresión",
  "auto.168a75f6c4": "window.SM_PAGE = 'barcodes';",
  "auto.2bef3061dc": "0 marca(s)",
  "auto.9aa58eb9b1": "Nueva marca",
  "auto.a3e2b2eac8": "Marca",
  "auto.d3b02c902c": "Proveedores vinculados",
  "auto.88c61ac25a": "Productos",
  "auto.793b746788": "Creado el",
  "auto.d045fd5356": "Valoración por almacén",
  "auto.2b335b2844": "Actividad reciente",
  "auto.b1beaad72e": "Ver todo",
  "auto.b24e631664": "Gestionar",
  "auto.d167478c48": "Resumen de stock",
  "auto.91dbfff7a0": "Costo unit.",
  "auto.debedfb449": "Valor",
  "auto.f86f444e68": "Iniciar inventario",
  "auto.5eb62fda83": "Seleccionar almacén",
  "auto.8fa534403b": "Categoría (opcional)",
  "auto.5bb4f30971": "Iniciar",
  "auto.35723f9629": "Historial",
  "auto.54628887e8": "Total productos",
  "auto.86bdb2b73d": "Validados",
  "auto.ffacbac836": "Discrepancias",
  "auto.439149be8b": "Pendiente",
  "auto.948505fb20": "Escáner",
  "auto.d12c3b0dcf": "Cancelar",
  "auto.e1c50082af": "Validar inventario",
  "auto.18d925e4d5": "Agregar",
  "auto.754a3f71bd": "Stock teórico",
  "auto.cdd262917a": "Contado",
  "auto.0dc60556d9": "Discrepancia",
  "auto.5104751360": "\" class=\"sidebar-link",
  "auto.354e62ea5b": "\" title=\"",
  "auto.d2766d9b56": "\" data-label=\"",
  "auto.19dd00a2a6": "\" class=\"header-btn header-alerts\">",
  "auto.d0976037d2": "Desarrollado por",
  "auto.166ad53556": "KREMER Régis",
  "auto.1e8d587771": "&copy;",
  "auto.f83511a305": "MageStock",
  "auto.b61541208d": "Menú",
  "auto.3e75196365": "\" class=\"slide-item",
  "auto.59e7b5977f": "Cerrar sesión",
  "auto.99fb48ddce": "Titre",
  "auto.121dc34a0d": "Codes à barres",
  "auto.2cddd28fee": "window.SM_PAGE = '",
  "auto.d3794314a9": "'; window.SM_ROLE = '",
  "auto.3978edca6e": "'; window.USER_ROLE = '",
  "auto.ecdfac8b01": "'; window.CSRF_TOKEN = '",
  "auto.5cd9831e35": "'; document.addEventListener('DOMContentLoaded', ()=> App.init());",
  "auto.47b404afa4": "Todos los tipos",
  "auto.e49ab34478": "Entrada",
  "auto.772ae0b683": "Salida",
  "auto.b0be74ed47": "Transferencia",
  "auto.66c1fb3547": "Inventario",
  "auto.d0f84e00bb": "Entrée",
  "auto.4cfc9c2fee": "Filtros +",
  "auto.3f181e87bd": "Operador",
  "auto.532a44859a": "Obra / Sitio",
  "auto.fed0b874ff": "Albarán / Referencia",
  "auto.73d163bfa7": "Proveedor",
  "auto.612eae5e7f": "0 movimiento(s)",
  "auto.60b1cf36a1": "Entrada de stock",
  "auto.6788c41f73": "Salida de stock",
  "auto.41c2e8aa4b": "Fecha / Hora",
  "auto.27ce7f8b56": "Stock",
  "auto.c18c12d75b": "Razón / Obra",
  "auto.3b0649c726": "Nota",
  "auto.0945359809": "Documento",
  "auto.153d913716": "Pieza",
  "auto.511924d443": "Page 1 / 1",
  "auto.292d37187f": "Anterior",
  "auto.257a7b4c17": "Siguiente",
  "auto.42895bd48e": "20 / page",
  "auto.1b6aabe1ed": "50 / page",
  "auto.74a0253db2": "100 / page",
  "auto.d60f3bbc79": "Todas las marcas",
  "auto.f813c866dd": "0 producto(s)",
  "auto.aee5874ea5": "Entrada de stock",
  "auto.69cc8fa3c3": "Nuevo producto",
  "auto.cac8eee4d8": "📂 Import CSV",
  "auto.8c6b7f2067": "Categoría",
  "auto.bc13813162": "Precio",
  "auto.3c5f34af12": "12 / page",
  "auto.551635d5bd": "24 / page",
  "auto.154a663289": "48 / page",
  "auto.554522921a": "📦 Stock",
  "auto.4ecf2a7c1a": "📊 Valoración",
  "auto.1dc86dc039": "📈 Movimientos",
  "auto.7a98add9ae": "📉 Alertas",
  "auto.c53a63874f": "🏷️ Marcas",
  "auto.1ce60d078c": "📊 Écarts inventaire",
  "auto.c6c34fda97": "💰 Historique prix",
  "auto.fec8c371a7": "📦 Rapport de Stock",
  "auto.50304dcf67": "🖨️ Imprimer",
  "auto.360f889205": "📥 Exporter CSV",
  "auto.feec0f0326": "🏢 Todos los almacenes",
  "auto.089490558f": "📦 Todas las categorías",
  "auto.9cbdde64e6": "🏷️ Todas las marcas",
  "auto.80343600a3": "⚠️ Tous les seuils",
  "auto.d3b1d82825": "Stock bas uniquement",
  "auto.173562e26f": "Stock normal",
  "auto.7a1206e827": "🔄 Reiniciar",
  "auto.1f78ab905c": "Unités totales",
  "auto.6d2a66c81f": "Valeur totale",
  "auto.e1ded249ca": "Stock bajo",
  "auto.894a31e48b": "Stock actual",
  "auto.db19dd4050": "Seuil mini",
  "auto.7660ba0d20": "Costo unitario",
  "auto.796c5a9d55": "📊 Valorisation du Stock",
  "auto.5e2c9b7c0b": "Valeur totale stock",
  "auto.95726adbb0": "Almacenes",
  "auto.3059d560a9": "Unidades",
  "auto.9b1acffafa": "Valeur moyenne/produit",
  "auto.2083a88a18": "📈 Rapport des Mouvements",
  "auto.42da2a07fe": "Tous les types",
  "auto.ff0f4810b8": "Entrées",
  "auto.c9a2bb2291": "Ajouts",
  "auto.4fc39f3ee2": "Sorties",
  "auto.7ebbd5c301": "Transferts",
  "auto.9d02934dab": "Tous les magasins",
  "auto.44749712db": "Fecha",
  "auto.1b27b371c9": "Cantidad",
  "auto.f628ae7eac": "Usuario",
  "auto.a530dc1ad2": "📉 Alertes Stock Bas",
  "auto.d0e1705373": "⚠️ Priorité",
  "auto.3e81dfbadd": "Déficit",
  "auto.004bf6c9a4": "Action",
  "auto.82b55b0cfc": "🏷️ Rapport par Marques",
  "auto.e3d3e6972a": "Stock total",
  "auto.20a50f9498": "Proveedores",
  "auto.7a05a317f8": "📊 Rapport d'écarts inventaire",
  "auto.a494117a99": "Avec écart",
  "auto.15bd1cc7e9": "Valeur écarts",
  "auto.70a0ad141f": "Teórico",
  "auto.5b95306754": "Écart qté",
  "auto.7173ba9784": "Écart valeur",
  "auto.ba1154f241": "Date inventaire",
  "auto.65191f650c": "Haga clic en la pestaña para cargar",
  "auto.1097e12af1": "💰 Historique des prix d'achat",
  "auto.1cde1caea4": "Todos los productos",
  "auto.e02d1a9572": "Precio unitario",
  "auto.79cf6cf5a0": "Precio base",
  "auto.c92101a214": "Seleccione un producto",
  "auto.274f5cdec9": "window.SM_PAGE = 'reports';",
  "auto.959b190c85": "Cámara inactiva",
  "auto.468f4252a6": "Activar cámara",
  "auto.2d9361e513": "Detener",
  "auto.9e3272ea56": "QR Code",
  "auto.110420912f": "Producto encontrado",
  "auto.6ca9a16a57": "Ver producto",
  "auto.3ed833a118": "+ Stock",
  "auto.6cb59842f7": "- Stock",
  "auto.de0b6a7cce": "Entrada manual",
  "auto.3a8a7a8a2d": "Buscar",
  "auto.a31799d611": "Escaneos recientes",
  "auto.1c3c733a59": "Sin escaneos recientes",
  "auto.69fed99374": "Les codes scannés apparaîtront ici",
  "auto.4aeb99590e": "Configuración general",
  "auto.c70d8f1160": "Nombre de empresa",
  "auto.8e2a02bfc3": "Prefijo SKU",
  "auto.f58eb11abe": "Le prochain SKU sera basé sur ce préfixe",
  "auto.aed88202e2": "Enregistrer",
  "auto.aa599a041b": "Copia de seguridad y restauración",
  "auto.267166e23f": "Exportar copia de seguridad",
  "auto.306d178741": "Importar copia de seguridad",
  "auto.5c21b459de": "Notificaciones push",
  "auto.2ec16d5047": "Activar",
  "auto.3095c3e4f1": "Probar",
  "auto.0944d1cb93": "Types de notifications :",
  "auto.2f1ebdf889": "📤 Sorties de stock",
  "auto.cf1d483131": "📥 Entrées de stock",
  "auto.61bdca438f": "🔄 Transferts entre magasins",
  "auto.ba836f3d98": "⚠️ Alertes de stock (minimum/maximum atteint)",
  "auto.614ffce03f": "📋 Inventaires terminés",
  "auto.104fa50318": "Zona de peligro",
  "auto.4f53516a3a": "Ces actions sont irréversibles. Soyez certain de ce que vous faites.",
  "auto.d9dcbeffaf": "Eliminar todos los productos",
  "auto.2e6def894b": "Eliminar todos los movimientos",
  "auto.aba3cbc459": "ELIMINAR TODO",
  "auto.b5fd93d382": "0 proveedor(es)",
  "auto.ff5e5012cd": "Nuevo proveedor",
  "auto.bbaff12800": "Contacto",
  "auto.ce8ae9da5b": "Email",
  "auto.301dc874dc": "Teléfono",
  "auto.fc29e0aa3d": "Marcas vinculadas",
  "auto.1297ef5077": "Plazo de entrega",
  "auto.229eb04083": "Condiciones",
  "auto.4eeea5804e": "0 usuario(s)",
  "auto.c898411faf": "Nuevo usuario",
  "auto.c9437f7d5f": "Usuario",
  "auto.19772a94ff": "Rol",
  "auto.212078f396": "Creado el",
  "auto.f7f9943ba3": "Gestión de almacenes y categorías",
  "auto.e209935d37": "Nuevo almacén",
  "auto.2a53fbe526": "window.SM_PAGE = 'warehouse-manager';",
  "auto.e5915f5f8b": "0 almacén(es)",
  "auto.50d46c2f99": "Dirección",
  "auto.83f62264e3": "Categorías",
  "btn.duplicate": "Duplicar",
  "btn.duplicate.tooltip": "Crear una copia de este producto",
  "sizes.baby": "0M,3M,6M,9M,12M,18M,24M,2A,3A,4A,5A,6A,8A,10A,12A,14A,16A",
  "sizes.clothing": "XS,S,M,L,XL,XXL,3XL,4XL",
  "sizes.eyewear": "Única,S,M,L",
  "sizes.gloves": "6,7,8,9,10,11,12",
  "sizes.headwear": "S,M,L,XL,Única",
  "sizes.label.allSizes": "Todas las tallas",
  "sizes.label.generateVariants": "Generar variantes",
  "sizes.label.parentProduct": "Producto padre",
  "sizes.label.selectSizes": "Seleccione las tallas que desea crear",
  "sizes.label.size": "Talla",
  "sizes.label.sizeNorm": "Norma de talla",
  "sizes.label.sizeType": "Tallas y variantes",
  "sizes.label.variantsWillCreate": "variante(s) serán creadas",
  "sizes.norm.eu": "EU (Europa)",
  "sizes.norm.uk": "UK (Reino Unido)",
  "sizes.norm.us": "US (Estados Unidos)",
  "sizes.pants.eu": "34,36,38,40,42,44,46,48,50,52,54",
  "sizes.pants.uk": "24,26,28,30,32,34,36,38,40,42",
  "sizes.pants.us": "24,26,28,30,32,34,36,38,40,42",
  "sizes.shoes.eu": "36,37,38,39,40,41,42,43,44,45,46,47,48",
  "sizes.shoes.uk": "3,3.5,4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10,10.5,11,11.5,12,13",
  "sizes.shoes.us": "4,4.5,5,5.5,6,6.5,7,7.5,8,8.5,9,9.5,10,10.5,11,11.5,12,12.5,13,14",
  "sizes.type.baby": "Bebé / Niño (0M → 16A)",
  "sizes.type.clothing": "Ropa (XS → 4XL)",
  "sizes.type.eyewear": "Gafas / Accesorio (S → L)",
  "sizes.type.gloves": "Guantes (6 → 12)",
  "sizes.type.headwear": "Gorro / Casco (S → XL)",
  "sizes.type.none": "Ninguno (producto estándar)",
  "sizes.type.pants": "Pantalón (talla FR 34 → 54)",
  "sizes.type.shoes": "Calzado (EU / UK / US)",
  "settings.country.label": "País de la empresa",
  "settings.country.hint": "El país se utiliza como referencia administrativa. Nunca modifica los importes guardados.",
  "settings.locale.label": "Formato regional",
  "settings.locale.hint": "En modo automático, los números y las fechas siguen el idioma de cada usuario.",
  "settings.locale.auto": "Automático según el idioma",
  "settings.currency.label": "Moneda contable",
  "settings.currency.hint": "Esta moneda se aplica a precios, pedidos, coste medio ponderado y valoraciones.",
  "settings.currency.warning": "Cambiar la moneda solo modifica la unidad mostrada. MageStock no convierte los valores financieros ya guardados.",
  "settings.preview.label": "Vista previa del formato",
  "nav.kits": "Kits",
  "nav.reservations": "Reservas",
  "nav.locations": "Ubicaciones",
  "nav.plans": "Planos",
  "nav.analytics": "Analítica",
  "nav.help": "Ayuda",
  "nav.more": "Más",
  "nav.logout": "Cerrar sesión",
  "nav.section.operations": "Operaciones",
  "nav.section.organization": "Organización",
  "nav.section.monitoring": "Seguimiento y control",
  "nav.section.administration": "Administración",
  "page.dashboard": "Panel de control",
  "page.products": "Productos",
  "page.warehouses": "Almacenes",
  "page.movements": "Movimientos",
  "page.inventory": "Inventarios",
  "page.scanner": "Escáner",
  "page.barcodes": "Códigos de barras",
  "page.reports": "Informes",
  "page.settings": "Configuración",
  "page.users": "Usuarios",
  "page.alerts": "Alertas",
  "page.suppliers": "Proveedores",
  "page.brands": "Marcas",
  "page.orders": "Órdenes de compra",
  "page.locations": "Ubicaciones",
  "page.lots": "Lotes",
  "page.kits": "Kits",
  "page.reservations": "Reservas",
  "page.analytics": "Analítica",
  "page.warehouse_manager": "Gestión de almacenes",
  "page.plans": "Planos de ubicaciones",
  "page.plans_edit": "Editar plano",
  "page.help": "Ayuda",
  "shell.menu.toggle": "Abrir/cerrar menú",
  "shell.menu.open": "Abrir menú",
  "shell.menu.close": "Cerrar menú",
  "shell.language": "Idioma",
  "shell.theme.change": "Cambiar tema",
  "shell.theme.light": "Cambiar al tema claro",
  "shell.theme.dark": "Cambiar al tema oscuro",
  "shell.role.admin": "Administrador",
  "shell.role.user": "Usuario",
  "shell.logout": "Cerrar sesión",
  "shell.footer.developed_by": "Desarrollado por",
  "shell.footer.license": "Licencia de uso",
  "shell.modal.title": "Título",
  "shell.pwa.title": "Instalar MageStock",
  "shell.pwa.text": "Añade MageStock como aplicación en este dispositivo. Las instrucciones se adaptan al navegador.",
  "shell.pwa.install": "Instalar",
  "shell.pwa.dismiss": "Ocultar",
  "shell.print.barcodes": "Códigos de barras",
  "shell.print.print": "Imprimir",
  "shell.print.close": "Cerrar",
  "shell.alerts": "Alertas",
  "login.page_title": "Inicio de sesión",
  "login.meta_description": "Inicio de sesión de MageStock — gestión de stock multialmacén.",
  "login.tagline": "Gestión de stock • MageStock",
  "login.submit": "Iniciar sesión",
  "login.language": "Idioma",
  "login.theme.light": "Cambiar al tema claro",
  "login.theme.dark": "Cambiar al tema oscuro",
  "login.logo_alt": "{company} — logotipo",
  "login.footer": "© {year} {company} — por KREMER Régis",
  "login.error.rate_limit": "Demasiados intentos de inicio de sesión. Espera 5 minutos.",
  "login.error.users_missing": "No se encuentra el archivo data/users.json en este servidor.",
  "login.error.users_unreadable": "El archivo data/users.json existe, pero PHP no puede leerlo. Comprueba los permisos de data/ y users.json.",
  "login.error.users_empty": "El archivo data/users.json está vacío o no se puede leer.",
  "login.error.users_invalid_json": "El archivo data/users.json no contiene JSON válido: {error}",
  "login.error.invalid_credentials": "Credenciales incorrectas o cuenta desactivada.",
  "dashboard.greeting.morning": "Buenos días",
  "dashboard.greeting.afternoon": "Buenas tardes",
  "dashboard.greeting.evening": "Buenas noches",
  "dashboard.shortcut.scanner": "Escáner",
  "dashboard.shortcut.movement": "Movimiento",
  "dashboard.shortcut.inventory": "Inventario",
  "dashboard.shortcut.orders": "Pedidos",
  "dashboard.chart.movements_14_days": "Movimientos (14 días)",
  "dashboard.chart.valuation_by_warehouse": "Valoración por almacén",
  "dashboard.section.recent_activity": "Actividad reciente",
  "dashboard.section.active_alerts": "Alertas activas",
  "dashboard.action.view_all": "Ver todo →",
  "dashboard.action.manage": "Gestionar →",
  "dashboard.kpi.products": "Productos",
  "dashboard.kpi.units_in_stock": "Unidades en stock",
  "dashboard.kpi.stock_value": "Valor del stock",
  "dashboard.kpi.active_alerts": "Alertas activas",
  "dashboard.kpi.pending_orders": "Pedidos en curso",
  "dashboard.kpi.warehouses": "Almacenes",
  "dashboard.chart.movements": "Movimientos",
  "dashboard.chart.value_currency": "Valor ({currency})",
  "dashboard.warehouse_fallback": "Almacén {id}",
  "dashboard.activity.none": "Sin actividad",
  "dashboard.activity.title": "{name} — {type} ({quantity})",
  "dashboard.unit.short": "{value} uds.",
  "dashboard.movement.add": "Entrada",
  "dashboard.movement.remove": "Salida",
  "dashboard.movement.transfer": "Transferencia",
  "dashboard.movement.entry": "Recepción",
  "dashboard.movement.inventory": "Inventario",
  "dashboard.pagination.previous": "◀ Anterior",
  "dashboard.pagination.page": "Página {current} / {total}",
  "dashboard.pagination.next": "Siguiente ▶",
  "dashboard.alerts.all_ok": "Todo está en orden",
  "dashboard.alerts.badge_min": "↓ MÍN",
  "dashboard.alerts.badge_max": "↑ MÁX",
  "dashboard.alerts.stock_detail": "Stock: <strong>{qty}</strong> / umbral <strong>{threshold}</strong>",
  "date.weekday.0": "domingo",
  "date.weekday.1": "lunes",
  "date.weekday.2": "martes",
  "date.weekday.3": "miércoles",
  "date.weekday.4": "jueves",
  "date.weekday.5": "viernes",
  "date.weekday.6": "sábado",
  "date.month.1": "enero",
  "date.month.2": "febrero",
  "date.month.3": "marzo",
  "date.month.4": "abril",
  "date.month.5": "mayo",
  "date.month.6": "junio",
  "date.month.7": "julio",
  "date.month.8": "agosto",
  "date.month.9": "septiembre",
  "date.month.10": "octubre",
  "date.month.11": "noviembre",
  "date.month.12": "diciembre",
  "date.long": "{weekday}, {day} de {month} de {year}",
  "shell.meta_description": "MageStock — gestión de stock multialmacén, escáner, movimientos, inventarios y alertas.",
  "shell.scroll_top": "Volver arriba",
  "shell.role.storekeeper": "Almacenero",
  "warehouse.manager.heading": "Gestión de almacenes",
  "warehouse.manager.intro": "Cree almacenes, complete su información y organice sus categorías.",
  "warehouse.manager.new": "Nuevo almacén",
  "warehouse.manager.load_error": "No se pudieron cargar los almacenes.",
  "warehouse.manager.empty_title": "Sin almacenes",
  "warehouse.manager.empty_text": "Cree el primer almacén para organizar el stock.",
  "warehouse.manager.not_provided": "Sin especificar",
  "warehouse.manager.edit": "Editar almacén",
  "warehouse.manager.add_category": "Añadir",
  "warehouse.manager.remove_category": "Quitar {category}",
  "warehouse.manager.address": "Dirección",
  "warehouse.manager.contact": "Contacto",
  "warehouse.manager.capacity": "Capacidad máxima",
  "warehouse.manager.indicators": "Indicadores del almacén",
  "warehouse.manager.products": "Productos",
  "warehouse.manager.categories": "Categorías",
  "warehouse.manager.no_categories": "Sin categorías",
  "warehouse.manager.cancel": "Cancelar",
  "warehouse.manager.confirm": "Confirmar",
  "warehouse.manager.existing_categories": "Ya existen {count} categoría(s) en este almacén.",
  "warehouse.manager.no_categories_defined": "Aún no se ha definido ninguna categoría.",
  "warehouse.manager.add_category_title": "Añadir categoría — {warehouse}",
  "warehouse.manager.category_name": "Nombre de la categoría",
  "warehouse.manager.category_placeholder": "Ej. Señalización vertical",
  "warehouse.manager.add": "Añadir",
  "warehouse.manager.category_required": "El nombre de la categoría es obligatorio.",
  "warehouse.manager.category_exists": "Esta categoría ya existe en el almacén.",
  "warehouse.manager.category_added": "Categoría añadida.",
  "warehouse.manager.category_add_error": "No se pudo añadir la categoría.",
  "warehouse.manager.remove_category_title": "Quitar categoría",
  "warehouse.manager.remove_category_question": "¿Quitar «{category}» de «{warehouse}»? Los productos conservarán su etiqueta actual.",
  "warehouse.manager.remove": "Quitar",
  "warehouse.manager.category_removed": "Categoría retirada.",
  "warehouse.manager.category_remove_error": "No se pudo quitar la categoría.",
  "warehouse.manager.edit_title": "Editar almacén",
  "warehouse.manager.new_title": "Nuevo almacén",
  "warehouse.manager.name": "Nombre",
  "warehouse.manager.name_placeholder": "Ej. Taller principal",
  "warehouse.manager.address_placeholder": "Dirección completa",
  "warehouse.manager.optional": "Opcional",
  "warehouse.manager.contact_placeholder": "Responsable del almacén",
  "warehouse.manager.notes": "Notas",
  "warehouse.manager.save": "Guardar",
  "warehouse.manager.create": "Crear",
  "warehouse.manager.delete": "Eliminar",
  "warehouse.manager.name_required": "El nombre es obligatorio.",
  "warehouse.manager.updated": "Almacén actualizado.",
  "warehouse.manager.created": "Almacén creado.",
  "warehouse.manager.save_error": "No se pudo guardar.",
  "warehouse.manager.dep_products": "Productos",
  "warehouse.manager.dep_stock": "Líneas de stock",
  "warehouse.manager.dep_movements": "Movimientos",
  "warehouse.manager.dep_inventories": "Inventarios",
  "warehouse.manager.dep_orders": "Pedidos",
  "warehouse.manager.dep_locations": "Ubicaciones",
  "warehouse.manager.dep_plans": "Planos",
  "warehouse.manager.dep_alerts": "Alertas",
  "warehouse.manager.dep_reservations": "Reservas",
  "warehouse.manager.dep_users": "Usuarios",
  "warehouse.manager.dep_ldap": "Mapeos LDAP",
  "warehouse.manager.delete_blocked_title": "No se puede eliminar",
  "warehouse.manager.delete_blocked_text": "El almacén «{warehouse}» todavía está en uso. Reasigne los elementos siguientes antes de eliminarlo.",
  "warehouse.manager.close": "Cerrar",
  "warehouse.manager.delete_products_notice": "{count} producto(s) están asignados a este almacén.",
  "warehouse.manager.delete_title": "Eliminar almacén",
  "warehouse.manager.delete_question": "¿Eliminar definitivamente «{warehouse}»?",
  "warehouse.manager.deleted": "Almacén eliminado.",
  "warehouse.manager.delete_error": "No se pudo eliminar el almacén.",
  "update.analysis.baseline": "Migration baseline",
  "update.analysis.blocker": "Blocker",
  "update.analysis.corrections": "Corrections required before installation",
  "update.analysis.files": "Targeted files",
  "update.analysis.free_space": "Available space",
  "update.analysis.impossible": "Operation impossible.",
  "update.analysis.install_blocked": "Installation blocked",
  "update.analysis.installed": "Installed version",
  "update.analysis.legacy": "legacy",
  "update.analysis.migrations": "Declared migrations",
  "update.analysis.more_files": "other file(s)",
  "update.analysis.permissions": "Detected permissions: {mode}",
  "update.analysis.range": "{minimum} to {maximum}",
  "update.analysis.ready_text": "Signature, source range, files and permissions are valid. Installation still requires your confirmation.",
  "update.analysis.required_space": "Estimated space",
  "update.analysis.schema": "Schema",
  "update.analysis.server_ready": "Server ready",
  "update.analysis.signature": "Signature",
  "update.analysis.sources": "Accepted source versions",
  "update.analysis.target": "Target version",
  "update.analysis.type": "Type",
  "update.analysis.unknown": "Undetermined",
  "update.analysis.verified_package": "Official package verified",
  "update.code_version": "Code version",
  "update.installed_version": "Installed version",
  "update.kicker": "System administration",
  "update.title": "Actualizaciones de MageStock",
  "update.subtitle": "Find an official version, download its signed package, then confirm installation separately.",
  "update.loading": "Loading…",
  "update.working": "Processing…",
  "update.confirm.finalize_manual": "Finalize the manually deployed files?",
  "update.confirm.install": "Back up and install this update?",
  "update.confirm.rollback": "Restore the previous point?",
  "update.discovery.available_badge": "Nueva versión disponible",
  "update.discovery.checked": "Last check",
  "update.discovery.checking": "Checking the official catalog, signature and compatible versions…",
  "update.discovery.compatible_sources": "Compatible sources",
  "update.discovery.current": "No newer version is published on the stable channel.",
  "update.discovery.current_badge": "Versión actual",
  "update.discovery.description": "MageStock only contacts the official HTTPS domain, verifies the Ed25519 manifest and sends no business data.",
  "update.discovery.disk_blocked": "Insufficient disk space to download and prepare this package.",
  "update.discovery.download": "Descargar y analizar",
  "update.discovery.download_blocked": "Official package verified, but the server preflight blocks installation.",
  "update.discovery.download_ready": "Official package downloaded, verified and ready to install after confirmation.",
  "update.discovery.downloading": "Controlled download, SHA-256 verification and internal signature analysis…",
  "update.discovery.found": "A compatible official update is available.",
  "update.discovery.kicker": "Official catalog",
  "update.discovery.mandatory": "Important",
  "update.discovery.never_checked": "Not checked yet",
  "update.discovery.none": "MageStock already uses the latest published version.",
  "update.discovery.package": "Selected package",
  "update.discovery.privacy": "No user, product, stock, warehouse, LDAP setting, secret or installation identifier is sent.",
  "update.discovery.prompt": "Start a search to check the official stable channel.",
  "update.discovery.published": "Published",
  "update.discovery.release_notes": "View changes",
  "update.discovery.search": "Buscar actualizaciones",
  "update.discovery.signature": "Trust",
  "update.discovery.size": "Size",
  "update.discovery.title": "Buscar una actualización en MageKorp Hub",
  "update.discovery.unavailable": "The official catalog cannot be reached. Manual import remains available.",
  "update.discovery.unavailable_badge": "Servicio no disponible",
  "update.discovery.verified": "Authenticated manifest, authorized origin and package compatible with this installation.",
  "update.discovery.version": "MageStock {version}",
  "update.history.empty": "No update recorded.",
  "update.history.title": "Historial",
  "update.install.running": "Final preflight and update in progress.",
  "update.install.success": "Update successful. Reloading…",
  "update.integrity.failed": "Some checks failed.",
  "update.integrity.ok": "Integrity validated.",
  "update.manual.analyze": "Analyze package",
  "update.manual.blocked": "Valid package, but installation is blocked by the listed permissions.",
  "update.manual.checking": "Checking signature, version compatibility, integrity and permissions…",
  "update.manual.description": "Keep this method when the server has no outbound Internet access. The ZIP undergoes exactly the same checks.",
  "update.manual.limit": "128 MB maximum",
  "update.manual.ready": "Package validated and server ready.",
  "update.manual.select": "Select an official ZIP",
  "update.manual.title": "Importar una actualización manualmente",
  "update.notice.blocked": "The package is authentic, but the server cannot replace every file yet.",
  "update.notice.idle": "The system is ready. Remote discovery never starts installation automatically.",
  "update.notice.interrupted": "An interrupted update requires administrator action.",
  "update.notice.manual": "New files were detected. Finalize the update before resuming activity.",
  "update.notice.orphan": "An old state without an archive or backup was detected. Click Restore.",
  "update.notice.ready": "Signed package, compatible source version and file system ready.",
  "update.package.confirmation": "Installation never starts automatically. Administrator confirmation is always required.",
  "update.package.install": "Instalar la actualización",
  "update.package.kicker": "Package ready",
  "update.package.recheck": "Recheck permissions",
  "update.package.source_manual": "Manual import",
  "update.package.source_remote": "Downloaded from MageKorp Hub",
  "update.package.title": "Official package analysis",
  "update.preflight.blocked": "Blockers remain.",
  "update.preflight.ready": "The server is now ready.",
  "update.preflight.running": "Checking permissions again…",
  "update.rollup.bridge": "Bridge",
  "update.rollup.bridge_desc": "An intermediate baseline remains possible for a structure that is too old.",
  "update.rollup.cumulative": "Cumulative",
  "update.rollup.cumulative_desc": "A range of source versions reaches the same target.",
  "update.rollup.description": "MageKorp selects the direct or cumulative package compatible with the installed version. MageStock then rechecks its internal signature, files, migrations and permissions.",
  "update.rollup.direct": "Direct rollup",
  "update.rollup.direct_desc": "One specific historical source reaches the target in one package.",
  "update.rollup.kicker": "Cumulative engine active",
  "update.rollup.note": "Remote discovery, download and analysis are automated. Installation always remains manual and confirmed.",
  "update.rollup.title": "An older installation can reach the target without applying every intermediate version",
  "update.system.finalize_manual": "Finalize manual deployment",
  "update.system.integrity": "Check integrity",
  "update.system.last_operation": "Last operation",
  "update.system.method": "Method",
  "update.system.package_mode": "Package mode",
  "update.system.resume": "Resume",
  "update.system.rollback": "Restore",
  "update.system.status": "Status",
  "update.system.target": "Target",
  "update.system.title": "Estado del sistema",
  "update.method.manual_deploy": "Manual deployment",
  "update.method.recovery": "Recovery",
  "update.method.remote": "MageKorp Hub",
  "update.method.upload": "Manual import",
  "update.mode.bridge": "Compatibility bridge",
  "update.mode.cumulative": "Cumulative",
  "update.mode.distribution": "Full distribution",
  "update.mode.exact": "Direct",
  "update.status.backup_created": "Backup created",
  "update.status.files_replaced": "Files replaced",
  "update.status.health_check": "Health check",
  "update.status.inconsistent": "Inconsistent installation",
  "update.status.migrations_running": "Migrations running",
  "update.status.pending_manual": "Update to finalize",
  "update.status.preflight_failed": "Server not ready",
  "update.status.rollback_required": "Restore required",
  "update.status.staged": "Files staged",
  "update.status.up_to_date": "Up to date",
  "update.status.uploaded": "Package uploaded",
  "update.status.verified": "Package verified",
  "auth.brand.strapline": "Stocks · inventories · fieldwork",
  "auth.brand.version": "MageStock {version}",
  "auth.brand.hosted": "alojado por su organización",
  "auth.password.toggle": "Mostrar u ocultar la contraseña",
  "login.error.session_expired": "Your session expired. Reload the page and try again.",
  "login.brand.lead": "Manage your stock, warehouses and field operations from one workspace.",
  "login.brand.point.access": "View available stock by warehouse and location",
  "login.brand.point.scope": "Run inventories and movements with guided workflows",
  "login.brand.point.security": "Use the unified scanner and field tools in one experience",
  "login.form.kicker": "Bienvenido",
  "login.form.title": "Acceda a su espacio",
  "login.form.intro": "Enter the credentials supplied by your organisation. MageStock will direct you to the services available to your account.",
  "login.forgot_password": "¿Olvidó su contraseña?",
  "login.security_note": "Several incorrect attempts may temporarily suspend sign-in. Contact your administrator if you need help.",
  "recovery.meta_description": "Controlled MageStock password reset.",
  "recovery.page_title": "Restablecer la contraseña",
  "recovery.brand.strapline": "Account · access · security",
  "recovery.brand.lead": "Recover access to your MageStock workspace with a temporary token created by your administrator.",
  "recovery.brand.step.request.title": "Request a token",
  "recovery.brand.step.request.text": "Contact your administrator or internal support team.",
  "recovery.brand.step.expiry.title": "Use it before it expires",
  "recovery.brand.step.expiry.text": "The token is personal, time-limited and replaces any previous token.",
  "recovery.brand.step.sessions.title": "Session revocation",
  "recovery.brand.step.sessions.text": "After validation, all previous sign-ins are closed automatically.",
  "recovery.brand.notice": "MageStock never asks for your old password and does not store the new one in the browser.",
  "recovery.form.kicker": "Seguridad de la cuenta",
  "recovery.form.title": "Restablecer la contraseña",
  "recovery.form.intro": "Enter the token supplied by your administrator, then choose a password that meets every requirement.",
  "recovery.error.session_expired": "Your session expired. Reload the page and try again.",
  "recovery.error.rate_limit": "Too many attempts. Wait before trying again.",
  "recovery.error.password_mismatch": "The two passwords do not match.",
  "recovery.error.invalid_token": "The token is unknown, expired or already used.",
  "recovery.error.unavailable": "The recovery service is temporarily unavailable.",
  "recovery.success": "La contraseña se ha restablecido. Se han cerrado todas las sesiones anteriores.",
  "recovery.return_login": "Volver al inicio de sesión",
  "recovery.token.label": "Token de recuperación",
  "recovery.token.hint": "Paste the complete token without adding spaces. It can only be used once.",
  "recovery.password.label": "Nueva contraseña",
  "recovery.password_confirm.label": "Confirmar la contraseña",
  "recovery.policy.kicker": "Criterios obligatorios",
  "recovery.policy.title": "Contraseña esperada",
  "recovery.policy.length": "Entre 14 y 255 caracteres",
  "recovery.policy.lowercase": "Al menos una letra minúscula",
  "recovery.policy.uppercase": "Al menos una letra mayúscula",
  "recovery.policy.number": "Al menos un número",
  "recovery.policy.symbol": "Al menos un símbolo o signo",
  "recovery.policy.identity": "No sequence related to MageStock or the account",
  "recovery.policy.matches": "Las dos entradas coinciden",
  "recovery.policy.pending": "Enter a password to check the criteria.",
  "recovery.policy.valid": "All visible criteria are met.",
  "recovery.submit": "Restablecer y cerrar las sesiones anteriores",
  "recovery.no_token.title": "Do you not have a token?",
  "recovery.no_token.text": "Only an authorised MageStock administrator can create a token. Ask them to open your account in Users and access.",
  "login.stage.aria": "Demonstration preview of MageStock stock operations",
  "login.stage.eyebrow": "Operational preview",
  "login.stage.warehouse": "Main warehouse",
  "login.stage.status": "Demonstration",
  "login.stage.products": "Available items",
  "login.stage.inventory": "Inventory in progress",
  "login.stage.inventory_status": "82% checked",
  "login.stage.alerts": "Low stock",
  "login.stage.alerts_value": "12 alerts",
  "login.stage.movement": "Latest movement",
  "login.stage.movement_value": "Transfer confirmed",
  "login.stage.destination": "North depot",
  "recovery.stage.aria": "Demonstration preview of MageStock account protection",
  "recovery.stage.eyebrow": "Account protection",
  "recovery.stage.account": "MageStock access",
  "recovery.stage.status": "Control active",
  "recovery.stage.token": "Temporary token",
  "recovery.stage.token_value": "Single use",
  "recovery.stage.sessions": "Sessions",
  "recovery.stage.sessions_value": "Automatic revocation",
  "recovery.stage.storage": "Storage",
  "recovery.stage.storage_value": "No plaintext secret",
  "recovery.stage.policy": "Password policy",
  "recovery.stage.policy_value": "Server-side enforcement",
  "recovery.stage.local": "Local account",
  "products.mobile.resources": "Documents and location",
  "products.mobile.datasheet": "Technical datasheet",
  "products.mobile.safety_sheet": "Safety data sheet",
  "products.mobile.document_unavailable": "Document unavailable",
  "products.mobile.plan": "View product on a plan",
  "products.mobile.plan_short": "Plan",
  "products.mobile.document_opening": "opening document",
  "products.mobile.create.show_steps": "View all 5 steps",
  "products.mobile.create.step_identity": "Identity",
  "products.mobile.create.step_classification": "Classification",
  "products.mobile.create.step_purchase": "Purchasing",
  "products.mobile.create.step_traceability": "Traceability",
  "products.mobile.create.step_review": "Review",
  "products.mobile.create.identity_more": "Additional information",
  "products.mobile.create.identity_more_help": "Additional EAN codes and description.",
  "products.mobile.create.image": "Product image",
  "products.mobile.create.image_help": "Optional photo or visual.",
  "products.mobile.create.storage": "Precise location",
  "products.mobile.create.storage_help": "Registered location or manual entry.",
  "products.mobile.create.purchase_more": "Price and supplier offers",
  "products.mobile.create.purchase_more_help": "Optional purchasing information.",
  "products.mobile.create.trace": "Traceability and thresholds",
  "products.mobile.create.trace_help": "Lots, expiry and safety stock.",
  "products.mobile.create.variants": "Variants and sizes",
  "products.mobile.create.variants_help": "Only for relevant products.",
  "products.mobile.create.documents": "Documents",
  "products.mobile.create.documents_help": "Technical and safety sheets.",
  "products.mobile.create.initial_stock": "Initial stock",
  "products.mobile.create.initial_stock_help": "Leave empty if stock will be entered later.",
  "shell.footer.magekorp_app": "una aplicación web de MageKorp",
  "shell.footer.contact": "Contactar con MageKorp"
}
