metis-desk/modules/companies/src/web/mail/mail-i18n.ts
David e099b8c507 feat(mail): implement mail configuration management with persistence and UI components
- Added migration scripts for mail configurations and revisions.
- Created persistence mapper for mail configurations and revisions.
- Developed Sequelize repository for mail configuration management.
- Introduced common schemas and types for mail configurations.
- Implemented API for fetching and saving mail configurations.
- Built React components for mail configuration forms and pages.
- Added internationalization support for mail-related texts in English and Spanish.
- Implemented feedback mechanism for API errors in mail components.
- Created tests for mail configuration components and functionality.
2026-10-04 23:06:07 +02:00

119 lines
5.4 KiB
TypeScript

export const mailSpanish = {
title: "Correos en dispositivos",
new: "Configurar correo",
edit: "Editar configuración",
empty: "Todavía no hay correos registrados en dispositivos.",
search: "Buscar correo, persona o dispositivo…",
person: "Persona",
account: "Cuenta informática",
asset: "Dispositivo",
choose: "Selecciona un valor",
address: "Dirección de correo",
method: "Método de acceso",
state: "Estado",
notes: "Notas (opcional)",
pop: "POP",
imap: "IMAP",
exchange: "Exchange",
other: "Otro",
pending: "Pendiente de configurar",
configured: "Configurado",
removal_pending: "Pendiente de retirar",
removed: "Retirado",
never_configured: "No llegó a configurarse",
review: "Revisar acceso: autorización, persona, cuenta o dispositivo no vigente.",
noAuthorization:
"Autoriza esta cuenta para la persona antes de guardar una configuración activa.",
authorize: "Autorizar cuenta para esta persona",
newAccount: "Nueva cuenta",
newAsset: "Nuevo dispositivo",
newPerson: "Nueva persona",
history: "Historial",
help: "¿Para qué sirve esta configuración?",
description:
"Registra qué correo está configurado en cada dispositivo de una persona y cómo se accede a él.",
examplesLabel: "Ejemplos y recomendaciones",
examples:
"Ana: ana@empresa.es por IMAP en su portátil y por Exchange en su móvil; ventas@empresa.es también en el portátil.",
guidance:
"La autorización de la cuenta se gestiona por separado. Al retirar un correo, confirma primero que se ha eliminado del dispositivo. No introduzcas contraseñas.",
scope:
"Puedes registrar varias cuentas por persona y varios dispositivos por cuenta. Los cambios conservan el historial.",
fixed:
"Persona, cuenta y dispositivo quedan fijados. Para cambiar alguno, retira esta configuración y crea otra.",
errors: {
INVALID_REQUEST: "Revisa los campos; introduce una dirección de correo válida.",
MAIL_SCOPE_MISMATCH: "La persona, cuenta y dispositivo deben pertenecer a esta compañía.",
MAIL_NOT_AUTHORIZED:
"La persona necesita una autorización vigente sobre esta cuenta y un dispositivo disponible.",
MAIL_CONFIGURATION_EXISTS:
"Ya hay una configuración abierta para esta persona, cuenta y dispositivo.",
MAIL_TARGET_IMMUTABLE: "Para cambiar persona, cuenta o dispositivo, crea otra configuración.",
INVALID_MAIL_TRANSITION:
"El cambio de estado no es válido. Un correo configurado pasa primero a pendiente de retirar.",
MAIL_CONFIGURATION_NOT_FOUND: "La configuración no está disponible en esta compañía.",
COMPANY_NOT_FOUND: "La compañía no está disponible.",
UNAUTHENTICATED: "La sesión ha caducado. Vuelve a entrar.",
FORBIDDEN: "Recarga la página para autorizar la operación.",
INTERNAL_ERROR: "No se ha podido completar la operación. Inténtalo de nuevo.",
},
};
export const mailEnglish = {
title: "Email on devices",
new: "Configure email",
edit: "Edit configuration",
empty: "No email configurations on devices yet.",
search: "Find email, person or device…",
person: "Person",
account: "IT account",
asset: "Device",
choose: "Choose a value",
address: "Email address",
method: "Access method",
state: "Status",
notes: "Notes (optional)",
pop: "POP",
imap: "IMAP",
exchange: "Exchange",
other: "Other",
pending: "Pending configuration",
configured: "Configured",
removal_pending: "Pending removal",
removed: "Removed",
never_configured: "Never configured",
review: "Review access: authorization, person, account or device is no longer valid.",
noAuthorization: "Authorize this account for the person before saving an active configuration.",
authorize: "Authorize account for this person",
newAccount: "New account",
newAsset: "New device",
newPerson: "New person",
history: "History",
help: "What is this configuration for?",
description: "Record which email is configured on each person's device and how it is accessed.",
examplesLabel: "Examples and guidance",
examples:
"Ana: ana@company.com via IMAP on her laptop and Exchange on her phone; sales@company.com on the laptop too.",
guidance:
"Account authorization is managed separately. Confirm removal from the device before marking it removed. Do not enter passwords.",
scope:
"Multiple accounts per person and multiple devices per account are supported. Changes retain history.",
fixed:
"Person, account and device are fixed. To change any of them, remove this configuration and create another.",
errors: {
INVALID_REQUEST: "Review the fields; enter a valid email address.",
MAIL_SCOPE_MISMATCH: "Person, account and device must belong to this company.",
MAIL_NOT_AUTHORIZED:
"The person needs a current account authorization and an available device.",
MAIL_CONFIGURATION_EXISTS:
"An open configuration already exists for this person, account and device.",
MAIL_TARGET_IMMUTABLE: "Create another configuration to change person, account or device.",
INVALID_MAIL_TRANSITION:
"Invalid status change. Configured email must first be marked for removal.",
MAIL_CONFIGURATION_NOT_FOUND: "The configuration is unavailable in this company.",
COMPANY_NOT_FOUND: "The company is unavailable.",
UNAUTHENTICATED: "Your session expired. Sign in again.",
FORBIDDEN: "Reload the page to authorize the operation.",
INTERNAL_ERROR: "Unable to complete the operation. Try again.",
},
};