Files
apocapoc-api/internal/i18n/locales/es.json
T
david a2aa8b2a76 Add i18n support with English and Spanish translations
- Created i18n package with translator and middleware
- Added translation files for English (en.json) and Spanish (es.json)
- Updated all HTTP handlers to use i18n for error/success messages
- Added comprehensive test coverage for i18n (87%)
- Updated CI workflow to use Go 1.24
- All tests passing with 50.8% total coverage
2025-11-29 12:27:26 +01:00

110 lines
7.3 KiB
JSON

{
"errors": {
"invalid_request_body": "Cuerpo de solicitud inválido",
"email_already_registered": "El correo electrónico ya está registrado",
"registration_closed": "El registro está actualmente cerrado",
"failed_register_user": "Error al registrar usuario",
"invalid_credentials": "Correo electrónico o contraseña inválidos",
"email_not_verified": "Por favor verifica tu correo electrónico antes de iniciar sesión",
"failed_login": "Error al iniciar sesión",
"failed_generate_token": "Error al generar token",
"failed_create_refresh_token": "Error al crear token de actualización",
"failed_save_refresh_token": "Error al guardar token de actualización",
"invalid_expired_refresh_token": "Token de actualización inválido o expirado",
"failed_refresh_token": "Error al actualizar token",
"refresh_token_not_found": "Token de actualización no encontrado",
"invalid_refresh_token": "Token de actualización inválido",
"user_not_authenticated": "Usuario no autenticado",
"failed_get_user": "Error al obtener usuario",
"failed_get_habits": "Error al obtener hábitos",
"failed_create_habit": "Error al crear hábito",
"habit_not_found": "Hábito no encontrado",
"access_denied": "Acceso denegado",
"failed_get_habit": "Error al obtener hábito",
"invalid_input": "Entrada inválida",
"failed_update_habit": "Error al actualizar hábito",
"failed_archive_habit": "Error al archivar hábito",
"failed_get_habit_entries": "Error al obtener entradas de hábito",
"invalid_date_format": "Formato de fecha inválido (usa AAAA-MM-DD)",
"invalid_page_parameter": "Parámetro 'page' inválido",
"invalid_limit_parameter": "Parámetro 'limit' inválido (debe ser 1-100)",
"pagination_required": "Se requiere paginación: proporciona el parámetro 'limit' o usa un rango de fechas ≤ 1 año",
"invalid_from_date_format": "Formato de fecha 'from' inválido (usa AAAA-MM-DD)",
"invalid_to_date_format": "Formato de fecha 'to' inválido (usa AAAA-MM-DD)",
"habit_already_marked": "El hábito ya está marcado para esta fecha",
"failed_mark_habit": "Error al marcar hábito",
"habit_entry_not_found": "Entrada de hábito no encontrada",
"failed_unmark_habit": "Error al desmarcar hábito",
"invalid_expired_verification_token": "Token de verificación inválido o expirado",
"email_already_verified": "El correo electrónico ya está verificado",
"failed_verify_email": "Error al verificar correo electrónico",
"invalid_email": "Correo electrónico inválido",
"user_not_found": "Usuario no encontrado",
"failed_send_verification_email": "Error al enviar correo de verificación",
"email_not_verified_reset": "Por favor verifica tu correo electrónico antes de restablecer la contraseña",
"failed_send_reset_email": "Error al enviar correo de restablecimiento",
"invalid_token_or_password": "Token inválido o expirado, o no se cumplen los requisitos de contraseña",
"failed_reset_password": "Error al restablecer contraseña",
"failed_delete_user": "Error al eliminar usuario",
"failed_get_stats": "Error al obtener estadísticas"
},
"success": {
"registration_with_verification": "Registro exitoso. Por favor revisa tu correo electrónico para verificar tu cuenta.",
"registration_without_verification": "Registro exitoso. Ya puedes iniciar sesión.",
"logged_out": "Sesión cerrada exitosamente",
"email_verified": "Correo electrónico verificado exitosamente",
"verification_email_sent": "Correo de verificación enviado exitosamente",
"password_reset_email_sent": "Correo de restablecimiento de contraseña enviado exitosamente",
"password_reset": "Contraseña restablecida exitosamente",
"user_deleted": "Usuario y todos los datos asociados eliminados exitosamente"
},
"validation": {
"email_required": "el email es requerido",
"email_invalid_format": "el email debe ser una dirección de correo válida",
"email_too_long": "el email no debe exceder 254 caracteres",
"password_required": "la password es requerida",
"password_min_length": "la password debe tener al menos 8 caracteres",
"password_max_length": "la password no debe exceder 128 caracteres",
"password_uppercase": "la password debe contener al menos una letra mayúscula",
"password_lowercase": "la password debe contener al menos una letra minúscula",
"password_digit": "la password debe contener al menos un dígito",
"password_special_char": "la password debe contener al menos un carácter especial (!@#$%^&*)",
"timezone_required": "la timezone es requerida",
"timezone_invalid": "la timezone no es una zona horaria IANA válida",
"name_required": "el name es requerido",
"name_too_long": "el name no debe exceder 255 caracteres",
"type_invalid": "el type debe ser uno de: BOOLEAN, COUNTER, VALUE",
"frequency_invalid": "la frequency debe ser una de: DAILY, WEEKLY, MONTHLY",
"specific_days_required": "specific_days es requerido para frecuencia WEEKLY",
"specific_days_invalid": "specific_days debe contener valores entre 0-6 (0=Domingo, 6=Sábado)",
"specific_dates_required": "specific_dates es requerido para frecuencia MONTHLY",
"specific_dates_invalid": "specific_dates debe contener valores entre 1-31",
"target_value_required": "target_value es requerido para tipo VALUE",
"target_value_positive": "target_value debe ser positivo"
},
"emails": {
"verify_email_subject": "Verifica tu dirección de correo electrónico",
"verify_email_title": "¡Bienvenido! Por favor verifica tu correo electrónico",
"verify_email_body": "Gracias por registrarte. Por favor haz clic en el enlace a continuación para verificar tu dirección de correo electrónico:",
"verify_email_link": "Verificar correo electrónico",
"verify_email_expiry": "Este enlace expirará en 24 horas.",
"verify_email_ignore": "Si no creaste una cuenta, puedes ignorar este correo de forma segura.",
"resend_verification_subject": "Verifica tu dirección de correo electrónico",
"resend_verification_title": "Verifica tu dirección de correo electrónico",
"resend_verification_body": "Por favor haz clic en el enlace a continuación para verificar tu dirección de correo electrónico:",
"resend_verification_link": "Verificar correo electrónico",
"resend_verification_expiry": "Este enlace expirará en 24 horas.",
"resend_verification_ignore": "Si no solicitaste esto, puedes ignorar este correo de forma segura.",
"password_reset_subject": "Solicitud de restablecimiento de contraseña",
"password_reset_title": "Solicitud de restablecimiento de contraseña",
"password_reset_body": "Has solicitado restablecer tu contraseña. Por favor haz clic en el enlace a continuación:",
"password_reset_link": "Restablecer contraseña",
"password_reset_expiry": "Este enlace expirará en 1 hora.",
"password_reset_ignore": "Si no solicitaste esto, puedes ignorar este correo de forma segura.",
"welcome_subject": "¡Bienvenido a Apocapoc!",
"welcome_title": "¡Bienvenido a Apocapoc!",
"welcome_body": "Tu correo electrónico ha sido verificado exitosamente. Ya puedes comenzar a usar todas las funcionalidades de Apocapoc.",
"welcome_enjoy": "¡Disfruta construyendo mejores hábitos!"
}
}