/** * `cordnUi.*` — the native Cordn (MLS) crew chat panel. Added to `legacy/` * (the same `{ en, es }` fragment pattern as `notify.ts` — the flat key object, * namespaced by `legacy/index.ts`). */ const cordnUi = { en: { title: 'Private chat', subtitle: 'End-to-end encrypted (MLS) across crew members. The coordinator routes ciphertext and metadata only — it never sees message contents.', notLoggedIn: 'Log in to use the crew’s private chat.', membersOnly: 'Only crew members can open the private chat.', connecting: 'Connecting…', noCoordinator: 'No coordinator is configured for this crew yet.', noGroupAdmin: 'This crew’s private chat hasn’t been created yet.', noGroupMember: 'You’re not in this crew’s private chat yet.', create: 'Create the private chat', requestJoin: 'Ask to join', checkInvite: 'Check for invite', requested: 'Request sent — a crew admin will approve it.', noInvite: 'No invite waiting yet. Ask an admin to approve your request.', placeholder: 'Message the crew…', send: 'Send', refresh: 'Refresh', requests: 'Join requests', checkRequests: 'Check requests', approve: 'Add', noRequests: 'No pending join requests.', inviteHint: 'Only you are in this chat so far — crew members can tap “Ask to join”, then you approve them here.', shareInvite: 'Invite', shareInviteText: 'Join {{crew}} — private crew chat', inviteCopied: 'Invite link copied', memberCount: '{{count}} in the group', you: 'You', groupRef: 'Group link', copyRef: 'Copy', copied: 'Copied', attachImage: 'Attach image', uploading: 'Uploading…', uploadFailed: 'Couldn’t upload the image.', bannerTitle: 'This crew has no private chat yet', bannerBody: 'Set up end-to-end encrypted (MLS) chat for your crew — members join from the tab.', bannerCta: 'Set up', ready: 'Connected · MLS', errorPrefix: 'Couldn’t reach the coordinator', interactiveHint: 'Your signer asks for approval on each action — use Refresh and Send as needed.', setupDevice: 'Set up this device', setupDeviceBody: 'This gives this device its own key for the private chat. A founder approves it once.', waitingApproval: 'Waiting for the founder to approve…', waitingApprovalManual: 'Waiting for the founder. Tap “Check for invite” after they approve.', onboardingFounder1: 'Start the private chat.', onboardingFounder2: 'Approve members who ask to join.', onboardingFounder3: 'Chat privately with your crew.', onboardingMember1: 'Ask to join.', onboardingMember2: 'The founder approves your device.', onboardingMember3: 'You’re in — messages are encrypted.', encryptedNote: 'Only crew members can read this; the coordinator only relays encrypted messages.', advanced: 'Advanced', coordinator: 'Coordinator', keyPackage: 'Key package', keyPackageReady: 'Ready on this device', keyPackageMissing: 'Not set up on this device', members: 'Members', roleFounder: 'Founder', roleAdmin: 'Admin', makeAdmin: 'Make admin', removeAdmin: 'Remove admin', adminAdded: 'Member promoted to admin.', adminRemoved: 'Admin role removed.', roleUpdateFailed: 'Could not update the role. Try again.', addReaction: 'Add reaction', deleteMessage: 'Delete message', deleteMessageConfirm: 'Delete this message for everyone?', readBy: 'Read by {{count}}', joinRequestTitle: 'Private chat request', joinRequestFor: 'New request to join {{crew}}', joinRequestReview: 'Review request', joinRequestDismiss: 'Dismiss request', roleMember: 'Member', qrTitle: 'Scan to join the private chat', qrHint: 'Crew members scan this with their phone camera. The link opens the Private chat tab.', sendFailed: 'Couldn’t send — tap Retry.', sending: 'Sending…', sent: 'Sent', retry: 'Retry', errorUnreachable: 'Couldn’t reach the private chat. Check your connection.', errorDetails: 'Details', unreachable: 'Unreachable', dismiss: 'Dismiss', linkDevice: 'Link this device', linkDeviceTitle: 'Link another device', linkDeviceHint: 'Scan this code on a device that is already in the room.', linkDeviceNote: 'The code contains a public key package. Your private key stays on the new device.', waitingDevice: 'Waiting for the other device…', addDevice: 'Add a device', deviceLinked: 'Device added.', deviceLinkFailed: 'Couldn’t add that device.', removeMemberConfirm: 'Remove {{name}} from the private chat? That device will lose access.', removeMemberFailed: 'Couldn’t remove that member.', reply: 'Reply', }, es: { title: 'Chat privado', subtitle: 'Cifrado de extremo a extremo (MLS) entre los miembros de la peña. El coordinador solo enruta cifrado y metadatos: nunca ve el contenido de los mensajes.', notLoggedIn: 'Inicia sesión para usar el chat privado de la peña.', membersOnly: 'Solo los miembros de la peña pueden abrir el chat privado.', connecting: 'Conectando…', noCoordinator: 'Esta peña aún no tiene un coordinador configurado.', noGroupAdmin: 'El chat privado de esta peña aún no se ha creado.', noGroupMember: 'Aún no estás en el chat privado de esta peña.', create: 'Crear el chat privado', requestJoin: 'Pedir entrar', checkInvite: 'Buscar invitación', requested: 'Solicitud enviada: un administrador la aprobará.', noInvite: 'Aún no hay invitación. Pide a un administrador que apruebe tu solicitud.', placeholder: 'Escribe a la peña…', send: 'Enviar', refresh: 'Actualizar', requests: 'Solicitudes de entrada', checkRequests: 'Ver solicitudes', approve: 'Añadir', noRequests: 'No hay solicitudes pendientes.', inviteHint: 'De momento solo estás tú en este chat: los miembros pueden pulsar «Pedir entrar» y tú los apruebas aquí.', shareInvite: 'Invitar', shareInviteText: 'Únete a {{crew}} — chat privado de la peña', inviteCopied: 'Enlace de invitación copiado', memberCount: '{{count}} en el grupo', you: 'Tú', groupRef: 'Enlace del grupo', copyRef: 'Copiar', copied: 'Copiado', attachImage: 'Adjuntar imagen', uploading: 'Subiendo…', uploadFailed: 'No se pudo subir la imagen.', bannerTitle: 'Esta peña aún no tiene chat privado', bannerBody: 'Configura el chat cifrado de extremo a extremo (MLS) de tu peña: los miembros se unen desde la pestaña.', bannerCta: 'Configurar', ready: 'Conectado · MLS', errorPrefix: 'No se pudo contactar con el coordinador', interactiveHint: 'Tu firmante pide aprobación en cada acción: usa Actualizar y Enviar cuando haga falta.', setupDevice: 'Configurar este dispositivo', setupDeviceBody: 'Esto da a este dispositivo su propia clave para el chat privado. Un fundador lo aprueba una vez.', waitingApproval: 'Esperando a que el fundador lo apruebe…', waitingApprovalManual: 'Esperando al fundador. Pulsa «Buscar invitación» cuando lo apruebe.', onboardingFounder1: 'Crea el chat privado.', onboardingFounder2: 'Aprueba a los miembros que pidan entrar.', onboardingFounder3: 'Habla en privado con tu peña.', onboardingMember1: 'Pide entrar.', onboardingMember2: 'El fundador aprueba tu dispositivo.', onboardingMember3: 'Ya estás dentro: los mensajes van cifrados.', encryptedNote: 'Solo los miembros de la peña pueden leerlo; el coordinador solo retransmite mensajes cifrados.', advanced: 'Avanzado', coordinator: 'Coordinador', keyPackage: 'Paquete de claves', keyPackageReady: 'Listo en este dispositivo', keyPackageMissing: 'Sin configurar en este dispositivo', members: 'Miembros', roleFounder: 'Fundador', roleAdmin: 'Admin', makeAdmin: 'Hacer admin', removeAdmin: 'Quitar admin', adminAdded: 'Miembro ascendido a admin.', adminRemoved: 'Rol de admin eliminado.', roleUpdateFailed: 'No se pudo actualizar el rol. Inténtalo de nuevo.', addReaction: 'Añadir reacción', deleteMessage: 'Eliminar mensaje', deleteMessageConfirm: '¿Eliminar este mensaje para todos?', readBy: 'Leído por {{count}}', joinRequestTitle: 'Solicitud de chat privado', joinRequestFor: 'Nueva solicitud para unirse a {{crew}}', joinRequestReview: 'Revisar solicitud', joinRequestDismiss: 'Descartar solicitud', roleMember: 'Miembro', qrTitle: 'Escanea para entrar al chat privado', qrHint: 'Los miembros de la peña pueden escanearlo con la cámara del móvil. El enlace abre la pestaña del chat privado.', sendFailed: 'No se pudo enviar: pulsa Reintentar.', sending: 'Enviando…', sent: 'Enviado', retry: 'Reintentar', errorUnreachable: 'No se pudo conectar con el chat privado. Comprueba tu conexión.', errorDetails: 'Detalles', unreachable: 'Sin conexión', dismiss: 'Descartar', linkDevice: 'Vincular este dispositivo', linkDeviceTitle: 'Vincular otro dispositivo', linkDeviceHint: 'Escanea este código en un dispositivo que ya esté en la sala.', linkDeviceNote: 'El código contiene un paquete de claves público. Tu clave privada se queda en el dispositivo nuevo.', waitingDevice: 'Esperando al otro dispositivo…', addDevice: 'Añadir un dispositivo', deviceLinked: 'Dispositivo añadido.', deviceLinkFailed: 'No se pudo añadir ese dispositivo.', removeMemberConfirm: '¿Quitar a {{name}} del chat privado? Ese dispositivo perderá el acceso.', removeMemberFailed: 'No se pudo quitar a ese miembro.', reply: 'Responder', }, }; export default cordnUi;