- Add go-i18n package for internationalization - Create i18n middleware to extract Accept-Language header - Add translation files for en, es, fr, de, pt languages - Localize all handler error messages and responses - Add language context to all API handlers Supported languages: English, Spanish, French, German, Portuguese 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
188 lines
10 KiB
JSON
188 lines
10 KiB
JSON
{
|
|
"error.invalid_request_body": "Corps de requete non valide",
|
|
"error.invalid_credentials": "Identifiants non valides",
|
|
"error.account_inactive": "Le compte est inactif",
|
|
"error.username_taken": "Nom d'utilisateur deja pris",
|
|
"error.email_taken": "Email deja enregistre",
|
|
"error.email_already_taken": "Email deja utilise",
|
|
"error.registration_failed": "Echec de l'inscription",
|
|
"error.not_authenticated": "Non authentifie",
|
|
"error.failed_to_get_user": "Echec de la recuperation de l'utilisateur",
|
|
"error.failed_to_update_profile": "Echec de la mise a jour du profil",
|
|
"error.invalid_verification_code": "Code de verification non valide",
|
|
"error.verification_code_expired": "Le code de verification a expire",
|
|
"error.email_already_verified": "Email deja verifie",
|
|
"error.verification_failed": "Echec de la verification",
|
|
"error.failed_to_resend_verification": "Echec du renvoi de la verification",
|
|
"error.rate_limit_exceeded": "Trop de demandes de reinitialisation de mot de passe. Veuillez reessayer plus tard.",
|
|
"error.too_many_attempts": "Trop de tentatives. Veuillez demander un nouveau code.",
|
|
"error.invalid_reset_token": "Jeton de reinitialisation non valide ou expire",
|
|
"error.password_reset_failed": "Echec de la reinitialisation du mot de passe",
|
|
"error.apple_signin_not_configured": "La connexion Apple n'est pas configuree",
|
|
"error.apple_signin_failed": "Echec de la connexion Apple",
|
|
"error.invalid_apple_token": "Jeton d'identite Apple non valide",
|
|
|
|
"error.invalid_task_id": "ID de tache non valide",
|
|
"error.invalid_residence_id": "ID de propriete non valide",
|
|
"error.invalid_contractor_id": "ID de prestataire non valide",
|
|
"error.invalid_document_id": "ID de document non valide",
|
|
"error.invalid_completion_id": "ID de completion non valide",
|
|
"error.invalid_user_id": "ID d'utilisateur non valide",
|
|
"error.invalid_notification_id": "ID de notification non valide",
|
|
"error.invalid_device_id": "ID d'appareil non valide",
|
|
|
|
"error.task_not_found": "Tache non trouvee",
|
|
"error.residence_not_found": "Propriete non trouvee",
|
|
"error.contractor_not_found": "Prestataire non trouve",
|
|
"error.document_not_found": "Document non trouve",
|
|
"error.completion_not_found": "Completion de tache non trouvee",
|
|
"error.user_not_found": "Utilisateur non trouve",
|
|
"error.share_code_invalid": "Code de partage non valide",
|
|
"error.share_code_expired": "Le code de partage a expire",
|
|
|
|
"error.task_access_denied": "Vous n'avez pas acces a cette tache",
|
|
"error.residence_access_denied": "Vous n'avez pas acces a cette propriete",
|
|
"error.contractor_access_denied": "Vous n'avez pas acces a ce prestataire",
|
|
"error.document_access_denied": "Vous n'avez pas acces a ce document",
|
|
"error.not_residence_owner": "Seul le proprietaire peut effectuer cette action",
|
|
"error.cannot_remove_owner": "Impossible de retirer le proprietaire",
|
|
"error.user_already_member": "L'utilisateur est deja membre de cette propriete",
|
|
"error.properties_limit_reached": "Vous avez atteint le nombre maximum de proprietes pour votre abonnement",
|
|
|
|
"error.task_already_cancelled": "La tache est deja annulee",
|
|
"error.task_already_archived": "La tache est deja archivee",
|
|
|
|
"error.failed_to_parse_form": "Echec de l'analyse du formulaire",
|
|
"error.task_id_required": "task_id est requis",
|
|
"error.invalid_task_id_value": "task_id non valide",
|
|
"error.failed_to_upload_image": "Echec du telechargement de l'image",
|
|
"error.residence_id_required": "residence_id est requis",
|
|
"error.invalid_residence_id_value": "residence_id non valide",
|
|
"error.title_required": "Le titre est requis",
|
|
"error.failed_to_upload_file": "Echec du telechargement du fichier",
|
|
|
|
"message.logged_out": "Deconnexion reussie",
|
|
"message.email_verified": "Email verifie avec succes",
|
|
"message.verification_email_sent": "Email de verification envoye",
|
|
"message.password_reset_email_sent": "Si un compte existe avec cet email, un code de reinitialisation a ete envoye.",
|
|
"message.reset_code_verified": "Code verifie avec succes",
|
|
"message.password_reset_success": "Mot de passe reinitialise avec succes. Veuillez vous connecter avec votre nouveau mot de passe.",
|
|
|
|
"message.task_deleted": "Tache supprimee avec succes",
|
|
"message.task_in_progress": "Tache marquee comme en cours",
|
|
"message.task_cancelled": "Tache annulee",
|
|
"message.task_uncancelled": "Tache reactived",
|
|
"message.task_archived": "Tache archivee",
|
|
"message.task_unarchived": "Tache desarchivee",
|
|
"message.completion_deleted": "Completion supprimee avec succes",
|
|
|
|
"message.residence_deleted": "Propriete supprimee avec succes",
|
|
"message.user_removed": "Utilisateur retire de la propriete",
|
|
"message.tasks_report_generated": "Rapport de taches genere avec succes",
|
|
"message.tasks_report_sent": "Rapport de taches genere et envoye a {{.Email}}",
|
|
"message.tasks_report_email_failed": "Rapport de taches genere mais l'email n'a pas pu etre envoye",
|
|
|
|
"message.contractor_deleted": "Prestataire supprime avec succes",
|
|
|
|
"message.document_deleted": "Document supprime avec succes",
|
|
"message.document_activated": "Document active",
|
|
"message.document_deactivated": "Document desactive",
|
|
|
|
"message.notification_marked_read": "Notification marquée comme lue",
|
|
"message.all_notifications_marked_read": "Toutes les notifications marquées comme lues",
|
|
"message.device_removed": "Appareil supprimé",
|
|
|
|
"message.subscription_upgraded": "Abonnement mis à niveau avec succès",
|
|
"message.subscription_cancelled": "Abonnement annulé. Vous conserverez les avantages Pro jusqu'à la fin de votre période de facturation.",
|
|
"message.subscription_restored": "Abonnement restauré avec succès",
|
|
|
|
"message.file_deleted": "Fichier supprimé avec succès",
|
|
"message.static_data_refreshed": "Données statiques actualisées",
|
|
|
|
"error.notification_not_found": "Notification non trouvée",
|
|
"error.invalid_platform": "Plateforme non valide",
|
|
|
|
"error.upgrade_trigger_not_found": "Déclencheur de mise à niveau non trouvé",
|
|
"error.receipt_data_required": "receipt_data est requis pour iOS",
|
|
"error.purchase_token_required": "purchase_token est requis pour Android",
|
|
|
|
"error.no_file_provided": "Aucun fichier fourni",
|
|
|
|
"error.failed_to_fetch_residence_types": "Échec de la récupération des types de propriété",
|
|
"error.failed_to_fetch_task_categories": "Échec de la récupération des catégories de tâches",
|
|
"error.failed_to_fetch_task_priorities": "Échec de la récupération des priorités de tâches",
|
|
"error.failed_to_fetch_task_frequencies": "Échec de la récupération des fréquences de tâches",
|
|
"error.failed_to_fetch_task_statuses": "Échec de la récupération des statuts de tâches",
|
|
"error.failed_to_fetch_contractor_specialties": "Échec de la récupération des spécialités des prestataires",
|
|
|
|
"push.task_due_soon.title": "Tache Bientot Due",
|
|
"push.task_due_soon.body": "{{.TaskTitle}} est due le {{.DueDate}}",
|
|
"push.task_overdue.title": "Tache en Retard",
|
|
"push.task_overdue.body": "{{.TaskTitle}} est en retard",
|
|
"push.task_completed.title": "Tache Terminee",
|
|
"push.task_completed.body": "{{.UserName}} a termine {{.TaskTitle}}",
|
|
"push.task_assigned.title": "Nouvelle Tache Assignee",
|
|
"push.task_assigned.body": "{{.TaskTitle}} vous a ete assignee",
|
|
"push.residence_shared.title": "Propriete Partagee",
|
|
"push.residence_shared.body": "{{.UserName}} a partage {{.ResidenceName}} avec vous",
|
|
|
|
"email.welcome.subject": "Bienvenue sur Casera !",
|
|
"email.verification.subject": "Verifiez Votre Email",
|
|
"email.password_reset.subject": "Code de Reinitialisation de Mot de Passe",
|
|
"email.tasks_report.subject": "Rapport de Taches pour {{.ResidenceName}}",
|
|
|
|
"lookup.residence_type.house": "Maison",
|
|
"lookup.residence_type.apartment": "Appartement",
|
|
"lookup.residence_type.condo": "Copropriete",
|
|
"lookup.residence_type.townhouse": "Maison de Ville",
|
|
"lookup.residence_type.mobile_home": "Mobil-home",
|
|
"lookup.residence_type.other": "Autre",
|
|
|
|
"lookup.task_category.plumbing": "Plomberie",
|
|
"lookup.task_category.electrical": "Electricite",
|
|
"lookup.task_category.hvac": "Climatisation",
|
|
"lookup.task_category.appliances": "Electromenager",
|
|
"lookup.task_category.exterior": "Exterieur",
|
|
"lookup.task_category.interior": "Interieur",
|
|
"lookup.task_category.landscaping": "Jardinage",
|
|
"lookup.task_category.safety": "Securite",
|
|
"lookup.task_category.cleaning": "Nettoyage",
|
|
"lookup.task_category.pest_control": "Lutte Antiparasitaire",
|
|
"lookup.task_category.seasonal": "Saisonnier",
|
|
"lookup.task_category.other": "Autre",
|
|
|
|
"lookup.task_priority.low": "Basse",
|
|
"lookup.task_priority.medium": "Moyenne",
|
|
"lookup.task_priority.high": "Haute",
|
|
"lookup.task_priority.urgent": "Urgente",
|
|
|
|
"lookup.task_status.pending": "En Attente",
|
|
"lookup.task_status.in_progress": "En Cours",
|
|
"lookup.task_status.completed": "Terminee",
|
|
"lookup.task_status.cancelled": "Annulee",
|
|
"lookup.task_status.archived": "Archivee",
|
|
|
|
"lookup.task_frequency.once": "Une Fois",
|
|
"lookup.task_frequency.daily": "Quotidien",
|
|
"lookup.task_frequency.weekly": "Hebdomadaire",
|
|
"lookup.task_frequency.biweekly": "Toutes les 2 Semaines",
|
|
"lookup.task_frequency.monthly": "Mensuel",
|
|
"lookup.task_frequency.quarterly": "Trimestriel",
|
|
"lookup.task_frequency.semiannually": "Tous les 6 Mois",
|
|
"lookup.task_frequency.annually": "Annuel",
|
|
|
|
"lookup.contractor_specialty.plumber": "Plombier",
|
|
"lookup.contractor_specialty.electrician": "Electricien",
|
|
"lookup.contractor_specialty.hvac_technician": "Technicien CVC",
|
|
"lookup.contractor_specialty.handyman": "Bricoleur",
|
|
"lookup.contractor_specialty.landscaper": "Paysagiste",
|
|
"lookup.contractor_specialty.roofer": "Couvreur",
|
|
"lookup.contractor_specialty.painter": "Peintre",
|
|
"lookup.contractor_specialty.carpenter": "Menuisier",
|
|
"lookup.contractor_specialty.pest_control": "Desinsectisation",
|
|
"lookup.contractor_specialty.cleaning": "Nettoyage",
|
|
"lookup.contractor_specialty.pool_service": "Service Piscine",
|
|
"lookup.contractor_specialty.general_contractor": "Entrepreneur General",
|
|
"lookup.contractor_specialty.other": "Autre"
|
|
}
|