Files
project.linkedcorp.net/frontend/src/i18n/messages.js
T
Milton Gonzalez e65111a7f4 feat: version 3.0.0 -- Correcciones de auditoria de seguridad, accesibilidad y redundancia
Permisos (superadmin, viewer, busqueda, tareas recurrentes), bootstrap atomico,
revocacion de JWT por version de sesion (028), control optimista de edicion (029),
logo sin SVG + CSP, ingesta endurecida, correos escapados, borradores, paginacion
de proyectos, accesibilidad de dialogos/controles e i18n.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 11:36:02 -05:00

1021 lines
48 KiB
JavaScript

export const messages = {
'es-EC': {
appName: 'LinkedCorp Proyectos',
nav_dashboard: 'Panel',
nav_projects: 'Proyectos',
nav_organization: 'Organizacion',
nav_config: 'Configuracion',
login_title: 'Iniciar sesion',
login_email: 'Correo',
login_password: 'Clave',
login_submit: 'Entrar',
login_error: 'Credenciales invalidas',
login_forgot_password: '¿Olvidaste tu contraseña?',
login_create_account: 'Crear cuenta',
logout: 'Cerrar sesion',
register_title: 'Crear cuenta',
register_name: 'Nombre completo',
register_password_confirm: 'Confirmar clave',
register_password_mismatch: 'Las claves no coinciden',
register_password_short: 'La clave debe tener al menos 8 caracteres',
register_submit: 'Registrarme',
register_success: 'Cuenta creada. Revisa tu correo para confirmarla; luego un administrador debe aprobarla antes de que puedas entrar.',
register_back_to_login: 'Volver a iniciar sesion',
verify_email_title: 'Verificar correo',
verify_email_success: 'Correo confirmado. Tu cuenta esta pendiente de aprobacion por un administrador.',
verify_email_missing_token: 'Enlace invalido: falta el token de verificacion.',
accept_invite_title: 'Completar registro',
accept_invite_hint: 'Te invitaron a un proyecto. Elige tu nombre y una clave para crear tu cuenta.',
accept_invite_submit: 'Crear mi cuenta',
accept_invite_missing_token: 'Enlace invalido: falta el token de invitacion.',
forgot_password_title: 'Recuperar clave',
forgot_password_submit: 'Enviar instrucciones',
forgot_password_sent: 'Si el correo existe, te enviamos instrucciones para recuperar tu clave.',
reset_password_title: 'Elegir nueva clave',
reset_password_new: 'Clave nueva',
reset_password_submit: 'Guardar clave',
reset_password_success: 'Clave actualizada. Redirigiendo a iniciar sesion...',
change_password_title: 'Cambiar clave',
change_password_current: 'Clave actual',
change_password_success: 'Clave actualizada correctamente.',
user_status_pending_verification: 'Pendiente de verificar correo',
user_status_pending_approval: 'Pendiente de aprobacion',
user_status_active: 'Activo',
user_status_invited: 'Invitacion pendiente',
user_approve: 'Aprobar',
user_reject: 'Rechazar',
user_approve_title: 'Aprobar usuario',
user_reject_confirm_msg: '¿Seguro que deseas rechazar esta solicitud de registro? Se eliminara permanentemente.',
user_resend: 'Reenviar correo',
user_resend_sent: 'Correo reenviado',
config_company: 'Empresa',
company_name: 'Nombre de la empresa',
company_logo: 'Logo',
company_logo_hint: 'PNG, JPG o WEBP. Se usa en el menu lateral y en las pantallas de acceso.',
company_logo_none: 'Sin logo',
company_logo_choose: 'Elegir imagen',
config_smtp: 'Correo (SMTP)',
config_smtp_superadmin_only: 'Solo el superadministrador puede configurar el correo del sistema.',
smtp_host: 'Servidor (host)',
smtp_port: 'Puerto',
smtp_user: 'Usuario',
smtp_from: 'Remitente',
smtp_pass: 'Clave',
smtp_pass_configured_hint: 'Configurada — dejar en blanco para no cambiarla',
smtp_not_configured: 'Sin configurar: los correos se registran en el log del servidor (modo dev), no se envian de verdad.',
smtp_test_title: 'Probar configuracion',
smtp_test_hint: 'Envia un correo de verdad con los datos de arriba (guardados o no) para confirmar que funcionan antes de confiar en ellos.',
smtp_test_to: 'Enviar prueba a',
smtp_test_send: 'Enviar prueba',
smtp_test_sending: 'Enviando...',
smtp_test_success: 'Correo de prueba enviado correctamente a',
config_updater: 'Actualizaciones',
updater_check: 'Buscar actualizaciones',
updater_current_version: 'Versión instalada:',
updater_up_to_date: 'Estás en la última versión disponible.',
updater_available: 'Actualización disponible',
updater_restart_required: 'Esta actualización requiere reiniciar el sistema — coordina con tu administrador antes de aplicarla.',
updater_has_migrations: 'Incluye cambios en la base de datos (migraciones nuevas).',
updater_criticality_alta: 'Alta',
updater_criticality_media: 'Media',
updater_criticality_baja: 'Baja',
updater_rollback_hint: 'Antes de actualizar, respalda la base de datos. Si algo sale mal, restaura ese respaldo y vuelve al commit anterior a esta actualización en el historial de Gitea.',
updater_apply: 'Actualizar',
updater_applying: 'Actualizando…',
updater_apply_confirm_title: 'Aplicar actualización',
updater_apply_confirm_msg: 'Se va a respaldar la base de datos, descargar el código nuevo, aplicar migraciones si las hay, y reiniciar el sistema. Puede tardar unos minutos y la app quedará momentáneamente fuera de servicio. Vas de',
updater_apply_confirm_ok: 'Sí, actualizar',
updater_apply_started: 'Actualización iniciada. El sistema se reiniciará en unos minutos.',
updater_applying_hint: 'Actualización en curso — no cierres esta pestaña. El sistema se reiniciará solo al terminar.',
updater_apply_timeout: 'La actualización está tardando más de lo esperado. Revisa el estado en unos minutos o verifica el servidor.',
updater_apply_not_configured: 'La auto-actualización no está habilitada en este servidor. Pide a tu administrador que aplique esta actualización por SSH.',
updater_login_popup_title: 'Hay una actualización pendiente',
updater_login_popup_msg: 'El sistema tiene una versión nueva disponible:',
updater_login_popup_go: 'Ver actualizaciones',
config_error_logs: 'Errores del sistema',
error_logs_clear: 'Limpiar registro',
error_logs_clear_confirm_msg: '¿Seguro que deseas borrar todo el historial de errores registrados? No se puede deshacer.',
error_logs_empty: 'No hay errores registrados.',
error_logs_source: 'Origen',
error_logs_severity: 'Severidad',
error_logs_severity_alta: 'Alta',
error_logs_severity_media: 'Media',
error_logs_severity_baja: 'Baja',
password_show: 'Mostrar clave',
password_hide: 'Ocultar clave',
common_new: 'Nuevo',
common_edit: 'Editar',
common_save: 'Guardar',
common_cancel: 'Cancelar',
common_accept: 'Aceptar',
common_delete: 'Eliminar',
common_close: 'Cerrar',
common_search: 'Buscar...',
common_select: 'Seleccionar',
common_actions: 'Acciones',
common_search_no_results: 'Sin resultados',
common_actions: 'Acciones',
common_view: 'Ver',
common_yes: 'Si',
common_no: 'No',
common_or: 'o',
common_loading: 'Cargando...',
common_empty: 'No hay datos para mostrar',
common_confirm_delete_title: 'Confirmar eliminacion',
common_confirm_delete_msg: '¿Seguro que deseas eliminar este elemento? Esta accion no se puede deshacer.',
common_saved: 'Cambios guardados',
common_error: 'Ocurrio un error',
common_name: 'Nombre',
common_description: 'Descripcion',
common_status: 'Estado',
common_priority: 'Prioridad',
common_responsible: 'Responsable',
common_department: 'Departamento',
common_active: 'Activo',
common_inactive: 'Inactivo',
common_all: 'Todos',
theme_light: 'Claro',
theme_dark: 'Oscuro',
lang_es: 'Espanol',
lang_en: 'Ingles',
button_mode_icon_text: 'Icono + texto',
button_mode_icon: 'Solo icono',
button_mode_text: 'Solo texto',
dashboard_title: 'Panel principal',
dashboard_active_projects: 'Proyectos activos',
dashboard_overdue_projects: 'Proyectos atrasados',
dashboard_due_soon_projects: 'Proximos a vencer',
dashboard_pending_activities: 'Actividades pendientes',
dashboard_overdue_activities: 'Actividades vencidas',
dashboard_today_activities: 'Para hoy',
dashboard_average_progress: 'Avance promedio',
common_of: 'de',
draft_leave_title: 'Cambios sin guardar',
draft_leave_msg: 'Vas a salir de una sección con cambios que todavía no guardaste:',
draft_leave_hint: 'Si los dejas pendientes, se conservan en este navegador y se reabre la edición al volver.',
draft_discard: 'Descartar cambios',
draft_keep_pending: 'Dejar pendiente',
draft_keep_editing: 'Seguir editando',
draft_pending_mark: 'Cambios sin guardar',
draft_field_modified: 'modificado',
draft_restored_msg: 'Se recuperaron cambios que no habías guardado. Revisa y guarda, o descártalos.',
draft_conflict_title: 'El registro cambió',
draft_conflict_reload_msg: 'El registro cambió en el servidor. Recarga para revisar la versión actual antes de guardar. Tus cambios pendientes se conservarán.',
draft_conflict_reload: 'Descartar y recargar',
draft_conflict_msg: 'Este registro cambió en el servidor desde que empezaste a editarlo. Si guardas tus cambios pendientes, reemplazarás esos cambios.',
draft_conflict_save_msg: 'Este registro cambió en el servidor desde que empezaste a editarlo (otra persona u otra pestaña). ¿Quieres sobrescribirlo con tus cambios?',
draft_conflict_overwrite: 'Sobrescribir',
draft_keep_mine: 'Mantener mis cambios',
draft_use_server: 'Descartar mis cambios',
session_expired_login_msg: 'Tu sesión venció. Inicia sesión otra vez para volver a donde estabas; los cambios sin guardar se conservaron.',
dashboard_cards: 'Tarjetas',
dashboard_no_cards: 'No hay tarjetas seleccionadas. Elige cuáles mostrar en "Tarjetas".',
dashboard_projects_by_status: 'Proyectos por estado',
projects_title: 'Proyectos',
project_page_range: 'Mostrando', project_page_of: 'de', project_page_previous: 'Anterior', project_page_next: 'Siguiente',
draft_conflict_check_failed: 'No se pudo comprobar la versión actual. Intenta de nuevo.',
project_code: 'Codigo',
project_new: 'Nuevo proyecto',
project_objective: 'Objetivo',
project_type: 'Tipo de proyecto',
project_owner: 'Responsable',
project_start_date: 'Fecha de inicio',
project_estimated_end_date: 'Fin estimado',
project_actual_end_date: 'Fin real',
project_progress: 'Avance',
project_shared_with: 'Compartido con',
project_requesting_department: 'Departamento solicitante',
project_responsible_department: 'Departamento responsable',
project_risk: 'Riesgo',
project_notes: 'Observaciones',
project_members: 'Miembros',
project_members_owner_only_hint: 'Solo el dueño del proyecto puede compartirlo y cambiar permisos.',
project_add_member: 'Compartir proyecto',
project_add_member_role: 'Permiso',
project_role_owner: 'Dueño',
project_role_read: 'Lectura',
project_role_write: 'Escritura',
project_invite_email: 'Invitar por correo',
project_invite_email_hint: 'Si el correo no pertenece a nadie todavia, se le manda un enlace para que complete su registro y se una al proyecto.',
project_invite_sent: 'Invitacion enviada por correo',
project_created_at: 'Creado',
project_updated_at: 'Actualizado',
project_deleted_at: 'Eliminado',
project_filter_due_soon: 'Solo próximos a vencer (7 días)',
project_filter_progress: 'Avance',
project_filter_progress_hide: 'Ocultar 100%',
project_filter_progress_only: 'Solo 100%',
nav_recurring_tasks: 'Tareas recurrentes',
nav_notes: 'Notas',
nav_passwords: 'Contraseñas',
nav_devices: 'Equipos',
eq_installer_title: 'Instalador para Windows',
eq_installer_row_hint: 'También puedes descargarlo con el ícono de cada token de la lista.',
eq_token_no_secret: 'Token anterior: no se puede recuperar, genera uno nuevo',
eq_installer_hint: 'Descarga un instalador (.bat) con el servidor y el token ya configurados: se ejecuta con doble clic en el equipo, sin configurar nada más.',
eq_installer_token: 'Token (se llena solo al generar uno)',
eq_installer_tag: 'Etiqueta opcional (ej. Contabilidad)',
eq_installer_download: 'Descargar instalador',
eq_installer_note: 'El .bat contiene el token: compártelo solo con quien instale. Descarga el agente oficial de GitHub; si el equipo no tiene internet, copia el .msi junto al .bat.',
eq_tab_share: 'Compartir',
eq_share_title: 'Compartir el menú Equipos',
eq_share_hint: 'Da acceso de solo lectura (Resumen, Equipos y Software) a usuarios que por su rol no lo ven. No podrán editar, ver agentes ni compartir.',
eq_share_pick: 'Elegir usuario...',
eq_share_add: 'Dar acceso',
eq_share_empty: 'Aún no has compartido Equipos con nadie.',
eq_share_role: 'Rol',
eq_share_since: 'Acceso desde',
eq_share_remove: 'Quitar acceso',
eq_share_remove_title: 'Quitar acceso a Equipos',
eq_share_remove_msg: 'dejará de ver el menú Equipos.',
eq_tab_users: 'Usuarios',
eq_users_session: 'Con sesión iniciada',
eq_users_local_count: 'Usuarios locales (total)',
eq_groups_local_count: 'Grupos locales (total)',
eq_users_local: 'Usuarios locales de Windows',
eq_groups_local: 'Grupos locales',
eq_users_hint: 'Solo cuentas locales del equipo: no incluye usuarios de dominio ni de Microsoft 365, e incluye cuentas de sistema o de programas. Los grupos no indican a qué usuario pertenecen.',
eq_tab_summary: 'Resumen',
eq_show_components: 'Mostrar actualizaciones, drivers y componentes del sistema',
eq_tab_devices: 'Equipos',
eq_tab_software_all: 'Software',
eq_tab_agents: 'Agentes',
eq_tab_general: 'General',
eq_tab_hardware: 'Hardware',
eq_tab_network: 'Red',
eq_tab_software: 'Software',
eq_tab_history: 'Historial',
eq_detail: 'Detalle del equipo',
eq_empty: 'Aún no hay equipos. Instala el agente GLPI en un equipo apuntando a este sistema (pestaña Agentes).',
eq_hostname: 'Nombre',
eq_kind: 'Tipo',
eq_kind_desktop: 'PC de escritorio',
eq_kind_laptop: 'Portátil',
eq_kind_server: 'Servidor',
eq_kind_virtual: 'Máquina virtual',
eq_kind_printer: 'Impresora',
eq_kind_network: 'Equipo de red',
eq_kind_other: 'Otro',
eq_status_active: 'Activo',
eq_status_retired: 'De baja',
eq_manufacturer_model: 'Marca y modelo',
eq_manufacturer: 'Fabricante',
eq_model: 'Modelo',
eq_serial: 'N.º de serie',
eq_os: 'Sistema operativo',
eq_domain: 'Dominio',
eq_last_user: 'Último usuario',
eq_ip: 'IP',
eq_first_seen: 'Primer reporte',
eq_last_seen: 'Último reporte',
eq_agent: 'Versión del agente',
eq_assigned_to: 'Asignado a',
eq_notes: 'Notas',
eq_cpu: 'Procesador',
eq_ram: 'Memoria RAM',
eq_disk_total: 'Almacenamiento',
eq_disk_max_used: 'volumen más lleno',
eq_memories: 'Módulos de memoria',
eq_disks: 'Discos físicos',
eq_volumes: 'Volúmenes',
eq_monitors: 'Monitores',
eq_slot: 'Ranura',
eq_capacity: 'Capacidad',
eq_type: 'Tipo',
eq_speed: 'Velocidad',
eq_mount: 'Unidad',
eq_fs: 'Sistema de archivos',
eq_free: 'Libre',
eq_adapter: 'Adaptador',
eq_mask: 'Máscara',
eq_gateway: 'Puerta de enlace',
eq_version: 'Versión',
eq_versions: 'Versiones',
eq_publisher: 'Editor',
eq_installed_on: 'Equipos',
eq_when: 'Fecha',
eq_change: 'Cambio',
eq_field: 'Campo',
eq_before: 'Antes',
eq_after: 'Después',
eq_history_empty: 'Sin cambios registrados entre reportes.',
eq_change_field: 'Dato modificado',
eq_change_disk_added: 'Disco agregado',
eq_change_disk_removed: 'Disco retirado',
eq_change_software_installed: 'Software instalado',
eq_change_software_removed: 'Software desinstalado',
eq_kpi_total: 'Equipos activos',
eq_kpi_stale: 'Sin reportar (+7 días)',
eq_kpi_disk_full: 'Disco ≥ 90% lleno',
eq_kpi_low_ram: 'RAM menor a 4 GB',
eq_by_os: 'Por sistema operativo',
eq_by_kind: 'Por tipo',
eq_top_software: 'Software más instalado',
eq_agent_setup: 'Conectar un agente GLPI',
eq_agent_setup_hint: 'En el archivo de configuración del agente (o en el instalador) usa esta dirección como servidor:',
eq_agent_setup_auth: 'Autenticación: usuario cualquiera y, como contraseña, el token generado abajo.',
eq_token_label: 'Etiqueta del token (ej. Oficina central)',
eq_token_new: 'Generar token',
eq_token_created: 'Token generado para',
eq_token_once: 'Cópialo ahora: no se vuelve a mostrar. En el sistema solo queda su huella cifrada.',
eq_token_last_used: 'Último uso',
eq_token_created_by: 'Creado por',
eq_token_enable: 'Activar',
eq_token_disable: 'Desactivar',
eq_token_delete_msg: 'Los agentes que usen este token dejarán de poder reportar. ¿Eliminarlo?',
eq_copied: 'Copiado',
vault_pin_label: 'PIN (4 números)',
vault_pin_confirm_label: 'Confirmar PIN',
vault_pin_current_label: 'PIN actual',
vault_pin_invalid: 'El PIN debe ser de 4 números',
vault_pin_mismatch: 'Los PIN no coinciden',
vault_create_pin_title: 'Crear PIN de acceso',
vault_create_pin_hint: 'Este PIN protege el acceso a tus contraseñas guardadas. Vas a necesitarlo cada vez que entres a esta sección.',
vault_create_pin_submit: 'Crear PIN y entrar',
vault_enter_pin_title: 'Ingresa tu PIN',
vault_unlock: 'Desbloquear',
vault_forgot_pin: '¿Olvidaste tu PIN?',
vault_forgot_pin_sent: 'Te enviamos un correo para restablecer tu PIN. Tus contraseñas guardadas no se ven afectadas.',
vault_change_pin: 'Cambiar PIN',
vault_reset_pin_title: 'Restablecer PIN',
vault_reset_pin_submit: 'Guardar PIN nuevo',
vault_reset_pin_success: 'Tu PIN fue actualizado. Tus contraseñas guardadas siguen intactas.',
vault_new_entry: 'Nueva credencial',
vault_field_title: 'Nombre',
vault_field_url: 'Enlace',
vault_field_username: 'Usuario',
vault_field_password: 'Contraseña',
vault_field_notes: 'Notas',
vault_field_icon: 'Ícono',
vault_icon_auto: 'Automático (inicial del nombre)',
vault_icon_more: 'Más íconos (marcas conocidas)',
vault_icon_less: 'Ocultar íconos de marca',
vault_password_unchanged_hint: 'Dejar en blanco para no cambiarla',
vault_reveal: 'Revelar',
vault_copy: 'Copiar',
vault_copied: 'Copiado al portapapeles',
vault_generate: 'Generar',
vault_countdown_hint: 'Tiempo para el cierre automático por inactividad. Se reinicia con cada tecla o clic.',
vault_auto_lock_notice: 'Saliste de Contraseñas por seguridad — ingresa tu PIN de nuevo para volver a entrar.',
vault_group_new: 'Nuevo grupo',
vault_group_name: 'Nombre del grupo',
vault_group_none: 'Sin grupo',
vault_group_back: 'Volver',
vault_group_entries_count: 'credencial(es)',
vault_field_group: 'Grupo',
vault_share_title: 'Compartir',
vault_share_add: 'Compartir con',
vault_share_placeholder: 'Elegir usuario',
vault_share_empty: 'No compartida con nadie.',
vault_share_group_action: 'Compartir grupo',
vault_share_group_hint_prefix: 'Comparte las ',
vault_share_group_hint_suffix: ' credenciales de este grupo, de solo lectura.',
vault_shared_by: 'Compartida por',
vault_destroy: 'Destruir',
vault_destroy_group_action: 'Destruir grupo',
vault_destroy_group_cascade_action: 'Destruir grupo y credenciales',
vault_confirm_destroy_title: 'Destrucción irreversible',
vault_confirm_destroy_entry_msg: 'Esta credencial se destruye para siempre. No se puede recuperar.',
vault_confirm_destroy_group_msg: 'Este grupo se destruye para siempre. Sus credenciales quedan sin grupo, no se borran.',
vault_confirm_destroy_group_cascade_prefix: 'Se destruyen el grupo y sus ',
vault_confirm_destroy_group_cascade_suffix: ' credenciales, para siempre. No se puede recuperar nada.',
notes_title: 'Notas',
notes_placeholder: 'Escribe un apunte rápido...',
notes_empty: 'No tienes notas todavía.',
notes_updated: 'Editado',
notes_new: 'Nueva nota',
notes_share_title: 'Compartir',
notes_share_add: 'Compartir con',
notes_share_placeholder: 'Elegir usuario',
notes_share_empty: 'No compartida con nadie.',
notes_shared_by: 'Compartida por',
recurring_task_new: 'Nueva tarea recurrente',
recurring_task_project: 'Proyecto de origen',
recurring_task_every: 'Cada',
recurring_task_interval: 'Periodicidad',
recurring_task_interval_unit: 'Unidad',
recurring_task_unit_days: 'días',
recurring_task_unit_months: 'meses',
recurring_task_unit_years: 'años',
recurring_task_next_due: 'Próximo vencimiento',
recurring_task_reminder: 'Recordatorio',
recurring_task_reminder_days: 'Avisar con (días de anticipación)',
recurring_task_reminder_hour: 'Hora del recordatorio',
recurring_task_active: 'Activa',
recurring_task_end_date: 'Hasta',
recurring_task_unlimited: 'Indefinida',
recurring_task_unlimited_hint: 'Vacío = se repite sin fin. Al pasar esta fecha, la tarea se desactiva sola.',
recurring_task_complete_cycle: 'Completar ciclo',
recurring_task_complete_confirm: '¿Confirmas que ya completaste este ciclo? Se calcula el próximo vencimiento sumando la periodicidad configurada.',
recurring_task_promote: 'Convertir en recurrente',
recurring_task_promote_title: 'Convertir en tarea recurrente',
recurring_task_promote_hint: 'La tarea original de la actividad no se borra. Se crea una tarea recurrente nueva, enlazada a este proyecto, que avisa por correo cuando se acerque cada vencimiento.',
project_delete_confirm_msg: '¿Seguro que deseas eliminar este proyecto? Se movera a la papelera y dejara de verse en el listado; un superadministrador puede restaurarlo o borrarlo definitivamente.',
project_trash: 'Papelera',
project_trash_title: 'Papelera de proyectos',
project_trash_back: 'Volver a proyectos',
project_trash_empty_hint: 'Los proyectos eliminados aparecen aqui hasta que se restauran o se borran definitivamente.',
common_restore: 'Restaurar',
activities_trash: 'Papelera de actividades',
activities_trash_empty: 'No hay actividades eliminadas.',
tasks_trash: 'Papelera de tareas',
tasks_trash_empty: 'No hay tareas eliminadas.',
project_restore: 'Restaurar',
project_delete_permanent: 'Eliminar definitivamente',
project_delete_permanent_confirm_msg: 'Esta accion NO se puede deshacer: se borra el proyecto y todas sus actividades, comentarios y archivos adjuntos de forma permanente.',
risk_low: 'Bajo',
risk_medium: 'Medio',
risk_high: 'Alto',
tab_info: 'Info',
tab_members: 'Miembros',
tab_activities: 'Actividades',
tab_gantt: 'Gantt',
tab_calendar: 'Calendario',
tab_comments: 'Comentarios',
tab_documents: 'Documentos',
activity_new: 'Nueva actividad',
activity_code: 'Codigo',
activity_start_date: 'Fecha inicio',
activity_due_date: 'Fecha limite',
activity_updated_at: 'Actualizado',
activity_actual_end_date: 'Fecha real de fin',
activity_progress: 'Avance',
activity_milestone: 'Es hito',
activity_estimated_hours: 'Horas estimadas',
activity_dependencies: 'Dependencias',
activity_move: 'Mover a otro proyecto',
activity_move_title: 'Mover actividad',
activity_move_target: 'Proyecto destino',
activity_move_confirm_msg: 'Se moverá la actividad "{activity}" (junto con sus tareas) al proyecto "{project}". ¿Deseas continuar?',
activity_convert: 'Convertir en proyecto',
activity_convert_title: 'Convertir actividad en proyecto',
activity_convert_hint: 'Una tarea siempre necesita una actividad contenedora — se crea un proyecto nuevo y, dentro, una actividad que recibirá las tareas (y comentarios/documentos) de esta actividad.',
activity_convert_project_name: 'Nombre del proyecto nuevo',
activity_convert_activity_name: 'Nombre de la actividad (contendrá las tareas)',
activity_convert_confirm_msg: 'Se convertirá la actividad "{activity}" en el proyecto nuevo "{project}", con una actividad "{newActivity}" que tendrá sus tareas. ¿Deseas continuar?',
activity_add_dependency: 'Agregar dependencia',
activity_depends_on: 'Depende de',
activity_no_dependency_options: 'No hay otras actividades en este proyecto para agregar como dependencia.',
tasks_title: 'Tareas',
task_new: 'Nueva tarea',
task_done: 'Hecha',
due_on_time: 'En tiempo',
due_warning: 'Proximo a vencer',
due_today: 'Vence hoy',
due_overdue: 'Vencido',
org_departments: 'Departamentos',
org_users: 'Usuarios',
department_new: 'Nuevo departamento',
department_parent: 'Departamento padre',
user_new: 'Nuevo usuario',
user_email: 'Correo',
user_role: 'Rol',
user_position: 'Cargo',
user_password: 'Clave inicial',
config_title: 'Configuracion',
config_appearance: 'Apariencia',
config_catalogs: 'Catalogos',
config_priorities: 'Prioridades',
config_project_statuses: 'Estados de proyecto',
config_activity_statuses: 'Estados de actividad',
config_project_types: 'Tipos de proyecto',
comments_title: 'Comentarios',
comment_placeholder: 'Escribe un comentario...',
comment_send: 'Enviar',
documents_title: 'Documentos adjuntos',
document_upload: 'Subir archivo',
document_view: 'Ver',
document_view_error: 'No se pudo cargar el contenido del archivo.',
document_download: 'Descargar',
notifications_title: 'Notificaciones',
notifications_empty: 'Sin notificaciones',
notifications_mark_all_read: 'Marcar todas como leidas',
},
'en-US': {
appName: 'LinkedCorp Projects',
nav_dashboard: 'Dashboard',
nav_projects: 'Projects',
nav_organization: 'Organization',
nav_config: 'Settings',
login_title: 'Sign in',
login_email: 'Email',
login_password: 'Password',
login_submit: 'Sign in',
login_error: 'Invalid credentials',
login_forgot_password: 'Forgot your password?',
login_create_account: 'Create account',
logout: 'Sign out',
register_title: 'Create account',
register_name: 'Full name',
register_password_confirm: 'Confirm password',
register_password_mismatch: 'Passwords do not match',
register_password_short: 'Password must be at least 8 characters',
register_submit: 'Sign up',
register_success: 'Account created. Check your email to confirm it; an administrator must approve it before you can sign in.',
register_back_to_login: 'Back to sign in',
verify_email_title: 'Verify email',
verify_email_success: 'Email confirmed. Your account is pending administrator approval.',
verify_email_missing_token: 'Invalid link: missing verification token.',
accept_invite_title: 'Complete your registration',
accept_invite_hint: 'You were invited to a project. Choose your name and a password to create your account.',
accept_invite_submit: 'Create my account',
accept_invite_missing_token: 'Invalid link: missing invite token.',
forgot_password_title: 'Recover password',
forgot_password_submit: 'Send instructions',
forgot_password_sent: 'If the email exists, we sent instructions to recover your password.',
reset_password_title: 'Choose a new password',
reset_password_new: 'New password',
reset_password_submit: 'Save password',
reset_password_success: 'Password updated. Redirecting to sign in...',
change_password_title: 'Change password',
change_password_current: 'Current password',
change_password_success: 'Password updated successfully.',
user_status_pending_verification: 'Pending email verification',
user_status_pending_approval: 'Pending approval',
user_status_active: 'Active',
user_status_invited: 'Invite pending',
user_approve: 'Approve',
user_reject: 'Reject',
user_approve_title: 'Approve user',
user_reject_confirm_msg: 'Are you sure you want to reject this registration request? It will be permanently deleted.',
user_resend: 'Resend email',
user_resend_sent: 'Email resent',
config_company: 'Company',
company_name: 'Company name',
company_logo: 'Logo',
company_logo_hint: 'PNG, JPG or WEBP. Used in the sidebar and on the sign-in screens.',
company_logo_none: 'No logo',
company_logo_choose: 'Choose image',
config_smtp: 'Email (SMTP)',
config_smtp_superadmin_only: 'Only the superadmin can configure the system email.',
smtp_host: 'Host',
smtp_port: 'Port',
smtp_user: 'User',
smtp_from: 'From',
smtp_pass: 'Password',
smtp_pass_configured_hint: 'Configured — leave blank to keep it unchanged',
smtp_not_configured: 'Not configured: emails are logged on the server (dev mode), not actually sent.',
smtp_test_title: 'Test configuration',
smtp_test_hint: 'Sends a real email with the settings above (saved or not) so you can confirm they work before trusting them.',
smtp_test_to: 'Send test to',
smtp_test_send: 'Send test',
smtp_test_sending: 'Sending...',
smtp_test_success: 'Test email sent successfully to',
config_updater: 'Updates',
updater_check: 'Check for updates',
updater_current_version: 'Installed version:',
updater_up_to_date: 'You are on the latest available version.',
updater_available: 'Update available',
updater_restart_required: 'This update requires restarting the system — coordinate with your administrator before applying it.',
updater_has_migrations: 'Includes database changes (new migrations).',
updater_criticality_alta: 'High',
updater_criticality_media: 'Medium',
updater_criticality_baja: 'Low',
updater_rollback_hint: 'Back up the database before updating. If something goes wrong, restore that backup and roll back to the commit before this update in the Gitea history.',
updater_apply: 'Update',
updater_applying: 'Updating…',
updater_apply_confirm_title: 'Apply update',
updater_apply_confirm_msg: 'This will back up the database, pull the new code, apply migrations if any, and restart the system. It may take a few minutes and the app will be briefly unavailable. Going from',
updater_apply_confirm_ok: 'Yes, update',
updater_apply_started: 'Update started. The system will restart in a few minutes.',
updater_applying_hint: 'Update in progress — do not close this tab. The system will restart on its own when done.',
updater_apply_timeout: 'The update is taking longer than expected. Check back in a few minutes or verify the server.',
updater_apply_not_configured: 'Auto-update is not enabled on this server. Ask your administrator to apply this update via SSH.',
updater_login_popup_title: 'There is a pending update',
updater_login_popup_msg: 'A new version of the system is available:',
updater_login_popup_go: 'View updates',
config_error_logs: 'System errors',
error_logs_clear: 'Clear log',
error_logs_clear_confirm_msg: 'Are you sure you want to delete the entire error log history? This cannot be undone.',
error_logs_empty: 'No errors logged.',
error_logs_source: 'Source',
error_logs_severity: 'Severity',
error_logs_severity_alta: 'High',
error_logs_severity_media: 'Medium',
error_logs_severity_baja: 'Low',
password_show: 'Show password',
password_hide: 'Hide password',
common_new: 'New',
common_edit: 'Edit',
common_save: 'Save',
common_cancel: 'Cancel',
common_accept: 'Accept',
common_delete: 'Delete',
common_close: 'Close',
common_search: 'Search...',
common_select: 'Select',
common_actions: 'Actions',
common_search_no_results: 'No results',
common_actions: 'Actions',
common_view: 'View',
common_yes: 'Yes',
common_no: 'No',
common_or: 'or',
common_loading: 'Loading...',
common_empty: 'No data to show',
common_confirm_delete_title: 'Confirm delete',
common_confirm_delete_msg: 'Are you sure you want to delete this item? This cannot be undone.',
common_saved: 'Changes saved',
common_error: 'An error occurred',
common_name: 'Name',
common_description: 'Description',
common_status: 'Status',
common_priority: 'Priority',
common_responsible: 'Owner',
common_department: 'Department',
common_active: 'Active',
common_inactive: 'Inactive',
common_all: 'All',
theme_light: 'Light',
theme_dark: 'Dark',
lang_es: 'Spanish',
lang_en: 'English',
button_mode_icon_text: 'Icon + text',
button_mode_icon: 'Icon only',
button_mode_text: 'Text only',
dashboard_title: 'Dashboard',
dashboard_active_projects: 'Active projects',
dashboard_overdue_projects: 'Overdue projects',
dashboard_due_soon_projects: 'Due soon',
dashboard_pending_activities: 'Pending activities',
dashboard_overdue_activities: 'Overdue activities',
dashboard_today_activities: 'Due today',
dashboard_average_progress: 'Average progress',
common_of: 'of',
draft_leave_title: 'Unsaved changes',
draft_leave_msg: 'You are leaving a section with changes you have not saved yet:',
draft_leave_hint: 'If you leave them pending, they are kept in this browser and editing reopens when you come back.',
draft_discard: 'Discard changes',
draft_keep_pending: 'Leave pending',
draft_keep_editing: 'Keep editing',
draft_pending_mark: 'Unsaved changes',
draft_field_modified: 'modified',
draft_restored_msg: 'Unsaved changes were recovered. Review and save them, or discard them.',
draft_conflict_title: 'The record changed',
draft_conflict_reload_msg: 'The record changed on the server. Reload to review the current version before saving. Your pending changes will be kept.',
draft_conflict_reload: 'Discard and reload',
draft_conflict_msg: 'This record changed on the server since you started editing it. Saving your pending changes will replace those changes.',
draft_conflict_save_msg: 'This record changed on the server since you started editing it (someone else or another tab). Do you want to overwrite it with your changes?',
draft_conflict_overwrite: 'Overwrite',
draft_keep_mine: 'Keep my changes',
draft_use_server: 'Discard my changes',
session_expired_login_msg: 'Your session expired. Sign in again to return where you were; unsaved changes were kept.',
dashboard_cards: 'Cards',
dashboard_no_cards: 'No cards selected. Choose which ones to show in "Cards".',
dashboard_projects_by_status: 'Projects by status',
projects_title: 'Projects',
project_page_range: 'Showing', project_page_of: 'of', project_page_previous: 'Previous', project_page_next: 'Next',
draft_conflict_check_failed: 'Could not check the current version. Try again.',
project_code: 'Code',
project_new: 'New project',
project_objective: 'Objective',
project_type: 'Project type',
project_owner: 'Owner',
project_start_date: 'Start date',
project_estimated_end_date: 'Estimated end',
project_actual_end_date: 'Actual end',
project_progress: 'Progress',
project_shared_with: 'Shared with',
project_requesting_department: 'Requesting department',
project_responsible_department: 'Responsible department',
project_risk: 'Risk',
project_notes: 'Notes',
project_members: 'Members',
project_members_owner_only_hint: 'Only the project owner can share it and change permissions.',
project_add_member: 'Share project',
project_add_member_role: 'Permission',
project_role_owner: 'Owner',
project_role_read: 'Read',
project_role_write: 'Write',
project_invite_email: 'Invite by email',
project_invite_email_hint: "If the email doesn't belong to anyone yet, they get a link to finish signing up and join the project.",
project_invite_sent: 'Invite sent by email',
project_created_at: 'Created',
project_updated_at: 'Updated',
project_deleted_at: 'Deleted',
project_filter_due_soon: 'Due soon only (7 days)',
project_filter_progress: 'Progress',
project_filter_progress_hide: 'Hide 100%',
project_filter_progress_only: 'Only 100%',
nav_recurring_tasks: 'Recurring tasks',
nav_notes: 'Notes',
nav_passwords: 'Passwords',
nav_devices: 'Devices',
eq_installer_title: 'Windows installer',
eq_installer_row_hint: 'You can also download it with the icon on each token in the list.',
eq_token_no_secret: 'Older token: cannot be recovered, generate a new one',
eq_installer_hint: 'Download an installer (.bat) with the server and token already set: double-click it on the machine, nothing else to configure.',
eq_installer_token: 'Token (filled in when you generate one)',
eq_installer_tag: 'Optional tag (e.g. Accounting)',
eq_installer_download: 'Download installer',
eq_installer_note: 'The .bat contains the token: share it only with whoever installs. It downloads the official agent from GitHub; if the machine has no internet, put the .msi next to the .bat.',
eq_tab_share: 'Share',
eq_share_title: 'Share the Devices menu',
eq_share_hint: 'Give read-only access (Summary, Devices and Software) to users whose role does not see it. They cannot edit, see agents or share.',
eq_share_pick: 'Pick a user...',
eq_share_add: 'Grant access',
eq_share_empty: 'You have not shared Devices with anyone yet.',
eq_share_role: 'Role',
eq_share_since: 'Access since',
eq_share_remove: 'Remove access',
eq_share_remove_title: 'Remove access to Devices',
eq_share_remove_msg: 'will no longer see the Devices menu.',
eq_tab_users: 'Users',
eq_users_session: 'Signed in',
eq_users_local_count: 'Local users (total)',
eq_groups_local_count: 'Local groups (total)',
eq_users_local: 'Windows local users',
eq_groups_local: 'Local groups',
eq_users_hint: 'Local accounts of the machine only: domain and Microsoft 365 users are not included, and system or application accounts are. Groups do not show which user belongs to them.',
eq_tab_summary: 'Summary',
eq_show_components: 'Show updates, drivers and system components',
eq_tab_devices: 'Devices',
eq_tab_software_all: 'Software',
eq_tab_agents: 'Agents',
eq_tab_general: 'General',
eq_tab_hardware: 'Hardware',
eq_tab_network: 'Network',
eq_tab_software: 'Software',
eq_tab_history: 'History',
eq_detail: 'Device detail',
eq_empty: 'No devices yet. Install the GLPI agent on a machine pointing to this system (Agents tab).',
eq_hostname: 'Name',
eq_kind: 'Type',
eq_kind_desktop: 'Desktop',
eq_kind_laptop: 'Laptop',
eq_kind_server: 'Server',
eq_kind_virtual: 'Virtual machine',
eq_kind_printer: 'Printer',
eq_kind_network: 'Network device',
eq_kind_other: 'Other',
eq_status_active: 'Active',
eq_status_retired: 'Retired',
eq_manufacturer_model: 'Make and model',
eq_manufacturer: 'Manufacturer',
eq_model: 'Model',
eq_serial: 'Serial no.',
eq_os: 'Operating system',
eq_domain: 'Domain',
eq_last_user: 'Last user',
eq_ip: 'IP',
eq_first_seen: 'First report',
eq_last_seen: 'Last report',
eq_agent: 'Agent version',
eq_assigned_to: 'Assigned to',
eq_notes: 'Notes',
eq_cpu: 'Processor',
eq_ram: 'RAM',
eq_disk_total: 'Storage',
eq_disk_max_used: 'fullest volume',
eq_memories: 'Memory modules',
eq_disks: 'Physical disks',
eq_volumes: 'Volumes',
eq_monitors: 'Monitors',
eq_slot: 'Slot',
eq_capacity: 'Capacity',
eq_type: 'Type',
eq_speed: 'Speed',
eq_mount: 'Drive',
eq_fs: 'File system',
eq_free: 'Free',
eq_adapter: 'Adapter',
eq_mask: 'Mask',
eq_gateway: 'Gateway',
eq_version: 'Version',
eq_versions: 'Versions',
eq_publisher: 'Publisher',
eq_installed_on: 'Devices',
eq_when: 'Date',
eq_change: 'Change',
eq_field: 'Field',
eq_before: 'Before',
eq_after: 'After',
eq_history_empty: 'No changes recorded between reports.',
eq_change_field: 'Field changed',
eq_change_disk_added: 'Disk added',
eq_change_disk_removed: 'Disk removed',
eq_change_software_installed: 'Software installed',
eq_change_software_removed: 'Software removed',
eq_kpi_total: 'Active devices',
eq_kpi_stale: 'Not reporting (+7 days)',
eq_kpi_disk_full: 'Disk ≥ 90% full',
eq_kpi_low_ram: 'RAM under 4 GB',
eq_by_os: 'By operating system',
eq_by_kind: 'By type',
eq_top_software: 'Most installed software',
eq_agent_setup: 'Connect a GLPI agent',
eq_agent_setup_hint: 'In the agent configuration file (or installer) use this address as the server:',
eq_agent_setup_auth: 'Authentication: any user name and, as password, the token generated below.',
eq_token_label: 'Token label (e.g. Head office)',
eq_token_new: 'Generate token',
eq_token_created: 'Token generated for',
eq_token_once: 'Copy it now: it is not shown again. Only its hash is stored.',
eq_token_last_used: 'Last used',
eq_token_created_by: 'Created by',
eq_token_enable: 'Enable',
eq_token_disable: 'Disable',
eq_token_delete_msg: 'Agents using this token will no longer be able to report. Delete it?',
eq_copied: 'Copied',
vault_pin_label: 'PIN (4 digits)',
vault_pin_confirm_label: 'Confirm PIN',
vault_pin_current_label: 'Current PIN',
vault_pin_invalid: 'The PIN must be 4 digits',
vault_pin_mismatch: 'The PINs don\'t match',
vault_create_pin_title: 'Create access PIN',
vault_create_pin_hint: 'This PIN protects access to your saved passwords. You\'ll need it every time you enter this section.',
vault_create_pin_submit: 'Create PIN and enter',
vault_enter_pin_title: 'Enter your PIN',
vault_unlock: 'Unlock',
vault_forgot_pin: 'Forgot your PIN?',
vault_forgot_pin_sent: 'We sent you an email to reset your PIN. Your saved passwords are not affected.',
vault_change_pin: 'Change PIN',
vault_reset_pin_title: 'Reset PIN',
vault_reset_pin_submit: 'Save new PIN',
vault_reset_pin_success: 'Your PIN was updated. Your saved passwords are still intact.',
vault_new_entry: 'New credential',
vault_field_title: 'Name',
vault_field_url: 'Link',
vault_field_username: 'Username',
vault_field_password: 'Password',
vault_field_notes: 'Notes',
vault_field_icon: 'Icon',
vault_icon_auto: 'Automatic (name initial)',
vault_icon_more: 'More icons (well-known brands)',
vault_icon_less: 'Hide brand icons',
vault_password_unchanged_hint: 'Leave blank to keep it unchanged',
vault_reveal: 'Reveal',
vault_copy: 'Copy',
vault_copied: 'Copied to clipboard',
vault_generate: 'Generate',
vault_countdown_hint: 'Time until automatic close for inactivity. It resets with every key press or click.',
vault_auto_lock_notice: 'You left Passwords for security — enter your PIN again to come back in.',
vault_group_new: 'New group',
vault_group_name: 'Group name',
vault_group_none: 'No group',
vault_group_back: 'Back',
vault_group_entries_count: 'credential(s)',
vault_field_group: 'Group',
vault_share_title: 'Share',
vault_share_add: 'Share with',
vault_share_placeholder: 'Choose a user',
vault_share_empty: 'Not shared with anyone.',
vault_share_group_action: 'Share group',
vault_share_group_hint_prefix: 'Shares the ',
vault_share_group_hint_suffix: ' credentials in this group, read-only.',
vault_shared_by: 'Shared by',
vault_destroy: 'Destroy',
vault_destroy_group_action: 'Destroy group',
vault_destroy_group_cascade_action: 'Destroy group and credentials',
vault_confirm_destroy_title: 'Irreversible destruction',
vault_confirm_destroy_entry_msg: 'This credential is destroyed forever. It cannot be recovered.',
vault_confirm_destroy_group_msg: 'This group is destroyed forever. Its credentials stay ungrouped, they are not deleted.',
vault_confirm_destroy_group_cascade_prefix: 'The group and its ',
vault_confirm_destroy_group_cascade_suffix: ' credentials are destroyed forever. Nothing can be recovered.',
notes_title: 'Notes',
notes_placeholder: 'Write a quick note...',
notes_empty: 'You don\'t have any notes yet.',
notes_updated: 'Edited',
notes_new: 'New note',
notes_share_title: 'Share',
notes_share_add: 'Share with',
notes_share_placeholder: 'Choose a user',
notes_share_empty: 'Not shared with anyone.',
notes_shared_by: 'Shared by',
recurring_task_new: 'New recurring task',
recurring_task_project: 'Source project',
recurring_task_every: 'Every',
recurring_task_interval: 'Recurrence',
recurring_task_interval_unit: 'Unit',
recurring_task_unit_days: 'days',
recurring_task_unit_months: 'months',
recurring_task_unit_years: 'years',
recurring_task_next_due: 'Next due date',
recurring_task_reminder: 'Reminder',
recurring_task_reminder_days: 'Remind (days ahead)',
recurring_task_reminder_hour: 'Reminder hour',
recurring_task_active: 'Active',
recurring_task_end_date: 'Until',
recurring_task_unlimited: 'Unlimited',
recurring_task_unlimited_hint: 'Empty = repeats forever. Once past this date, the task deactivates itself.',
recurring_task_complete_cycle: 'Complete cycle',
recurring_task_complete_confirm: 'Confirm you already completed this cycle? The next due date is calculated by adding the configured recurrence.',
recurring_task_promote: 'Turn into recurring',
recurring_task_promote_title: 'Turn into recurring task',
recurring_task_promote_hint: "The original task in the activity is not deleted. A new recurring task is created, linked to this project, that emails a reminder as each due date approaches.",
project_delete_confirm_msg: 'Are you sure you want to delete this project? It will move to the trash and disappear from the list; a superadmin can restore it or delete it permanently.',
project_trash: 'Trash',
project_trash_title: 'Project trash',
project_trash_back: 'Back to projects',
project_trash_empty_hint: 'Deleted projects show up here until they are restored or permanently deleted.',
common_restore: 'Restore',
activities_trash: 'Deleted activities',
activities_trash_empty: 'No deleted activities.',
tasks_trash: 'Deleted tasks',
tasks_trash_empty: 'No deleted tasks.',
project_restore: 'Restore',
project_delete_permanent: 'Delete permanently',
project_delete_permanent_confirm_msg: 'This CANNOT be undone: the project and all its activities, comments and attachments will be permanently deleted.',
risk_low: 'Low',
risk_medium: 'Medium',
risk_high: 'High',
tab_info: 'Info',
tab_members: 'Members',
tab_activities: 'Activities',
tab_gantt: 'Gantt',
tab_calendar: 'Calendar',
tab_comments: 'Comments',
tab_documents: 'Documents',
activity_new: 'New activity',
activity_code: 'Code',
activity_start_date: 'Start date',
activity_due_date: 'Due date',
activity_updated_at: 'Updated',
activity_actual_end_date: 'Actual end date',
activity_progress: 'Progress',
activity_milestone: 'Is milestone',
activity_estimated_hours: 'Estimated hours',
activity_dependencies: 'Dependencies',
activity_move: 'Move to another project',
activity_move_title: 'Move activity',
activity_move_target: 'Target project',
activity_move_confirm_msg: 'Activity "{activity}" (along with its tasks) will move to project "{project}". Continue?',
activity_convert: 'Convert to project',
activity_convert_title: 'Convert activity to project',
activity_convert_hint: 'A task always needs a containing activity — a new project is created and, inside it, an activity that will receive this activity\'s tasks (and comments/documents).',
activity_convert_project_name: 'New project name',
activity_convert_activity_name: 'Activity name (will hold the tasks)',
activity_convert_confirm_msg: 'Activity "{activity}" will become the new project "{project}", with an activity "{newActivity}" holding its tasks. Continue?',
activity_add_dependency: 'Add dependency',
activity_depends_on: 'Depends on',
activity_no_dependency_options: 'There are no other activities in this project to add as a dependency.',
tasks_title: 'Tasks',
task_new: 'New task',
task_done: 'Done',
due_on_time: 'On time',
due_warning: 'Due soon',
due_today: 'Due today',
due_overdue: 'Overdue',
org_departments: 'Departments',
org_users: 'Users',
department_new: 'New department',
department_parent: 'Parent department',
user_new: 'New user',
user_email: 'Email',
user_role: 'Role',
user_position: 'Position',
user_password: 'Initial password',
config_title: 'Settings',
config_appearance: 'Appearance',
config_catalogs: 'Catalogs',
config_priorities: 'Priorities',
config_project_statuses: 'Project statuses',
config_activity_statuses: 'Activity statuses',
config_project_types: 'Project types',
comments_title: 'Comments',
comment_placeholder: 'Write a comment...',
comment_send: 'Send',
documents_title: 'Attachments',
document_upload: 'Upload file',
document_view: 'View',
document_view_error: 'Could not load the file content.',
document_download: 'Download',
notifications_title: 'Notifications',
notifications_empty: 'No notifications',
notifications_mark_all_read: 'Mark all as read',
},
};