diff --git a/client/packages/common/src/intl/locales/en/common.json b/client/packages/common/src/intl/locales/en/common.json index 13c9b76aee..fe75d967f1 100644 --- a/client/packages/common/src/intl/locales/en/common.json +++ b/client/packages/common/src/intl/locales/en/common.json @@ -94,6 +94,7 @@ "button.scan": "Scan", "button.select-a-color": "Select a colour", "button.send": "Send", + "button.show-all": "Show all", "button.stop": "Stop", "button.supply-to-approved": "Supply approved", "button.supply-to-requested": "Supply requested", @@ -619,7 +620,6 @@ "label.contact-trace-status": "Status", "label.contact-tracing": "Contact Tracing", "label.contact-tracing-type": "Type of contact", - "label.reason-for-contacting": "Reason for contacting us", "label.context": "Context", "label.cost": "Cost", "label.cost-per-unit": "Cost per unit", @@ -930,6 +930,7 @@ "label.quantity-to-return": "Quantity to Return", "label.ratio": "Ratio", "label.reason": "Reason", + "label.reason-for-contacting": "Reason for contacting us", "label.record-stock-transaction": "Record stock transaction for past vaccination", "label.recorded-contact-differs": "Recorded Contact: {{recordedName}}", "label.reference": "Reference", @@ -1692,7 +1693,7 @@ "sync-status.pull-v6": "Pull V6", "sync-status.push": "Push", "sync-status.push-v6": "Push V6", - "table.select-unselect-all-columns": "Select / unselect all columns", + "table.select-unselect-all-rows": "Select / unselect all rows", "table.show-columns": "Show / hide columns", "template.requisition-sent": "Approved by {{name}}{{job}}. Email: {{email}} and Phone Number: {{phone}}.", "text.months": "Months", @@ -1720,4 +1721,4 @@ "warning.caps-lock": "Warning: Caps lock is on", "warning.field-not-parsed": "{{field}} not parsed", "warning.nothing-to-supply": "Nothing left to supply!" -} \ No newline at end of file +} diff --git a/client/packages/common/src/intl/locales/es/common.json b/client/packages/common/src/intl/locales/es/common.json index 11f333a0fa..76b44cf03f 100644 --- a/client/packages/common/src/intl/locales/es/common.json +++ b/client/packages/common/src/intl/locales/es/common.json @@ -37,6 +37,7 @@ "button.change-location": "Cambiar la ubicación de las líneas", "button.close": "Cerrar", "button.close-the-menu": "Cerrar el menú", + "button.continue": "Continuar", "button.create": "Crear", "button.create-a-new-one": "Crear uno nuevo", "button.create-log-reason": "Crear motivo de registro", @@ -49,6 +50,7 @@ "button.edit": "Editar", "button.edit-linked-patient": "Editar paciente vinculado", "button.export": "Exportar", + "button.hiv": "VIH", "button.import": "Importar", "button.import-fridge-tag": "Importar Fridge-tag", "button.import-properties": "Importar Propiedades", @@ -76,8 +78,10 @@ "button.order-more": "Pedir más", "button.previous": "Previo", "button.print": "Imprimir", + "button.print-asset-label": "Imprimir Etiqueta de Activo", "button.reduce-lines-to-zero": "Reducir líneas a 0", "button.refresh": "Actualizar", + "button.regimen": "Regimen", "button.remove-file": "Remover archivo", "button.repack": "Reempacar", "button.replenishment-return-lines": "Devolver líneas seleccionadas", @@ -89,6 +93,7 @@ "button.save-log": "Guardar registro", "button.scan": "Escanear", "button.select-a-color": "Seleccionar color", + "button.send": "Enviar", "button.stop": "Detener", "button.supply-to-approved": "Suministro aprobado", "button.supply-to-requested": "Suministro solicitado", @@ -169,6 +174,7 @@ "description.notification-preferences": "Por defecto, el sistema te informará si tienes menos de 3 o más de 6 meses de stock en el tablero de ontrol principal.", "description.number-of-shipments": "Número de envíos que se han creado de esta requisición", "description.our-soh": "Nuestras Existencias en Almacén", + "description.pack-cost": "Costo por paquete", "description.pack-quantity": "Cantidad total en número de paquetes", "description.program": "Los programas se utilizan para gestionar grupos de artículos y horarios de reposición.", "description.remaining-to-supply": "La cantidad pendiente por suministrar al cliente, que se recalculará después de crear un envío. El cálculo se realiza como 'Suministro - Enviado'.", @@ -191,6 +197,7 @@ "description.stock-on-hand": "Existencias Disponibles (Estimado restante)", "description.supply-quantity": "La cantidad que será suministrada por este almacén", "description.total": "Valor Total", + "description.total-cost": "Valor total del inventario disponible (costo por paquete por número de paquetes)", "description.unit-quantity": "Cantidad total en número de unidades", "discovery.body": "\"Para empezar, por favor selecciona el servidor al que deseas conectarte. \nUna vez seleccionado, nos conectaremos automáticamente si ese servidor está disponible, por lo que no tendrás que hacer esto de nuevo.\nEl icono 🏠 junto a un servidor te indica que este es tu ordenador local.", "discovery.heading": "Bienvenido", @@ -213,6 +220,7 @@ "error.cannot-add-pack-size-of-zero": "No se puede agregar una variante con un tamaño de paquete de cero", "error.cannot-add-with-no-abbreviation-and-name": "No se puede agregar una variante sin abreviatura y nombre", "error.cannot-backdate-prescription": "El inventario no está disponible en la fecha especificada", + "error.cannot-edit-requisition": "La Requisición no es editable.", "error.cant-save": "Hubo un problema al guardar.", "error.cce-asset-number-already-used": "El número del ativo CCE ya se encuentra en uso, por favor, use otro número", "error.code-no-match": "{{field}} no encontrado in el catálogo", @@ -272,12 +280,15 @@ "error.more-info": "Más información", "error.name-program-duplicate": "Ya existe un nombre de esquema de vacunación para este programa", "error.no-asset-create-permission": "No tienes el permiso para crear un nuevo activo.", + "error.no-asset-edit-permission": "No tienes permisos para editar activos.", + "error.no-asset-view-permission": "No tienes permisos para ver activos.", "error.no-customer-return-items": "No se han agregado artículos a esta devolución.", "error.no-customer-returns": "No hay Devoluciones de Cliente para mostrar.", "error.no-data": "No hay datos disponibles", "error.no-immunisation-programs": "No se encontraron programas de inmunización", "error.no-inbound-items": "No se han agregado elementos a este envío.", "error.no-inbound-shipments": "No hay entradas para mostrar.", + "error.no-indicators": "No hay indicadores para esta requisición", "error.no-internal-orders": "No hay ordenes internas para mostrar.", "error.no-items": "No hay artículos", "error.no-items-filter-on": "No hay elementos para mostrar. Intenta cambiar los criterios de filtro.", @@ -312,14 +323,20 @@ "error.not-editable": "Toma de inventario no editable.", "error.not-most-recent-given-dose": "Esta no es la vacunación más reciente. Por favor, edit la vacunación más reciente si no se ha aplicado una dosis.", "error.order-not-found": "Orden Interna no encontrada", + "error.ordering-too-many-items_one": "No puedes finalizar una orden de emergencia con más de {{ count }} artículo. Reduce el número de artículos e intenta de nuevo.", + "error.ordering-too-many-items_other": "No puedes finalizar una orden de emergencia con más de {{ count }} artículos. Reduce el número de artículos e intenta de nuevo.", + "error.other-party-not-a-supplier": "La otra parte no es un proveedor", + "error.other-party-not-visible": "La otra parte no es visible en este almacén", "error.pack-variant-exists": "Ya existe una variante de paquete con el mismo tamaño de paquete para este artículo", "error.plugin": "Hubo un error cargando el plugin {{name}}", "error.plugin-unavailable": "Plugin no disponible", "error.prescription-not-found": "Prescripción no encontrada.", + "error.printing-asset-label": "Error al imprimir la etiqueta de activo.", "error.problem-saving": "Ocurrió un error: hubo un problema al guardar los datos.", "error.program-already-exists": "Programa de inmunización ya existente", "error.provide-reason": "Se debe proporcionar un motivo para cualquier fila que tenga una diferencia en el número contado de paquetes.", "error.provide-valid-reason": "La razón del ajuste no coincide con la dirección del ajuste", + "error.reasons-not-provided-program-requisition": "Se deben proveer motivos cuando la cantidad sugeridas es diferente a la cantidad solicitada.", "error.record-already-exists": "Ya existe un registro con este id", "error.reduced-below-zero": "Inventario reservado en nuevas salidas o prescripciones. La cantidad no puede reducirse por debajo de cero.", "error.repack-cannot-be-fractional": "No se puede reempacar en un paquete fraccionario", @@ -378,6 +395,7 @@ "error.v6-server-not-configured": "Servidor central V6 no configurado", "error.v6-server-not-configured-hint": "Verifica la URL del servidor central", "error.vaccine-course-update-failed": "Error al guardar el esquema de vacunación", + "error.value-type-not-correct": "Tipo de valor incorrecto", "facilities": "Instalaciones", "filename.asset-categories": "categorías-de-activos", "filename.asset-import-example": "Ejemplo de importación de activos", @@ -421,6 +439,7 @@ "heading.configuration": "Configuración", "heading.confirm-finalise": "¿Estás seguro de que deseas finalizar?", "heading.consumption-history": "Historial de consumo (mensualmente)", + "heading.contact-us": "Contáctanos", "heading.create-new-asset": "Crear nuevo activo", "heading.create-outbound-shipment": "Crear Salida", "heading.create-vaccine-course": "Crear esquema de vacunación", @@ -485,8 +504,10 @@ "heading.transport-details": "Detalles de transporte", "heading.unable-to-print": "No se puede imprimir", "heading.upload-cce-documents": "Cargar documentos de los CCE", + "heading.user-guide": "Guía de usuario", "heading.user-sync": "Estado de Sincronización de Usuario", "heading.username": "Nombre de usuario", + "help": "Ayuda", "immunisations": "Inmunizaciones", "inbound-shipment": "Entradas", "indicators-demographics": "Demografía", @@ -504,6 +525,7 @@ "internal-order": "Ordenes Internas", "inventory": "Inventario", "inventory-addition": "Adición de inventario", + "inventory-adjustment": "Ajuste de inventario", "inventory-management": "Gestión de inventario", "inventory-reduction": "Reducción de inventario", "items": "Artículos", @@ -553,6 +575,7 @@ "label.available-packs": "Disponible (paquetes)", "label.available-quantity": "Cantidad disponible: {{number}} unidades", "label.available-quantity-for-return": "Cantidad Disponible para Devolución", + "label.balance": "Saldo", "label.barcode": "Código de Barras", "label.barcode-scanner-id": "ID de proveedor: {{vid}}, ID de producto: {{pid}}", "label.batch": "Lote", @@ -581,6 +604,7 @@ "label.clear-filter": "Limpiar filtro", "label.clear-selection": "Borrar selección", "label.click-to-sort": "Haz clic para ordenar por ", + "label.click-to-view": "Haz clic para ver detalles", "label.client": "Cliente", "label.clinician": "Clínico", "label.code": "Código", @@ -588,6 +612,7 @@ "label.cold-consecutive": "Cadena de frío consecutiva", "label.cold-cumulative": "Cadena de frío acumulada", "label.cold-storage-location": "Ubicación de almacenamiento en frío", + "label.cold-storage-type": "Tipo de almacenamiento en frío", "label.collapse": "Contraer", "label.collapse-all": "Contraer todo", "label.color": "Color", @@ -613,8 +638,10 @@ "label.create-log-reason": "Crear motivo de registro", "label.create-new-program": "Crear programa de inmunización", "label.create-pack-variant": "Crear variante de paquete", + "label.create-prescription": "Crear Prescripción", "label.created": "Creado", "label.created-datetime": "Fecha/hora de creación", + "label.created-datetime-UTC": "Fecha/hora de creación (UTC)", "label.cumulative": "Acumulado", "label.currency": "Moneda", "label.current": "Actual", @@ -629,6 +656,7 @@ "label.customer-soh": "Su Stock disponible (SOH)", "label.date": "Fecha", "label.date-created": "Fecha de creación", + "label.date-format": "DD/MM/AAAA", "label.date-given": "Fecha dada", "label.date-of-birth": "Fecha de nacimiento", "label.date-time": "Fecha y hora", @@ -666,6 +694,7 @@ "label.edit-store-properties": "Editar propiedades de almacén", "label.edit-variant": "Editar Variante", "label.edited-by": "Editado por", + "label.email": "Email", "label.encounter": "Encuentro", "label.encounter-end": "Finalizar", "label.encounter-id": "ID de encuentro", @@ -704,6 +733,7 @@ "label.fc-cost-price": "Costo en moneda extranjera", "label.fc-line-total": "Total en moneda extranjera", "label.fc-sell-price": "Precio de venta en moneda extranjera", + "label.feedback": "Retroalimentación", "label.filters": "Filtros", "label.finalise": "Finalizar", "label.finalised": "Finalizado", @@ -739,6 +769,7 @@ "label.incoming": "Entrante", "label.incoming-stock": "Inventario en camino", "label.increase-qty": "Aumentar cantidad", + "label.indicators": "Indicadores", "label.initial-stock-on-hand": "Inventario inicial disponible", "label.initialise-store-properties": "Inicializar propiedades del almacén para GAPS", "label.initialised": "Inicializado", @@ -761,6 +792,7 @@ "label.items-selected_one": "{{count}} artículo seleccionado", "label.items-selected_other": "{{count}} artículos seleccionados", "label.items-with-stock": "Artículos con Stock", + "label.job-title": "Título del puesto", "label.label": "Etiqueta", "label.last-name": "Apellido", "label.last-reading": "Última lectura", @@ -797,6 +829,7 @@ "label.mode": "Modo", "label.model": "Modelo", "label.modified-datetime": "Fecha / Hora modificada", + "label.modified-datetime-UTC": "Fecha/hora de modificación (UTC)", "label.monthly-consumption-look-back-period": "Historico de consumo mensual", "label.months": "meses", "label.months-abbreviation": "M", @@ -906,6 +939,7 @@ "label.quantity-to-return": "Cantidad a devolver", "label.ratio": "Proporción", "label.reason": "Razón", + "label.reason-for-contacting": "Motivo para contactarnos", "label.record-stock-transaction": "Registrar transacción de inventario para vacunación anterior", "label.recorded-contact-differs": "Contacto Registrado: {{recordedName}}", "label.reference": "Referencia", @@ -997,6 +1031,7 @@ "label.supplier-ref": "Referencia", "label.supply": "Suministrar", "label.supply-quantity": "Cantidad a suministrar", + "label.support": "Soporte", "label.systolic": "Sistólica", "label.target-demographic": "Población objetivo", "label.target-stock": "Inventario Objetivo", @@ -1015,6 +1050,7 @@ "label.today": "Hoy", "label.toggle-password-visibility": "Alternar visibilidad de contraseña", "label.total": "Total", + "label.total-before-tax": "Total antes de impuestos", "label.total-items_few": "Artículos totales", "label.total-items_many": "Artículos totales", "label.total-items_one": "Total de artículos", @@ -1047,6 +1083,7 @@ "label.upload-files": "Cargar archivos", "label.use-catalogue": "Usar catálogo de activos", "label.user": "Usuario", + "label.user-guide": "Ver la versión online (requiere conexión a internet)", "label.vaccination": "Vacunación", "label.vaccination-card": "Tarjeta de vacunación", "label.vaccination-cards": "Tarjetas de Vacunación", @@ -1074,6 +1111,7 @@ "label.website": "Sitio Web", "label.weight": "Peso", "label.years-abbreviation": "Y", + "label.your-email-address": "Tu dirección email", "link.copy-to-clipboard": "Copiar al Portapapeles", "loading": "Cargando…", "locations": "Ubicaciones", @@ -1163,6 +1201,7 @@ "messages.cannot-view-vaccine-card": "No puedes ver la tarjeta de vacunación de este paciente desde este almacén, porque fue inscrito en el {{ programName }} por otro almacén", "messages.cant-delete-generic": "No es posible eliminar uno o más de los elementos seleccionados", "messages.cant-delete-requisitions": "Solo se pueden eliminar solicitudes de compra con un estado de \"Borrador\"", + "messages.cant-download-android": "No se puede descartar el archivo en este dispositivo", "messages.cant-return-shipment": "No se puede procesar la devolución de las líneas hasta que el estado sea 'Enviado'", "messages.cant-return-shipment-replenishment": "No se pueden devolver las líneas hasta que el estado sea 'Entregado'", "messages.cant-send-order": "No se puede enviar la Orden interna porque no hay líneas", @@ -1257,6 +1296,10 @@ "messages.confirm-delete-vaccine-courses_other": "Esto eliminará permanentemente los {{count}} esquemas de vacunación seleccionados", "messages.confirm-finalise-rnr": "Esto marcará el formulario R&R como finalizado y generará una Orden Interna.", "messages.confirm-inbound-status-as": "¿Confirmar estado como $t({{status}})??", + "messages.confirm-not-fully-supplied_few": "Hay {{count}} líneas en esta requisición que no han sido completamente suministradas al cliente.\n\n¿Aún deseas continuar?", + "messages.confirm-not-fully-supplied_many": "Hay {{count}} líneas en esta requisición que no han sido completamente suministradas al cliente.\n\n¿Aún deseas continuar?", + "messages.confirm-not-fully-supplied_one": "Hay {{count}} línea en esta requisición que no han sido completamente suministrada al cliente.\n\n¿Aún deseas continuar?", + "messages.confirm-not-fully-supplied_other": "Hay {{count}} líneas en esta requisición que no han sido completamente suministradas al cliente.\n\n¿Aún deseas continuar?", "messages.confirm-patient-retrieval": "¿Estás seguro de que deseas recuperar los datos del paciente {{name}}?", "messages.confirm-reduce-lines-to-zero": "Esto reducirá la cantidad de todas las líneas seleccionadas del inventario a 0", "messages.confirm-remove-item": "¿Estás seguro?", @@ -1342,6 +1385,7 @@ "messages.error-generic_one": "{{count}} error", "messages.error-generic_other": "{{count}} errores", "messages.error-no-file-selected": "No se ha seleccionado ningún archivo", + "messages.error-not-valid-email": "Por favor ingresa una dirección email válida", "messages.error-saving-prescription": "Error al guardar la prescripción 🥺", "messages.error-saving-return": "Error al guardar la devolución 🥺", "messages.error-saving-shipment": "Error al guardar el envío 🥺", @@ -1374,6 +1418,8 @@ "messages.log-saved-successfully": "Registro guardado exitosamente", "messages.logout-confirm": "Esto te desconectará.", "messages.max-or-min-temperature": "Temperatura máxima / mínima", + "messages.message-not-sent": "¡Error! Tu mensaje no se envió", + "messages.message-sent": "¡Tu mensaje ha sido enviado exitosamente!", "messages.must-allocate-all-lines": "No se puede cambiar el estado hasta que todas las líneas hayan sido asignadas.", "messages.native-mode": "Selecciona el modo en el que deseas ejecutar. Ten en cuenta que puedes cambiar esta opción más tarde si tienes acceso de administrador.", "messages.native-mode-client": "Este modo le permite seleccionar a qué servidor conectarse.", @@ -1429,7 +1475,9 @@ "messages.patients-found_other": "Se encontraron {{count}} pacientes que coinciden con los detalles proporcionados", "messages.period-not-available": "No hay periodos disponibles", "messages.placeholder-allocated": "No hay suficiente stock disponible para asignar la cantidad solicitada. Se ha añadido un marcador de posición para {{placeholderQuantity}} unidades.", + "messages.prescription-created": "Prescripción #{{count}} creada", "messages.prescription-saved": "Prescripción guardada 🥳", + "messages.prescription-will-be-created": "La prescripción se creará cuando el formato sea guardado", "messages.properties-download-example": "Descargar una plantilla CSV", "messages.properties-template-download-text": " con las propiedades actuales de las instalaciones ", "messages.record-not-found": "Registro no encontrado", @@ -1459,6 +1507,7 @@ "messages.stock-expired": "Algunas líneas de stock han caducado y no serán asignadas automáticamente.", "messages.stock-line-saved": "Línea de inventario guardada 🥳", "messages.stock-on-hold": "Algunas líneas de stock están en espera y no se pueden asignar.", + "messages.success-printing-asset-label": "Etiqueta de inventario impresa exitosamente.", "messages.supply-to-approved": "¿Estás seguro de que deseas establecer la cantidad de suministro como aprobada para todas las líneas?", "messages.supply-to-requested": "¿Estás seguro de que quieres establecer la cantidad de suministro de todas las líneas en la cantidad solicitada?", "messages.temperature": "{{temperature}} °C", @@ -1519,11 +1568,13 @@ "reason.stored": "Almacenado", "reason.unknown": "Desconocido", "replenishment": "Rebastecimiento", + "report.AMC-lookback": "Período de retroceso de AMC", "report.actual": "Real", "report.actual-stock": "Stock real", "report.amc-12-months": "AMC (12 meses)", "report.amc-24-months": "AMC (24 meses)", "report.authorized-by": "Autorizado por", + "report.available-stock-on-hand": "Inventario disponible", "report.collected-by": "Alistado por", "report.comments": "Comentarios", "report.confirm-date": "Fecha de confirmación", @@ -1534,6 +1585,8 @@ "report.counted-packs": "Paquetes contados", "report.created-date": "Fecha de creación", "report.entered-code": "Código ingresado", + "report.entered-date": "Fecha ingresada", + "report.error-translating": "Error al generar la traducción para la clave {{key}}", "report.expected-usage": "Uso esperado", "report.expiring": "Vencimiento", "report.expiring-12-months": "Vence en 12 meses", @@ -1547,6 +1600,7 @@ "report.invoice-type": "Tipo de factura", "report.issued": "Emitido", "report.item-code": "Código de artículo", + "report.item-code-or-name": "Código o Nombre del artículo", "report.item-name": "Nombre del artículo", "report.line": "Línea", "report.months-cover": "Cobertura por meses", @@ -1572,10 +1626,15 @@ "report.sell-price": "Precio de venta", "report.shipped-date": "Fecha de envío", "report.snapshot-packs": "Instantánea de paquetes", + "report.sort-by": "Ordenado por", + "report.sort-direction": "Hacia", "report.stat": "Estadística", + "report.status": "Estado", "report.stock-at-risk": "Stock en riesgo", "report.stock-on-hand": "Inventario a la mano", "report.stock-on-order": "Inventario en proceso de pedido", + "report.stock-take-number": "Número de toma de inventario", + "report.stock-take-sheet": "Hoja de toma de inventario", "report.stock-take-variance-report": "Reporte de Variación de Inventario", "report.stocktake-number": "Número de toma de inventario", "report.stocktake-sheet": "Hoja de toma de inventario", @@ -1645,7 +1704,7 @@ "sync-status.pull-v6": "Obtener V6", "sync-status.push": "Sincronizar", "sync-status.push-v6": "Enviar V6", - "table.select-unselect-all-columns": "Seleccionar / deseleccionar todas las columnas", + "table.select-unselect-all-rows": "Seleccionar / deseleccionar todas las filas", "table.show-columns": "Mostrar / ocultar columnas", "template.requisition-sent": "Aprobado por {{name}}{{job}}. Correo electrónico: {{email}} y número de teléfono: {{phone}}.", "text.months": "Meses", @@ -1672,64 +1731,5 @@ "warning.cannot-create-placeholder-units": "Hay un total de {{allocatedQuantity}} unidades disponibles. No se pueden asignar las {{requestedQuantity}} unidades en su totalidad.", "warning.caps-lock": "Advertencia: Bloq Mayús está activado", "warning.field-not-parsed": "{{field}} no analizado", - "warning.nothing-to-supply": "¡No queda nada por suministrar!", - "messages.error-not-valid-email": "Por favor ingresa una dirección email válida", - "button.print-asset-label": "Imprimir Etiqueta de Activo", - "error.printing-asset-label": "Error al imprimir la etiqueta de activo.", - "inventory-adjustment": "Ajuste de inventario", - "button.continue": "Continuar", - "error.cannot-edit-requisition": "La Requisición no es editable.", - "error.ordering-too-many-items_one": "No puedes finalizar una orden de emergencia con más de {{ count }} artículo. Reduce el número de artículos e intenta de nuevo.", - "error.ordering-too-many-items_other": "No puedes finalizar una orden de emergencia con más de {{ count }} artículos. Reduce el número de artículos e intenta de nuevo.", - "error.other-party-not-a-supplier": "La otra parte no es un proveedor", - "error.other-party-not-visible": "La otra parte no es visible en este almacén", - "heading.user-guide": "Guía de usuario", - "label.balance": "Saldo", - "label.created-datetime-UTC": "Fecha/hora de creación (UTC)", - "label.reason-for-contacting": "Motivo para contactarnos", - "label.feedback": "Retroalimentación", - "label.support": "Soporte", - "label.user-guide": "Ver la versión online (requiere conexión a internet)", - "messages.cant-download-android": "No se puede descartar el archivo en este dispositivo", - "error.no-asset-edit-permission": "No tienes permisos para editar activos.", - "error.no-asset-view-permission": "No tienes permisos para ver activos.", - "report.available-stock-on-hand": "Inventario disponible", - "report.sort-by": "Ordenado por", - "report.status": "Estado", - "report.stock-take-number": "Número de toma de inventario", - "label.indicators": "Indicadores", - "label.modified-datetime-UTC": "Fecha/hora de modificación (UTC)", - "label.total-before-tax": "Total antes de impuestos", - "report.AMC-lookback": "Período de retroceso de AMC", - "report.item-code-or-name": "Código o Nombre del artículo", - "messages.prescription-will-be-created": "La prescripción se creará cuando el formato sea guardado", - "messages.success-printing-asset-label": "Etiqueta de inventario impresa exitosamente.", - "report.entered-date": "Fecha ingresada", - "report.stock-take-sheet": "Hoja de toma de inventario", - "button.hiv": "VIH", - "button.regimen": "Regimen", - "error.no-indicators": "No hay indicadores para esta requisición", - "error.reasons-not-provided-program-requisition": "Se deben proveer motivos cuando la cantidad sugeridas es diferente a la cantidad solicitada.", - "label.click-to-view": "Haz clic para ver detalles", - "label.create-prescription": "Crear Prescripción", - "label.date-format": "DD/MM/AAAA", - "label.cold-storage-type": "Tipo de almacenamiento en frío", - "label.email": "Email", - "label.job-title": "Título del puesto", - "messages.prescription-created": "Prescripción #{{count}} creada", - "report.error-translating": "Error al generar la traducción para la clave {{key}}", - "report.sort-direction": "Hacia", - "description.pack-cost": "Costo por paquete", - "description.total-cost": "Valor total del inventario disponible (costo por paquete por número de paquetes)", - "heading.contact-us": "Contáctanos", - "help": "Ayuda", - "messages.message-not-sent": "¡Error! Tu mensaje no se envió", - "button.send": "Enviar", - "error.value-type-not-correct": "Tipo de valor incorrecto", - "label.your-email-address": "Tu dirección email", - "messages.confirm-not-fully-supplied_few": "Hay {{count}} líneas en esta requisición que no han sido completamente suministradas al cliente.\n\n¿Aún deseas continuar?", - "messages.confirm-not-fully-supplied_many": "Hay {{count}} líneas en esta requisición que no han sido completamente suministradas al cliente.\n\n¿Aún deseas continuar?", - "messages.confirm-not-fully-supplied_one": "Hay {{count}} línea en esta requisición que no han sido completamente suministrada al cliente.\n\n¿Aún deseas continuar?", - "messages.confirm-not-fully-supplied_other": "Hay {{count}} líneas en esta requisición que no han sido completamente suministradas al cliente.\n\n¿Aún deseas continuar?", - "messages.message-sent": "¡Tu mensaje ha sido enviado exitosamente!" + "warning.nothing-to-supply": "¡No queda nada por suministrar!" } diff --git a/client/packages/common/src/intl/locales/fr/common.json b/client/packages/common/src/intl/locales/fr/common.json index 6fa54763f6..94cf993337 100644 --- a/client/packages/common/src/intl/locales/fr/common.json +++ b/client/packages/common/src/intl/locales/fr/common.json @@ -1672,7 +1672,7 @@ "sync-status.pull-v6": "Télécharger V6", "sync-status.push": "Envoi", "sync-status.push-v6": "Envoyer V6", - "table.select-unselect-all-columns": "Sélectionner / désélectionner toutes les colonnes", + "table.select-unselect-all-rows": "Sélectionner / désélectionner toutes les lignes", "table.show-columns": "Montrer / cacher les colonnes", "template.requisition-sent": "Autorisé par {{name}}{{job}}. Courriel: {{email}} et Téléphone: {{phone}}.", "text.months": "Mois", @@ -1700,4 +1700,4 @@ "warning.caps-lock": "Avertissement: Verrouillage majuscule activé", "warning.field-not-parsed": "{{field}} non analysé", "warning.nothing-to-supply": "La quantité demandée à été fournie !" -} \ No newline at end of file +} diff --git a/client/packages/common/src/intl/locales/ru/common.json b/client/packages/common/src/intl/locales/ru/common.json index a9dfe317eb..821af6e8ee 100644 --- a/client/packages/common/src/intl/locales/ru/common.json +++ b/client/packages/common/src/intl/locales/ru/common.json @@ -63,6 +63,7 @@ "button.new-outbound-shipment": "Новая Исходящая Доставка", "button.new-patient": "Новый Пациент", "button.new-prescription": "Новый Рецепт", + "button.new-requisition": "Новая Заявка на закупку", "button.new-return": "Новый Возврат", "button.new-shipment": "Новая Поставка", "button.new-stock": "Новые Запасы", @@ -76,6 +77,7 @@ "button.refresh": "Обновить", "button.remove-file": "Удалить файл", "button.repack": "Переупаковать", + "button.replenishment-return-lines": "Вернуть выбранные строки", "button.requested-to-suggested": "Использовать Рекомендуемые Количества", "button.retry": "Повторить попытку", "button.return-lines": "Обработать возврат выбранных строк", @@ -96,6 +98,7 @@ "button.view": "Просмотреть", "button.view-all-breaches": "Посмотреть все нарушения", "button.view-details": "Посмотреть Детали", + "button.view-prescription": "Просмотреть рецепт", "button.zero-line-quantity": "Установить количество на 0", "catalogue": "Каталог", "cmdk.drawer-toggle": "Выпадающее меню", @@ -116,6 +119,8 @@ "cmdk.goto-stock": "Перейти к: Запасы", "cmdk.goto-stocktakes": "Перейти к: Переучёты", "cmdk.goto-suppliers": "Перейти к: Поставщики", + "cmdk.more-info-close": "Закрыть панель дополнительной информации", + "cmdk.more-info-open": "Открыть панель дополнительной информации", "cmdk.placeholder": "Введите команду или выполните поиск", "cold-chain": "Холодильная цепь", "contact-trace": "Отслеживание Контактов", @@ -131,6 +136,8 @@ "control.search.reset-button": "Отвязать сопоставленного пациента", "control.search.searching-label": "Поиск...", "customer-requisition": "Заявки на Закупку", + "customer-return": "Возврат Клиента", + "customer-returns": "Возвраты Клиента", "customers": "Клиенты", "dashboard": "Приборная Панель", "description-last-reading-datetime": "Дата и время последнего считывания", @@ -142,6 +149,7 @@ "description.customer-soh": "Клиентские Запасы в Наличии", "description.default-pack-size": "Размер упаковки по умолчанию", "description.entered": "Дата создания", + "description.expiry": "Ближайшая дата истечения срока годности имеющихся в наличии запасов", "description.fc-cost-price": "Себестоимость в иностранной валюте за упаковку", "description.fc-line-total": "Итого по строке в иностранной валюте", "description.fc-sell-price": "Цена продажи в иностранной валюте за упаковку", @@ -157,6 +165,19 @@ "description.program": "Программы используются для управления группами товаров и графиками пополнения запасов.", "description.remaining-to-supply": "Количество, оставшееся для поставки клиенту, которое будет пересчитано после создания партии. Расчет производится по формуле 'Поставка - Выдано'.", "description.requested-quantity": "Количество, запрашиваемое клиентом", + "description.rnr-adjustments": "Корректировки, сделанные для данного товара за этот период (через Инвентаризацию или Корректировку Запасов)", + "description.rnr-amc": "Среднемесячно Потребление рассчитывается по Скорректированному значению потребления с использованием данной формы О&З и двух предыдущих, если таковые имеются", + "description.rnr-approved-quantity": "Количество, утвержденное для заказа. Заполняется после завершения и авторизации формы О&З.", + "description.rnr-consumed": "Количество данного товара, распределенное за этот период (через Исходящие Поставки или по Рецептам)", + "description.rnr-consumed-adjusted": "Показывает расход, скорректированный с учетом дней отсутствия запасов. = (Потреблено x 30)/(30 - Продолжительность отсутствия запасов)", + "description.rnr-final-balance": "Уровень запасов на конец периода. = Начальный остаток + Поступило - Израсходовано ± Корректировки", + "description.rnr-initial-balance": "Запасы на начало периода. Этот показатель берется из предыдущей формы О&З, если таковая имеется, или рассчитывается с использованием запасов в наличии на дату начала периода.", + "description.rnr-losses": "Вручную регистрировать убытки по товару в течение этого периода", + "description.rnr-low-stock": "! = Конечный баланс составляет менее половины от Максимального, !! = меньше четверти", + "description.rnr-maximum-quantity": "Целевое количество запасов, которое необходимо иметь в наличии = Среднемесячное Потребление x Предпочтение 'Порог для Избыточного Запаса' хранилища", + "description.rnr-minimum-quantity": "Минимальное количество запасов, которое необходимо иметь в наличии = Среднемесячное Потребление x Предпочтение 'Порог для снабжения Недостаточного количества' хранилища", + "description.rnr-received": "Количество данного товара, полученное за этот период (через Входящие Поставки)", + "description.rnr-requested-quantity": "Количество, которое необходимо заказать. = Максимальное количество - Конечный остаток", "description.snapshot-num-of-packs": "Количество Упаковок на данный момент", "description.soh": "Запасы в Наличии", "description.stock-on-hand": "Запасы в Наличии (оценка остатка)", @@ -183,6 +204,7 @@ "error.batch-is-reserved": "Партия уже зарезервирована/выпущена", "error.cannot-add-pack-size-of-zero": "Невозможно добавить вариант с нулевым объемом упаковки", "error.cannot-add-with-no-abbreviation-and-name": "Невозможно добавить вариант без аббревиатуры и названия", + "error.cannot-backdate-prescription": "Запасы не доступны в указанную дату", "error.cant-save": "Возникла проблема при сохранении.", "error.cce-asset-number-already-used": "Номер ресурса Холодильного Оборудования уже используется, пожалуйста, используйте другой номер", "error.code-no-match": "{{field}} не найдено в каталоге", @@ -197,6 +219,7 @@ "error.date_invalidDate": "Значение даты недействительно", "error.date_maxDate": "Слишком большое значение даты", "error.date_minDate": "Слишком маленькое значение даты", + "error.dose-ages-out-of-order": "Для каждой дозы требуется минимальный возраст выше, чем для предыдущей дозы", "error.duplicate-asset-number": "Дублированный ресурсный номер в CSV", "error.duplicated-field": "{{field}} уже существует в файле импорта", "error.encounter-not-created": "Невозможно создать встречу", @@ -209,6 +232,7 @@ "error.failed-to-generate-excel": "Не удалось создать Excel", "error.failed-to-generate-report": "Не удалось создать отчет", "error.failed-to-save-service-charges": "Не удалось сохранить плату за обслуживание", + "error.failed-to-save-vaccination": "Не удалось сохранить прививку!", "error.failed-to-save-vaccine-course": "Не удалось сохранить курс вакцинации", "error.fetch-notifications": "Невозможно отобразить уведомления холодовой цепи", "error.field-must-be-specified": "{{field}} должно быть указано", @@ -227,11 +251,16 @@ "error.json-bad-format-with-examples": "Неправильный формат. Используйте: \"{{examples}}\"", "error.label-printer-not-configured": "Принтер этикеток не настроен. Чтобы настроить принтер этикеток, перейдите в раздел Администратор > Устройства.", "error.login": "Неверное имя пользователя или пароль", + "error.login-support": "Пожалуйста, свяжитесь с support@msupply.foundation, если вы не можете войти в свой аккаунт", "error.manufacturer-model-unique": "Товар с данным производителем и моделью уже существует", "error.master-list-not-found": "Главный список не найден", + "error.missing-central-sync": "Не удалось связаться с центральным сервером mSupply", "error.missing-inputs": "{{count}}", + "error.more-info": "Дополнительная информация", "error.name-program-duplicate": "Название курса вакцинации уже существует для этой программы", "error.no-asset-create-permission": "У вас нет разрешения на создание нового ресурса.", + "error.no-customer-return-items": "В этот возврат не добавлено ни одного товара.", + "error.no-customer-returns": "Нет Возвратов Клиентов для отображения.", "error.no-data": "Данные отсутствуют", "error.no-immunisation-programs": "Программы Иммунизации не найдены", "error.no-inbound-items": "В эту партию не добавлено ни одного товара.", @@ -241,6 +270,7 @@ "error.no-items-filter-on": "Нет товаров для отображения. Попробуйте изменить критерии фильтра.", "error.no-items-to-display": "Нет товаров для отображения.", "error.no-locations": "Нет Локаций для отображения.", + "error.no-master-list": "Этот товар не включен в основной список - пожалуйста, обратитесь к администратору, если это ошибка. Обратите внимание, что товар может быть виден, если он имеется в наличии, даже если он не в списке.", "error.no-master-lists": "Нет Главных Списков для отображения.", "error.no-matching-asset": "Холодильное Оборудование не найдено с идентификатором: {{id}}", "error.no-matching-item": "Не найдено ни одного подходящего товара", @@ -263,9 +293,12 @@ "error.no-stock": "Нет запасов для отображения.", "error.no-stocktake-items": "К этой инвентаризации не добавлено ни одного товара.", "error.no-stocktakes": "Нет Учётов для отображения.", + "error.no-supplier-returns": "Нет Возвратов Поставщиков для отображения.", "error.no-temperature-breaches": "Нарушений температурного режима не обнаружено", "error.no-temperature-logs": "Журналы температуры не найдены", "error.not-editable": "Учёт не подлежит редактированию.", + "error.not-most-recent-given-dose": "Это не самая последняя прививка. Пожалуйста, отредактируйте последнюю прививку, если доза не была введена.", + "error.order-not-found": "Внутренний Заказ не найден", "error.pack-variant-exists": "Вариант упаковки с таким же размером уже существует для товара", "error.plugin": "Произошла ошибка при загрузке плагина {{name}}", "error.plugin-unavailable": "Плагин недоступен", @@ -292,10 +325,12 @@ "error.site-incorrect-password": "Неправильный пароль", "error.site-mismatch": "Несоответствие сайтов", "error.site-name-not-found": "Имя сайта не найдено", + "error.snapshot-total-mismatch": "Количество запасов теперь отличается от того, что было в начале инвентаризации, поскольку часть запасов была выдана в виде исходящих поставок или рецептов. Пожалуйста, удалите строку и повторите попытку.", "error.soh-and-suggested-quantity-are-zero": "Отсутствие значений Запасов в Наличии или Рекомендуемых Количеств", "error.something-wrong": "Упс! Что-то пошло не так.", "error.stocktake-has-stock-reduced-below-zero": "Инвентаризация не может быть завершена, поскольку часть запасов была использована в новых исходящих поставках.", "error.stocktake-not-found": "Учёт не найден", + "error.stocktake-snapshot-total-mismatch": "Инвентаризация не может быть завершена. Количество запасов теперь отличается от того, что было в начале инвентаризации, поскольку часть запасов была выдана в виде исходящих поставок или рецептов. Пожалуйста, удалите строку и повторите попытку.", "error.sync-api-incompatible": "Версия API синхронизации несовместима", "error.sync-api-incompatible-hint": "Необходимо обновить mSupply Центральный Сервер до более новой версии - пожалуйста, свяжитесь с support@msupply.foundation", "error.sync-v6-api-incompatible": "Версия API Sync V6 несовместима", @@ -335,6 +370,7 @@ "filename.cce": "шаблон загрузки оборудования", "filename.cce-failed-uploads": "Не удалось загрузить ресурсы", "filename.cold-chain-equipment": "холодильное-оборудование", + "filename.customer-returns": "возвраты-клиентов", "filename.facilities-properties": "импорт-свойств-объектов", "filename.failed-import-rows": "Ошибочные Строки Импорта", "filename.inbounds": "входящие-поставки", @@ -347,6 +383,7 @@ "filename.responses": "заявки-на-закупку", "filename.stock": "запас", "filename.stocktakes": "инвентаризации", + "filename.supplier-returns": "возвраты-поставщиков", "format.comment": "Подтверждено пользователем {{name}} {{date}}: {{comment}}.", "heading.404": "Вы не можете что-то найти?", "heading.acknowledgeBreach": "Подтвердить Нарушение", @@ -357,6 +394,7 @@ "heading.are-you-sure": "Вы уверены?", "heading.asset-identification": "Идентификация Ресурса", "heading.barcode-scanners": "Сканеры штрих-кода", + "heading.between-datetimes": "Между датами", "heading.breach": "Нарушение", "heading.cannot-do-that": "Невозможно совершить это действие!", "heading.charges": "Сборы", @@ -390,11 +428,14 @@ "heading.history": "История", "heading.import-cold-chain-equipment": "Импортировать ресурсы", "heading.invoice-details": "Детали Счета", + "heading.invoice-lines-report-item": "Строки накладной с товарами, содержащими", "heading.item-sell-price": "Цена продажи товаров", "heading.logout-confirm": "Вы уверены?", "heading.notification-preferences": "Настройки уведомлений", "heading.order": "Заказ", + "heading.order-info": "Информация о заказе", "heading.password": "Пароль", + "heading.program-info": "Информация о программе", "heading.rate": "Тариф", "heading.reference": "Ссылка", "heading.related-documents": "Сопутствующие документы", @@ -435,8 +476,10 @@ "info.automatic-return-no-edit": "Вы не можете редактировать детали, пока статус не будет подтвержден как Доставлено.", "info.automatic-shipment": "Эта поставка была создана автоматически, как результат Исходящей Поставки в другом хранилище.", "info.automatic-shipment-no-edit": "Вы не сможете редактировать детали до тех пор, пока статус не будет подтвержден как Доставлено.", + "info.cannot-edit-program-requisition": "Невозможно редактировать поставщика, изменить пороговый Месячный Запас (МЗ), целевой МЗ или добавить товары в заявке на программу.", "info.manual-return": "Этот возврат был создан вручную. Статус доставки не будет обновляться автоматически.", "info.manual-shipment": "Эта поставка была создана вручную. Статус доставки не будет обновляться автоматически.", + "info.no-shipment": "Завершение этой заявки не позволит вам создать для нее поставку.", "info.server-restarting": "Сервер перезагружается...", "initialise.body": "Чтобы начать работу, нам нужно настроить параметры для синхронизации с mSupply. Пожалуйста, введите значения и нажмите кнопку Сохранить.\n\nЕсли вы не уверены в том, что нужно вводить, обратитесь на support@msupply.foundation.", "initialise.heading": "Добро пожаловать!", @@ -451,22 +494,29 @@ "label.actions": "Действия", "label.add-another": "Добавить еще", "label.add-batch": "Добавить партию", + "label.add-charge": "Добавить плату", "label.add-charges": "Добавить плату", "label.add-new-line": "Добавить новую строку", "label.add-new-vaccine-course": "Добавить курс вакцинации", + "label.add-variant": "Добавить вариант", "label.additional-info": "Дополнительная Информация", "label.address": "Адрес", "label.adjust": "Откорректировать", "label.adjust-by": "на", + "label.adjusted": "Скорректировано", "label.age": "Возраст", "label.age-days_one": "{{count}} день", "label.age-days_other": "{{count}} дней", "label.age-months-and_one": "{{count}} месяц, ", "label.age-months-and_other": "{{count}} месяцев, ", - "label.other-requested-quantity": "Другие запрашиваемые", + "label.age-months-count_one": "{{count}} месяц", + "label.age-months-count_other": "{{count}} месяцев", + "label.age-years_one": "{{count}} год", + "label.age-years_other": "{{count}} лет", "label.allocated": "Выделено", "label.already-issued": "Выдано", "label.amc": "Среднее Месячное Потребление", + "label.amc/amd": "Среднемесячное Потребление/Среднемесячное Распределение", "label.amount": "Количество", "label.any": "Любой", "label.app-version": "Версия:", @@ -478,6 +528,7 @@ "label.asset-properties": "Свойства Ресурса", "label.atc-category": "Категория анатомо-терапевтическо-химической классификации (Категория АТХ)", "label.auth-status": "Статус Утверждения", + "label.available-batches": "Доступные партии", "label.available-packs": "Доступные (упаковки)", "label.available-quantity": "Доступное количество: {{number}} единиц", "label.available-quantity-for-return": "Количество, доступное для возврата", @@ -526,11 +577,14 @@ "label.contact": "Контакт", "label.contact-patient": "Контактный Пациент", "label.contact-trace-status": "Статус", + "label.contact-tracing": "Контактное Отслеживание", "label.contact-tracing-type": "Тип контакта", "label.context": "Контекст", "label.cost": "Стоимость", + "label.cost-per-unit": "Стоимость за единицу", "label.cost-price": "Себестоимость", "label.count-this-line": "Посчитать эту строку", + "label.counted-num-of-packs": "Подсчитанное Количество", "label.country": "Страна", "label.coverage-rate": "Уровень покрытия", "label.create": "Создать", @@ -547,12 +601,14 @@ "label.current-population": "Текущее население", "label.current-status": "Текущий Статус", "label.custom": "Пользовательское:", + "label.custom-age-label": "Индивидуальная этикетка возраста", "label.customer": "Клиент", "label.customer-name": "Имя Клиента", "label.customer-ref": "Номер Клиента", "label.customer-soh": "Их запас в наличии", "label.date": "Дата", "label.date-created": "Дата Создания", + "label.date-given": "Дата выдачи", "label.date-of-birth": "Дата Рождения", "label.date-time": "Дата время", "label.day": "день", @@ -570,11 +626,13 @@ "label.difference": "Разница", "label.direction": "Направление регулировки", "label.directions": "Направления", + "label.document-edit-history": "История Редактирования Документа", "label.documents": "Документы", "label.donor": "Донор", "label.dose": "Доза", "label.dose-number": "Доза #", "label.doses": "Дозы", + "label.doses-per-unit": "Дозы на единицу", "label.download-database": "Скачать Базу Данных", "label.dps": "Размер Упаковки по Умолчанию", "label.draft": "Черновик", @@ -607,6 +665,7 @@ "label.entered-on": "Введено", "label.error-message": "Ошибка", "label.event": "Событие", + "label.exit": "Выход", "label.expand": "Расширить", "label.expand-all": "Расширить все", "label.expired_few": "Просроченные партии", @@ -634,6 +693,7 @@ "label.from-datetime": "С даты/ времени", "label.from-expiry": "С момента окончания срока действия", "label.from-start-datetime": "С даты / времени начала", + "label.full-screen": "Полный экран", "label.functional-status": "Функциональный статус", "label.gender": "Пол", "label.general": "Общее", @@ -683,6 +743,7 @@ "label.last-record": "Дата/время последней записи", "label.last-recording-value": "Последнее значение записи температуры", "label.last-updated": "Последний раз обновлено", + "label.lead-time": "Время выполнения (Месяца)", "label.ledger": "Реестр", "label.level": "Уровень", "label.line": "Строка {{line, number}}", @@ -692,6 +753,8 @@ "label.location": "Локация", "label.locked": "Заблокировано", "label.log": "Журнал", + "label.losses": "Убытки", + "label.low-stock": "Низкий запас", "label.low-stock-items_few": "Товара с запасом менее 3 месяцев", "label.low-stock-items_many": "Товаров с запасом менее 3 месяцев", "label.low-stock-items_one": "Товар с запасом менее 3 месяцев", @@ -712,6 +775,7 @@ "label.modified-datetime": "Дата / время изменений", "label.monthly-consumption-look-back-period": "Анализ ежемесячного потребления", "label.months": "месяца", + "label.months-abbreviation": "М", "label.months-of-stock": "Месячные Запасы", "label.months_few": "месяца", "label.months_many": "месяцев", @@ -740,9 +804,11 @@ "label.new-rnr-form": "Новая О&З Форма", "label.new-row": "Новый Ряд", "label.new-stocktake": "Новая Инвентаризация", + "label.no-reason": "Нет причины", "label.no-unallocated-rows-selected": "Все выбранные строки уже распределены", "label.non-catalogue": "Некаталожный", "label.not-sent": "Не отправлено", + "label.not-set": "Не задано", "label.note": "Примечание", "label.notes": "Заметки", "label.num-packs": "Количество Упаковок", @@ -760,12 +826,17 @@ "label.order-history": "История Заказов", "label.order-quantity": "Запрошенное количество", "label.order-type": "Тип Заказа", + "label.other-facility": "Другой объект", + "label.other-requested-quantity": "Другие запрашиваемые", "label.our-soh": "Наши Запасы в Наличии", + "label.out-of-stock": "Нет в наличии", "label.outbound-shipment": "Исходящая поставка", "label.outer-pack-size": "Размер внешней упаковки", "label.pack": "Упаковка", + "label.pack-cost-price": "Себестоимость упаковки", "label.pack-quantity": "Количество Упаковок", "label.pack-quantity-issued": "Количество Выпущенных Упаковок", + "label.pack-sell-price": "Упаковочная цена продажи", "label.pack-size": "Размер Упаковки", "label.pack-variants": "Варианты Упаковок", "label.packs": "Упаковки", @@ -801,21 +872,35 @@ "label.quantity-returned": "Возвращенное Количество", "label.quantity-to-return": "Количество для Возврата", "label.reason": "Причина", + "label.record-stock-transaction": "Регистрировать товарную транзакцию для прошлой прививки", "label.recorded-contact-differs": "Записанный Контакт: {{recordedName}}", "label.reference": "Номер", + "label.refused": "Отказался", "label.relationship": "Связь", "label.remaining-to-supply": "Осталось", "label.remove": "Убрать", "label.remove-all-filters": "Убрать все фильтры", "label.repack": "Переупаковать", "label.replacement-date": "Срок замены", + "label.report-filters": "Фильтры Отчетов", + "label.requested": "Запрошено", "label.requested-number-packs": "Запрошенное кол-во упаковок (примерно)", "label.requested-packs": "Запрошенные упаковки", "label.requested-quantity": "Запрошенное количество", "label.requisition": "Заявка на закупку", "label.requisition-general": "Общее", "label.requisition-program": "Программа", + "label.revert-existing-transaction": "Вернуть существующую товарную транзакцию", "label.review": "Проверка", + "label.rnr-adjustments": "Корректировки +/-", + "label.rnr-consumed": "Потреблено / распределено", + "label.rnr-consumed-adjusted": "Скорректированное потребление /распределение", + "label.rnr-final-balance": "Итоговый баланс", + "label.rnr-initial-balance": "Первоначальный баланс", + "label.rnr-maximum-quantity": "Максимум", + "label.rnr-minimum-quantity": "Минимум", + "label.rnr-received": "Получено", + "label.rnr-stock-out-duration": "Продолжительность отсутствия запасов", "label.rows-per-page": "Строк на стр:", "label.rtmd": "mSupply", "label.save-log": "Сохранить запись в файл", @@ -823,6 +908,7 @@ "label.search-results": "Результаты Поиска", "label.select": "Выбрать", "label.select-all": "Выбрать все", + "label.select-batch": "Выбрать партию", "label.select-quantity": "Выбрать количество", "label.select-rows-to-allocate-them": "Выберите строки, чтобы распределить их", "label.selected": "Выбрано", @@ -833,18 +919,27 @@ "label.sent": "Отправлено", "label.serial": "Серийный номер", "label.server": "Сервер", + "label.server-log": "Журнал сервера", + "label.settings-central-site-id": "ID Участка Центрального сервера", "label.settings-interval": "Интервал (секунд)", "label.settings-password": "Пароль", + "label.settings-site-id": "ID участка", + "label.settings-url": "URL Центрального сервера", + "label.settings-username": "Наименование участка", "label.shipment": "Поставка", "label.shipment-created": "Поставка создана", "label.shipments": "Отправки", "label.shipped": "Отправлено", "label.showing": "Показано", "label.site": "Сайт:", + "label.snapshot-num-of-packs": "Упаковки на данный момент", "label.soh": "Запасы в Наличии", "label.start-datetime": "Начало дата / время", "label.status": "Статус", "label.status-given": "Поставлена", + "label.status-late": "Просрочено", + "label.status-not-given": "Не выдано", + "label.status-pending": "В ожидании", "label.statushistory": "История статуса", "label.stock-level": "Уровень запасов", "label.stock-on-hand": "Запасы в Наличии", @@ -855,6 +950,7 @@ "label.stocktake-frequency": "Частота инвентаризации", "label.store": "Хранилище", "label.strength": "Прочность", + "label.sub-catalogue": "Суб-каталог", "label.suggested": "Рекомендуемое", "label.suggested-date": "Рекомендуемая дата", "label.suggested-order-quantity": "Рекомендуемое Количество Заказа", @@ -863,6 +959,7 @@ "label.supplier": "Поставщик", "label.supplier-name": "Наименование Поставщика", "label.supplier-ref": "Номер", + "label.supply": "Поставка", "label.supply-quantity": "Количество для поставки", "label.systolic": "Систолическое", "label.target-demographic": "Целевая Демографическая Группа", @@ -874,8 +971,12 @@ "label.threshold-for-understock": "Порог недозапаса", "label.time": "Время", "label.to-age": "До (возраст)", + "label.to-created-datetime": "К дате/времени создания", + "label.to-datetime": "К дате/времени", "label.to-expiry": "До истечения срока действия", + "label.to-start-datetime": "К дате/времени начала", "label.today": "Сегодня", + "label.toggle-password-visibility": "Переключить видимость пароля", "label.total": "Итого", "label.total-items_few": "Итого товара", "label.total-items_many": "Итого товаров", @@ -885,8 +986,14 @@ "label.trace-status-done": "Выполнено", "label.trace-status-pending": "В ожидании", "label.type": "Тип", + "label.type-end": "Конец нарушения", + "label.type-start": "Начало нарушения", "label.unacknowledged": "Непризнанное", "label.unit": "Единица", + "label.unit-plural_few": "{{unit}}", + "label.unit-plural_many": "{{unit}}", + "label.unit-plural_one": "{{unit}}", + "label.unit-plural_other": "{{unit}}", "label.unit-price": "Цена единицы", "label.unit-quantity": "Кол-во единиц", "label.unit-quantity-issued": "{{unit}} единиц выпущено", @@ -898,13 +1005,23 @@ "label.units-plural_other": "единиц", "label.universal-code": "Универсальный код", "label.universal-name": "Универсальное наименование", + "label.update-transactions": "Обновить товарные транзакции", "label.upload": "Загрузить", "label.upload-files": "Загрузить файлы", "label.use-catalogue": "Использовать каталог ресурсов", "label.user": "Пользователь", + "label.vaccination": "Прививка", + "label.vaccination-card": "Прививочная Карта", "label.vaccination-cards": "Прививочные Карты", + "label.vaccinations": "Прививки", "label.vaccine-courses": "Курсы вакцинации", + "label.vaccine-given": "Вакцина введена", + "label.vaccine-item": "Артикул вакцины", "label.vaccine-items": "Артикулы вакцины", + "label.vaccine-not-given": "Вакцина не введена", + "label.variant": "Вариант", + "label.variants": "Варианты", + "label.ven": "ЖВНВ (Жизненно Важные, Необходимые и Второстепенные)", "label.verified": "Утверждено", "label.visit-date": "Дата Посещения", "label.visit-end": "Конец", @@ -912,12 +1029,14 @@ "label.visit-start": "Старт", "label.volume-per-outer-pack": "Объем на одну внешнюю упаковку", "label.volume-per-pack": "Объем на одну упаковку", + "label.volume-per-unit": "Объем на единицу", "label.warning-message": "Предупреждение", "label.warranty-end-date": "Окончание гарантии", "label.warranty-start-date": "Начало гарантии", "label.wastage-rate": "Уровень отходов", "label.website": "Веб-сайт", "label.weight": "Вес", + "label.years-abbreviation": "Г", "link.copy-to-clipboard": "Скопировать", "loading": "Идет загрузка…", "locations": "Локации", @@ -926,6 +1045,7 @@ "log.changed-to": "До", "log.invoice-created": "Создано", "log.invoice-deleted": "Удалено", + "log.invoice-number-allocated": "Выделенное количество", "log.invoice-status-allocated": "Статус изменен на Распределено", "log.invoice-status-delivered": "Статус изменен на Доставлено", "log.invoice-status-picked": "Статус изменен на Собрано", @@ -939,6 +1059,7 @@ "log.requisition-created": "Заявка на закупку создана", "log.requisition-deleted": "Заявка на закупку удалена", "log.requisition-number-allocated": "Заявка на закупку распределена", + "log.requisition-status-finalised": "Заявка на закупку завершена", "log.requisition-status-sent": "Заявка на закупку отправлена", "log.stock-batch-change": "Партия изменена", "log.stock-cost-price-change": "Себестоимость изменена", @@ -958,10 +1079,18 @@ "logout": "Выйти", "manage": "Управлять", "master-lists": "Главные Списки", + "message.add-a-dose": "Дозы пока не настроены. Нажмите кнопку «+ Доза», чтобы добавить дозу.", + "message.all-lines-have-been-fulfilled": "Все линии этой заявки с указанным количеством поставок уже имеют соответствующую линию отгрузки.", + "message.all-lines-have-no-supply-quantity": "Для всех невыполненных строк этой заявки не указан объем поставки. Укажите количество поставки хотя бы для одной строки.", "message.already-saving": "Уже сохраняется...", + "message.arguments": "Вы можете настроить то, что отображается в отчете, указав некоторые дополнительные сведения ниже. Нажмите ОК, чтобы просмотреть отчет.", "message.coming-soon": "Скоро будет...", "message.confirm-delete-encounter": "Уверены?", + "message.contact-support": "По вопросам настройки отчетов, свяжитесь с support@msupply.foundation", "message.copy-success": "Скопировано успешно", + "message.database-not-local": "База данных запущена на сервере, поэтому её нельзя загрузить здесь", + "message.database-not-sqlite": "Загрузка базы данных доступна только для баз данных SQLite", + "message.failed-to-create-requisition": "Не удалось создать заявку!", "message.no-supplier": "Корректировка Инвентаря", "message.nothing-to-copy": "Нечего скопировать", "message.nothing-to-save": "Нечего сохранить", @@ -970,6 +1099,8 @@ "messages": "Сообщения", "messages.acknowledge-breach-helptext": "Введите комментарий и нажмите ОК, чтобы подтвердить нарушение.", "messages.ago": "{{time}} назад", + "messages.alert-zero-return-quantity": "Пожалуйста, добавьте некоторое количество товаров для возврата, прежде чем переходить к следующему шагу", + "messages.all-changes-must-be-confirmed": "У вас есть несколько строк с несохраненными изменениями. Отметьте эти строки как подтвержденные для завершения работы.", "messages.all-lines-must-be-confirmed": "Все линии должны быть подтверждены, прежде чем форма О&З может быть завершена", "messages.all-packs-repacked": "Все запасы были переупакованы, и эта строка запасов больше не будет отображаться в списке. Нажмите ОК, чтобы перейти к новой строке запаса.", "messages.allocated-lines-failed_few": "{{count}} строки не распределено", @@ -988,28 +1119,38 @@ "messages.breach-ongoing": "Это нарушение продолжается и не может быть признано до тех пор, пока оно не закончится.", "messages.by-user": "{{username}}", "messages.cannot-delete-multiple-lines": "1 или более строк не может быть удалена", + "messages.cannot-view-vaccine-card": "Вы не можете просмотреть Прививочную Карту этого пациента из этого участка, потому что он был зачислен в {{ programName }} на другом участке", "messages.cant-delete-generic": "Вы не можете удалить выбранные товары", "messages.cant-delete-requisitions": "Удалять заявки на закупку можно только со статусом 'Черновик'", + "messages.cant-return-shipment": "Невозможно обработать возврат строк, пока статус не станет «Отправлено»", + "messages.cant-return-shipment-replenishment": "Невозможно вернуть строки, пока статус не станет «Доставлено»", "messages.cant-send-order": "Невозможно отправить Внутренний Заказ, поскольку нет строк или есть только строки-заполнители", "messages.catalogue-property": "Это свойство определено в каталоге", "messages.cce-created": "Холодильное оборудование успешно создано", "messages.change-server": "Сменить сервер", "messages.changed-location_one": "Локация изменена для 1 строки", "messages.changed-location_other": "Локация изменена для {{ count }} строк", + "messages.changing-max-mos": "Это изменит целевые месяцы запасов.", + "messages.changing-min-mos": "Это изменит порог перезаказа на месяцы запасов.", "messages.click-to-expand": "Нажмите для раскрытия", "messages.click-to-fetch": "Нажмите, чтобы получить запись пациента с центрального сервера", "messages.click-to-return": "Невозможно найти инвентаризацию с таким идентификатором. Нажмите OK, чтобы вернуться к списку инвентаризаций", "messages.click-to-return-to-assets": "Невозможно найти ресурс оборудования холодной цепи с таким идентификатором. Нажмите OK, чтобы вернуться к списку оборудования", "messages.click-to-return-to-contact-traces": "Невозможно найти контактное отслеживание с таким идентификатором. Нажмите OK, чтобы вернуться к списку контактных отслеживаний", + "messages.click-to-return-to-customer-returns": "Невозможно найти возврат с таким идентификатором. Нажмите OK, чтобы вернуться к списку Клиентских Возвратов", "messages.click-to-return-to-encounters": "Невозможно найти встречу с таким идентификатором. Нажмите ОК, чтобы вернуться к списку встреч", "messages.click-to-return-to-item-list": "Не удалось найти товар с этим идентификатором. Нажмите OК, чтобы вернуться к списку товаров.", "messages.click-to-return-to-master-lists": "Не удалось найти главный список с этим идентификатором. Нажмите OК, чтобы вернуться к списку главных списков", "messages.click-to-return-to-prescriptions": "Невозможно найти рецепт с таким идентификатором. Нажмите ОК, чтобы вернуться к списку рецептов", + "messages.click-to-return-to-requisitions": "Невозможно найти заявку на закупку с таким идентификатором. Нажмите OK, чтобы вернуться к списку заявок", + "messages.click-to-return-to-returns": "Невозможно найти возврат с таким идентификатором. Нажмите ОК, чтобы вернуться к списку возвратов", "messages.click-to-return-to-rnr-list": "Нажмите сюда, чтобы вернуться к списку О&З Форм", + "messages.click-to-return-to-shipments": "Невозможно найти отправку с таким идентификатором. Нажмите ОК, чтобы вернуться к списку отправок", "messages.click-to-view": "Нажмите, чтобы просмотреть запись пациента для {{firstName}} {{lastName}}", "messages.confirm-add-from-master-list": "Хотите добавить все элементы из этого предзаданного списка?", "messages.confirm-cancel-generic": "Вы потеряете изменения сделанные в этой форме", "messages.confirm-change-location": "Это сменит локацию всех выделенных строк", + "messages.confirm-changing-from-new": "Примечание: при переключении на статус «Новый», все строки с нулевым количеством будут удалены.", "messages.confirm-delete-assets_one": "Это навсегда удалит этот ресурс.", "messages.confirm-delete-assets_other": "Это навсегда удалит {{count}} выбранных ресурсов.", "messages.confirm-delete-document": "Этот документ будет удален.", @@ -1259,12 +1400,21 @@ "report.our-ref": "Наш номер", "report.pack-quantity": "Кол-во упаковок", "report.pack-size": "Размер упаковки", + "report.packing-slip": "Упаковочный лист", + "report.page": "Страница", + "report.printed-date": "Дата печати", + "report.quan": "Количество", "report.received-from": "Получено от", "report.requested-from": "Запрошено от", "report.requested-qty": "Запрошенное кол-во", "report.sell-price": "Цена продажи", "report.shipped-date": "Отправлено", + "report.snapshot-packs": "Упаковки в данный момент", + "report.stat": "Статистика", + "report.stock-at-risk": "Запасы под угрозой", "report.stock-on-hand": "Запасы в наличии", + "report.stocktake-number": "Номер инвентаризации", + "report.stocktake-sheet": "Лист инвентаризации", "report.suggested-qty": "Рекомендуемое кол-во", "report.target-qty": "Желаемое кол-во", "report.their-ref": "Их номер", @@ -1313,7 +1463,14 @@ "sync-info.updating-user": "Обновляем пользователя...", "sync-status.integrate": "Интегрировать", "sync-status.prepare": "Подготовить", + "sync-status.pull-central": "Принимаем Центральные", + "sync-status.pull-remote": "Принимаем Удаленные", + "sync-status.pull-v6": "Принимаем V6", + "sync-status.push": "Отправляем", + "sync-status.push-v6": "Отправляем V6", + "table.select-unselect-all-rows": "Выбрать/отменить выбор всех строк", "table.show-columns": "Показать / скрыть колонки", + "template.requisition-sent": "Одобрено {{name}}{{job}}. Почта: {{email}} и номер телефона: {{phone}}.", "text.months": "Месяцы", "title.adjustment-details": "Детали Корректировки", "title.amc": "Среднее Месячное Потребление", @@ -1336,162 +1493,5 @@ "warning.cannot-create-placeholder-units": "Всего доступно {{allocatedQuantity}} единиц. Невозможно выделить все {{requestedQuantity}} единицы.", "warning.caps-lock": "Внимание: включен Caps Lock", "warning.field-not-parsed": "{{field}} не проанализировано", - "heading.order-info": "Информация о заказе", - "button.replenishment-return-lines": "Вернуть выбранные строки", - "cmdk.more-info-open": "Открыть панель дополнительной информации", - "customer-return": "Возврат Клиента", - "description.expiry": "Ближайшая дата истечения срока годности имеющихся в наличии запасов", - "description.rnr-amc": "Среднемесячно Потребление рассчитывается по Скорректированному значению потребления с использованием данной формы О&З и двух предыдущих, если таковые имеются", - "description.rnr-consumed": "Количество данного товара, распределенное за этот период (через Исходящие Поставки или по Рецептам)", - "description.rnr-final-balance": "Уровень запасов на конец периода. = Начальный остаток + Поступило - Израсходовано ± Корректировки", - "description.rnr-initial-balance": "Запасы на начало периода. Этот показатель берется из предыдущей формы О&З, если таковая имеется, или рассчитывается с использованием запасов в наличии на дату начала периода.", - "error.cannot-backdate-prescription": "Запасы не доступны в указанную дату", - "error.dose-ages-out-of-order": "Для каждой дозы требуется минимальный возраст выше, чем для предыдущей дозы", - "error.no-master-list": "Этот товар не включен в основной список - пожалуйста, обратитесь к администратору, если это ошибка. Обратите внимание, что товар может быть виден, если он имеется в наличии, даже если он не в списке.", - "error.not-most-recent-given-dose": "Это не самая последняя прививка. Пожалуйста, отредактируйте последнюю прививку, если доза не была введена.", - "error.snapshot-total-mismatch": "Количество запасов теперь отличается от того, что было в начале инвентаризации, поскольку часть запасов была выдана в виде исходящих поставок или рецептов. Пожалуйста, удалите строку и повторите попытку.", - "error.stocktake-snapshot-total-mismatch": "Инвентаризация не может быть завершена. Количество запасов теперь отличается от того, что было в начале инвентаризации, поскольку часть запасов была выдана в виде исходящих поставок или рецептов. Пожалуйста, удалите строку и повторите попытку.", - "heading.program-info": "Информация о программе", - "label.add-charge": "Добавить плату", - "label.amc/amd": "Среднемесячное Потребление/Среднемесячное Распределение", - "label.available-batches": "Доступные партии", - "label.pack-sell-price": "Упаковочная цена продажи", - "label.rnr-minimum-quantity": "Минимум", - "heading.between-datetimes": "Между датами", - "label.months-abbreviation": "М", - "label.counted-num-of-packs": "Подсчитанное Количество", - "filename.supplier-returns": "возвраты-поставщиков", - "filename.customer-returns": "возвраты-клиентов", - "info.cannot-edit-program-requisition": "Невозможно редактировать поставщика, изменить пороговый Месячный Запас (МЗ), целевой МЗ или добавить товары в заявке на программу.", - "label.no-reason": "Нет причины", - "label.refused": "Отказался", - "label.rnr-consumed-adjusted": "Скорректированное потребление /распределение", - "label.requested": "Запрошено", - "label.rnr-maximum-quantity": "Максимум", - "label.rnr-final-balance": "Итоговый баланс", - "label.rnr-initial-balance": "Первоначальный баланс", - "label.rnr-adjustments": "Корректировки +/-", - "label.rnr-consumed": "Потреблено / распределено", - "label.contact-tracing": "Контактное Отслеживание", - "label.lead-time": "Время выполнения (Месяца)", - "label.pack-cost-price": "Себестоимость упаковки", - "label.rnr-received": "Получено", - "warning.nothing-to-supply": "Больше нечего поставить!", - "label.not-set": "Не задано", - "label.report-filters": "Фильтры Отчетов", - "label.other-facility": "Другой объект", - "label.out-of-stock": "Нет в наличии", - "info.no-shipment": "Завершение этой заявки не позволит вам создать для нее поставку.", - "label.custom-age-label": "Индивидуальная этикетка возраста", - "heading.invoice-lines-report-item": "Строки накладной с товарами, содержащими", - "label.date-given": "Дата выдачи", - "label.document-edit-history": "История Редактирования Документа", - "button.view-prescription": "Просмотреть рецепт", - "cmdk.more-info-close": "Закрыть панель дополнительной информации", - "customer-returns": "Возвраты Клиента", - "description.rnr-approved-quantity": "Количество, утвержденное для заказа. Заполняется после завершения и авторизации формы О&З.", - "description.rnr-consumed-adjusted": "Показывает расход, скорректированный с учетом дней отсутствия запасов. = (Потреблено x 30)/(30 - Продолжительность отсутствия запасов)", - "description.rnr-low-stock": "! = Конечный баланс составляет менее половины от Максимального, !! = меньше четверти", - "description.rnr-maximum-quantity": "Целевое количество запасов, которое необходимо иметь в наличии = Среднемесячное Потребление x Предпочтение 'Порог для Избыточного Запаса' хранилища", - "description.rnr-received": "Количество данного товара, полученное за этот период (через Входящие Поставки)", - "description.rnr-requested-quantity": "Количество, которое необходимо заказать. = Максимальное количество - Конечный остаток", - "error.failed-to-save-vaccination": "Не удалось сохранить прививку!", - "error.login-support": "Пожалуйста, свяжитесь с support@msupply.foundation, если вы не можете войти в свой аккаунт", - "error.missing-central-sync": "Не удалось связаться с центральным сервером mSupply", - "error.more-info": "Дополнительная информация", - "error.no-customer-return-items": "В этот возврат не добавлено ни одного товара.", - "error.no-customer-returns": "Нет Возвратов Клиентов для отображения.", - "error.no-supplier-returns": "Нет Возвратов Поставщиков для отображения.", - "error.order-not-found": "Внутренний Заказ не найден", - "label.age-months-count_one": "{{count}} месяц", - "label.age-months-count_other": "{{count}} месяцев", - "label.age-years_one": "{{count}} год", - "label.age-years_other": "{{count}} лет", - "label.cost-per-unit": "Стоимость за единицу", - "label.low-stock": "Низкий запас", - "sync-status.pull-remote": "Принимаем Удаленные", - "sync-status.pull-v6": "Принимаем V6", - "label.toggle-password-visibility": "Переключить видимость пароля", - "sync-status.pull-central": "Принимаем Центральные", - "label.vaccination-card": "Прививочная Карта", - "label.record-stock-transaction": "Регистрировать товарную транзакцию для прошлой прививки", - "label.revert-existing-transaction": "Вернуть существующую товарную транзакцию", - "label.rnr-stock-out-duration": "Продолжительность отсутствия запасов", - "label.to-start-datetime": "К дате/времени начала", - "label.type-end": "Конец нарушения", - "label.type-start": "Начало нарушения", - "label.unit-plural_few": "{{unit}}", - "label.unit-plural_many": "{{unit}}", - "label.unit-plural_other": "{{unit}}", - "label.vaccination": "Прививка", - "label.vaccinations": "Прививки", - "label.vaccine-given": "Вакцина введена", - "label.vaccine-item": "Артикул вакцины", - "label.vaccine-not-given": "Вакцина не введена", - "label.years-abbreviation": "Г", - "log.invoice-number-allocated": "Выделенное количество", - "log.requisition-status-finalised": "Заявка на закупку завершена", - "label.sub-catalogue": "Суб-каталог", - "message.add-a-dose": "Дозы пока не настроены. Нажмите кнопку «+ Доза», чтобы добавить дозу.", - "sync-status.push": "Отправляем", - "label.select-batch": "Выбрать партию", - "label.status-late": "Просрочено", - "label.status-not-given": "Не выдано", - "label.status-pending": "В ожидании", - "label.supply": "Поставка", - "label.settings-site-id": "ID участка", - "label.settings-username": "Наименование участка", - "label.ven": "ЖВНВ (Жизненно Важные, Необходимые и Второстепенные)", - "sync-status.push-v6": "Отправляем V6", - "table.select-unselect-all-columns": "Выделить / снять выделение всех колонок", - "template.requisition-sent": "Одобрено {{name}}{{job}}. Почта: {{email}} и номер телефона: {{phone}}.", - "report.stocktake-number": "Номер инвентаризации", - "label.to-datetime": "К дате/времени", - "label.to-created-datetime": "К дате/времени создания", - "label.update-transactions": "Обновить товарные транзакции", - "label.unit-plural_one": "{{unit}}", - "label.server-log": "Журнал сервера", - "label.settings-central-site-id": "ID Участка Центрального сервера", - "label.settings-url": "URL Центрального сервера", - "label.snapshot-num-of-packs": "Упаковки на данный момент", - "report.packing-slip": "Упаковочный лист", - "report.page": "Страница", - "report.printed-date": "Дата печати", - "report.quan": "Количество", - "report.stock-at-risk": "Запасы под угрозой", - "report.stocktake-sheet": "Лист инвентаризации", - "report.snapshot-packs": "Упаковки в данный момент", - "report.stat": "Статистика", - "label.add-variant": "Добавить вариант", - "label.exit": "Выход", - "label.variant": "Вариант", - "label.volume-per-unit": "Объем на единицу", - "message.all-lines-have-been-fulfilled": "Все линии этой заявки с указанным количеством поставок уже имеют соответствующую линию отгрузки.", - "message.arguments": "Вы можете настроить то, что отображается в отчете, указав некоторые дополнительные сведения ниже. Нажмите ОК, чтобы просмотреть отчет.", - "messages.all-changes-must-be-confirmed": "У вас есть несколько строк с несохраненными изменениями. Отметьте эти строки как подтвержденные для завершения работы.", - "messages.cannot-view-vaccine-card": "Вы не можете просмотреть Прививочную Карту этого пациента из этого участка, потому что он был зачислен в {{ programName }} на другом участке", - "messages.cant-return-shipment": "Невозможно обработать возврат строк, пока статус не станет «Отправлено»", - "messages.click-to-return-to-customer-returns": "Невозможно найти возврат с таким идентификатором. Нажмите OK, чтобы вернуться к списку Клиентских Возвратов", - "messages.confirm-changing-from-new": "Примечание: при переключении на статус «Новый», все строки с нулевым количеством будут удалены.", - "messages.click-to-return-to-requisitions": "Невозможно найти заявку на закупку с таким идентификатором. Нажмите OK, чтобы вернуться к списку заявок", - "messages.click-to-return-to-returns": "Невозможно найти возврат с таким идентификатором. Нажмите ОК, чтобы вернуться к списку возвратов", - "messages.click-to-return-to-shipments": "Невозможно найти отправку с таким идентификатором. Нажмите ОК, чтобы вернуться к списку отправок", - "message.contact-support": "По вопросам настройки отчетов, свяжитесь с support@msupply.foundation", - "button.new-requisition": "Новая Заявка на закупку", - "label.adjusted": "Скорректировано", - "description.rnr-adjustments": "Корректировки, сделанные для данного товара за этот период (через Инвентаризацию или Корректировку Запасов)", - "description.rnr-losses": "Вручную регистрировать убытки по товару в течение этого периода", - "description.rnr-minimum-quantity": "Минимальное количество запасов, которое необходимо иметь в наличии = Среднемесячное Потребление x Предпочтение 'Порог для снабжения Недостаточного количества' хранилища", - "label.doses-per-unit": "Дозы на единицу", - "label.full-screen": "Полный экран", - "label.losses": "Убытки", - "label.variants": "Варианты", - "message.all-lines-have-no-supply-quantity": "Для всех невыполненных строк этой заявки не указан объем поставки. Укажите количество поставки хотя бы для одной строки.", - "message.database-not-local": "База данных запущена на сервере, поэтому её нельзя загрузить здесь", - "message.database-not-sqlite": "Загрузка базы данных доступна только для баз данных SQLite", - "message.failed-to-create-requisition": "Не удалось создать заявку!", - "messages.alert-zero-return-quantity": "Пожалуйста, добавьте некоторое количество товаров для возврата, прежде чем переходить к следующему шагу", - "messages.cant-return-shipment-replenishment": "Невозможно вернуть строки, пока статус не станет «Доставлено»", - "messages.changing-max-mos": "Это изменит целевые месяцы запасов.", - "messages.changing-min-mos": "Это изменит порог перезаказа на месяцы запасов." + "warning.nothing-to-supply": "Больше нечего поставить!" } diff --git a/client/packages/common/src/ui/layout/tables/DataTable.tsx b/client/packages/common/src/ui/layout/tables/DataTable.tsx index 2634cb0c9d..eb6fcb1423 100644 --- a/client/packages/common/src/ui/layout/tables/DataTable.tsx +++ b/client/packages/common/src/ui/layout/tables/DataTable.tsx @@ -133,15 +133,14 @@ const DataTableComponent = ({ const t = useTranslation(); const { setRows, setDisabledRows, setFocus } = useTableStore(); const [clickFocusedRow, setClickFocusedRow] = useState(false); - const { columnDisplayState, toggleColumn } = useColumnDisplayState( - id, - columns - ); + const { columnDisplayState, showAllColumns, toggleColumn } = + useColumnDisplayState(id, columns); - const columnsToDisplay = React.useMemo( - () => columns.filter(c => columnDisplayState[String(c.key)] ?? true), - [columns, columnDisplayState] - ); + const columnsToDisplay = React.useMemo(() => { + const cols = columns.filter(c => columnDisplayState[String(c.key)] ?? true); + + return cols.every(c => c.key === 'selection') ? [] : cols; + }, [columns, columnDisplayState]); useRegisterActions([ { @@ -254,6 +253,7 @@ const DataTableComponent = ({ columns={columns} columnDisplayState={columnDisplayState} toggleColumn={toggleColumn} + showAllColumns={showAllColumns} /> )} diff --git a/client/packages/common/src/ui/layout/tables/columns/CheckboxSelectionColumn.tsx b/client/packages/common/src/ui/layout/tables/columns/CheckboxSelectionColumn.tsx index 0664be8e99..dce3bac394 100644 --- a/client/packages/common/src/ui/layout/tables/columns/CheckboxSelectionColumn.tsx +++ b/client/packages/common/src/ui/layout/tables/columns/CheckboxSelectionColumn.tsx @@ -38,7 +38,7 @@ export const getCheckboxSelectionColumn = < sortable: false, align: ColumnAlign.Left, width: 60, - label: 'table.select-unselect-all-columns', + label: 'table.select-unselect-all-rows', Header: () => { const { toggleAll, allSelected, someSelected } = useTableStore(state => { const allSelected = diff --git a/client/packages/common/src/ui/layout/tables/components/Header/ColumnPicker.tsx b/client/packages/common/src/ui/layout/tables/components/Header/ColumnPicker.tsx index d33f21d75d..96a5d8458a 100644 --- a/client/packages/common/src/ui/layout/tables/components/Header/ColumnPicker.tsx +++ b/client/packages/common/src/ui/layout/tables/components/Header/ColumnPicker.tsx @@ -6,6 +6,7 @@ import { Stack, Typography, FormControlLabel, + Button, } from '@mui/material'; import { Checkbox, @@ -18,12 +19,14 @@ import { LocaleKey, useTranslation } from '@common/intl'; interface ColumnPickerProps { columns: Column[]; columnDisplayState: Record; + showAllColumns: () => void; toggleColumn: (colKey: string) => void; } export const ColumnPicker = ({ columns, columnDisplayState, + showAllColumns, toggleColumn, }: ColumnPickerProps) => { const t = useTranslation(); @@ -76,7 +79,7 @@ export const ColumnPicker = ({ {t('table.show-columns')} {columns - .filter(c => !!c.label) + .filter(c => !!c.label && c.key !== 'selection') .map(column => ( ({ label={t(column.label as LocaleKey)} /> ))} + diff --git a/client/packages/common/src/ui/layout/tables/hooks/useColumnDisplayState.ts b/client/packages/common/src/ui/layout/tables/hooks/useColumnDisplayState.ts index a737c9b9f5..fd8c783bbe 100644 --- a/client/packages/common/src/ui/layout/tables/hooks/useColumnDisplayState.ts +++ b/client/packages/common/src/ui/layout/tables/hooks/useColumnDisplayState.ts @@ -43,5 +43,17 @@ export const useColumnDisplayState = ( }); }; - return { columnDisplayState, toggleColumn }; + const showAllColumns = () => { + const newState = Object.fromEntries( + Object.keys(columnDisplayState).map(key => [key, true]) + ); + + setColumnDisplayState(newState); + setHiddenColsStorage({ + ...hiddenColsStorage, + [tableId]: Object.keys(newState).filter(key => !newState[key]), + }); + }; + + return { columnDisplayState, showAllColumns, toggleColumn }; };