feat(i18n): add French language support and enhance localization

- Introduced French as a supported language across the application, updating locale files and adding translations for various components.
- Enhanced language handling logic to accommodate French, ensuring proper detection and fallback mechanisms.
- Updated UI elements to include French language options, improving accessibility for French-speaking users.
- Refactored SEO handling to include French in hreflang links, enhancing search engine indexing for multilingual content.
- Added new scripts for managing French translations and ensuring consistency across language files.
This commit is contained in:
Torsten Schulz (local)
2026-04-07 18:04:03 +02:00
parent 545357e008
commit 3e74ae47f4
56 changed files with 5220 additions and 175 deletions

View File

@@ -0,0 +1,81 @@
{
"personal": {
"calendar": {
"title": "calendrier",
"kicker": "planification",
"intro": "Rendez-vous, anniversaires et vos propres entrées dans un aperçu structuré.",
"today": "Aujourd'hui",
"newEntry": "Nouvelle entrée",
"editEntry": "Modifier l'entrée",
"selectedDays": "{count} jours sélectionnés",
"createEventForSelection": "Créer un rendez-vous",
"clearSelection": "Désélectionner",
"allDay": "Toute la journée",
"views": {
"month": "Mois",
"week": "Semaine",
"workweek": "semaine de travail",
"day": "jour"
},
"weekdays": {
"mon": "Mo",
"tue": "Mar",
"wed": "Épouser",
"thu": "faire",
"fri": "MS",
"sat": "Assis",
"sun": "Donc"
},
"weekdaysFull": {
"mon": "Lundi",
"tue": "Mardi",
"wed": "Mercredi",
"thu": "Jeudi",
"fri": "Vendredi",
"sat": "Samedi",
"sun": "Dimanche"
},
"months": {
"jan": "Janvier",
"feb": "Février",
"mar": "Mars",
"apr": "Avril",
"may": "Peut",
"jun": "Juin",
"jul": "Juillet",
"aug": "Août",
"sep": "Septembre",
"oct": "Octobre",
"nov": "Novembre",
"dec": "Décembre"
},
"categories": {
"personal": "Personnel",
"work": "Travail",
"family": "Familie",
"health": "Santé",
"birthday": "Anniversaire",
"holiday": "Vacances",
"reminder": "Mémoire",
"other": "Divers"
},
"form": {
"title": "Titel",
"titlePlaceholder": "Entrez le titre...",
"category": "catégorie",
"startDate": "Date de début",
"startTime": "Heure de début",
"endDate": "Date de fin",
"endTime": "Fin des temps",
"allDay": "Toute la journée",
"description": "Beschreibung",
"descriptionPlaceholder": "Description facultative...",
"save": "Sauvegarder",
"cancel": "Annuler",
"delete": "Supprimer",
"saveError": "Erreur lors de l'enregistrement du rendez-vous",
"deleteError": "Erreur lors de la suppression du rendez-vous"
}
}
}
}