mitlist/fe/src/i18n/fr.json

641 lines
25 KiB
JSON

{
"message": {
"hello": "Bonjour"
},
"loginPage": {
"emailLabel": "E-mail",
"passwordLabel": "Mot de passe",
"togglePasswordVisibilityLabel": "Basculer la visibilité du mot de passe",
"loginButton": "Connexion",
"signupLink": "Vous n'avez pas de compte ? S'inscrire",
"errors": {
"emailRequired": "L'e-mail est requis",
"emailInvalid": "Format d'e-mail invalide",
"passwordRequired": "Le mot de passe est requis",
"loginFailed": "Échec de la connexion. Veuillez vérifier vos identifiants."
},
"notifications": {
"loginSuccess": "Connexion réussie"
}
},
"listsPage": {
"retryButton": "Réessayer",
"emptyState": {
"noListsForGroup": "Aucune liste trouvée pour ce groupe.",
"noListsYet": "Vous n'avez pas encore de listes.",
"personalGlobalInfo": "Créez une liste personnelle ou rejoignez un groupe pour voir les listes partagées.",
"groupSpecificInfo": "Ce groupe n'a pas encore de listes."
},
"createNewListButton": "Créer une nouvelle liste",
"loadingLists": "Chargement des listes...",
"noDescription": "Pas de description",
"addItemPlaceholder": "Ajouter un nouvel article...",
"createCard": {
"title": "+ Liste"
},
"pageTitle": {
"forGroup": "Listes pour {groupName}",
"forGroupId": "Listes pour le groupe {groupId}",
"myLists": "Mes listes"
},
"errors": {
"fetchFailed": "Échec de la récupération des listes."
}
},
"groupsPage": {
"retryButton": "Réessayer",
"emptyState": {
"title": "Pas encore de groupes !",
"description": "Vous n'êtes membre d'aucun groupe pour le moment. Créez-en un ou rejoignez-en un à l'aide d'un code d'invitation.",
"createButton": "Créer un nouveau groupe"
},
"groupCard": {
"newListButton": "Liste"
},
"createCard": {
"title": "+ Groupe"
},
"joinGroup": {
"title": "Rejoindre un groupe avec un code d'invitation",
"inputLabel": "Entrez le code d'invitation",
"inputPlaceholder": "Entrez le code d'invitation",
"joinButton": "Rejoindre"
},
"createDialog": {
"title": "Créer un nouveau groupe",
"closeButtonLabel": "Fermer",
"groupNameLabel": "Nom du groupe",
"cancelButton": "Annuler",
"createButton": "Créer"
},
"errors": {
"fetchFailed": "Échec du chargement des groupes",
"groupNameRequired": "Le nom du groupe est requis",
"createFailed": "Échec de la création du groupe. Veuillez réessayer.",
"inviteCodeRequired": "Le code d'invitation est requis",
"joinFailed": "Échec pour rejoindre le groupe. Veuillez vérifier le code d'invitation et réessayer.",
"invalidDataFromServer": "Données invalides reçues du serveur.",
"createFailedConsole": "Erreur lors de la création du groupe :",
"joinFailedConsole": "Erreur pour rejoindre le groupe :"
},
"notifications": {
"groupCreatedSuccess": "Groupe '{groupName}' créé avec succès.",
"joinSuccessNamed": "Vous avez rejoint le groupe '{groupName}' avec succès.",
"joinSuccessGeneric": "Vous avez rejoint le groupe avec succès.",
"listCreatedSuccess": "Liste '{listName}' créée avec succès."
}
},
"authCallbackPage": {
"redirecting": "Redirection...",
"errors": {
"authenticationFailed": "Échec de l'authentification",
"noTokenProvided": "Aucun jeton fourni"
}
},
"choresPage": {
"title": "Tâches",
"tabs": {
"overdue": "En retard",
"today": "Aujourd'hui",
"upcoming": "À venir",
"allPending": "Toutes en attente",
"completed": "Terminées"
},
"viewToggle": {
"calendarLabel": "Vue Calendrier",
"calendarText": "Calendrier",
"listLabel": "Vue Liste",
"listText": "Liste"
},
"newChoreButtonLabel": "Nouvelle tâche",
"newChoreButtonText": "Nouvelle tâche",
"loadingState": {
"loadingChores": "Chargement des tâches..."
},
"calendar": {
"prevMonthLabel": "Mois précédent",
"nextMonthLabel": "Mois suivant",
"weekdays": {
"sun": "Dim",
"mon": "Lun",
"tue": "Mar",
"wed": "Mer",
"thu": "Jeu",
"fri": "Ven",
"sat": "Sam"
},
"addChoreToDayLabel": "Ajouter une tâche à ce jour",
"emptyState": "Aucune tâche à afficher pour cette période."
},
"listView": {
"choreTypePersonal": "Personnel",
"choreTypeGroupFallback": "Groupe",
"completedDatePrefix": "Terminée le :",
"actions": {
"doneTitle": "Marquer comme terminée",
"doneText": "Terminée",
"undoTitle": "Marquer comme non terminée",
"undoText": "Annuler",
"editTitle": "Modifier",
"editLabel": "Modifier la tâche",
"editText": "Modifier",
"deleteTitle": "Supprimer",
"deleteLabel": "Supprimer la tâche",
"deleteText": "Supprimer"
},
"emptyState": {
"message": "Aucune tâche dans cette vue. Bien joué !",
"viewAllButton": "Voir toutes les tâches en attente"
}
},
"choreModal": {
"editTitle": "Modifier la tâche",
"newTitle": "Nouvelle tâche",
"closeButtonLabel": "Fermer la modale",
"nameLabel": "Nom",
"namePlaceholder": "Entrez le nom de la tâche",
"typeLabel": "Type",
"typePersonal": "Personnel",
"typeGroup": "Groupe",
"groupLabel": "Groupe",
"groupSelectDefault": "Sélectionnez un groupe",
"descriptionLabel": "Description",
"descriptionPlaceholder": "Ajoutez une description (facultatif)",
"frequencyLabel": "Fréquence",
"intervalLabel": "Intervalle (jours)",
"intervalPlaceholder": "ex: 10",
"dueDateLabel": "Date d'échéance",
"quickDueDateToday": "Aujourd'hui",
"quickDueDateTomorrow": "Demain",
"quickDueDateNextWeek": "Semaine prochaine",
"cancelButton": "Annuler",
"saveButton": "Enregistrer"
},
"consoleErrors": {
"loadFailed": "Échec du chargement de toutes les tâches :",
"loadGroupsFailed": "Échec du chargement des groupes",
"createAssignmentForNewChoreFailed": "Échec de la création de l'affectation pour la nouvelle tâche :",
"saveFailed": "Échec de l'enregistrement de la tâche :",
"deleteFailed": "Échec de la suppression de la tâche :",
"createAssignmentFailed": "Échec de la création de l'affectation :",
"updateCompletionStatusFailed": "Échec de la mise à jour du statut d'achèvement de la tâche :"
},
"deleteDialog": {
"title": "Supprimer la tâche",
"confirmationText": "Êtes-vous sûr de vouloir supprimer cette tâche ? Cette action est irréversible.",
"deleteButton": "Supprimer"
},
"shortcutsModal": {
"title": "Raccourcis clavier",
"descNewChore": "Nouvelle tâche",
"descToggleView": "Basculer la vue (Liste/Calendrier)",
"descToggleShortcuts": "Afficher/Masquer les raccourcis",
"descCloseModal": "Fermer toute modale/dialogue ouvert"
},
"frequencyOptions": {
"oneTime": "Une fois",
"daily": "Quotidien",
"weekly": "Hebdomadaire",
"monthly": "Mensuel",
"custom": "Personnalisé"
},
"frequency": {
"customInterval": "Tous les {n} jour | Tous les {n} jours"
},
"formatters": {
"noDueDate": "Pas de date d'échéance",
"dueToday": "Pour aujourd'hui",
"dueTomorrow": "Pour demain",
"overdueFull": "En retard : {date}",
"dueFull": "Échéance le {date}",
"invalidDate": "Date invalide"
},
"notifications": {
"loadFailed": "Échec du chargement des tâches.",
"loadGroupsFailed": "Échec du chargement des groupes.",
"updateSuccess": "Tâche '{name}' mise à jour avec succès.",
"createSuccess": "Tâche '{name}' créée avec succès.",
"updateFailed": "Échec de la mise à jour de la tâche.",
"createFailed": "Échec de la création de la tâche.",
"deleteSuccess": "Tâche '{name}' supprimée avec succès.",
"deleteFailed": "Échec de la suppression de la tâche.",
"markedDone": "{name} marquée comme terminée.",
"markedNotDone": "{name} marquée comme non terminée.",
"statusUpdateFailed": "Échec de la mise à jour du statut de la tâche.",
"createAssignmentFailed": "Échec de la création de l'affectation pour la tâche."
},
"validation": {
"nameRequired": "Le nom de la tâche est requis.",
"groupRequired": "Veuillez sélectionner un groupe pour les tâches de groupe.",
"intervalRequired": "L'intervalle personnalisé doit être d'au moins 1 jour.",
"dueDateRequired": "La date d'échéance est requise.",
"invalidDueDate": "Format de date d'échéance invalide."
},
"unsavedChangesConfirmation": "Vous avez des modifications non enregistrées dans le formulaire de tâche. Êtes-vous sûr de vouloir quitter ?"
},
"errorNotFoundPage": {
"errorCode": "404",
"errorMessage": "Oups. Rien ici...",
"goHomeButton": "Aller à l'accueil"
},
"groupDetailPage": {
"loadingLabel": "Chargement des détails du groupe...",
"retryButton": "Réessayer",
"groupNotFound": "Groupe non trouvé ou une erreur s'est produite.",
"members": {
"title": "Membres du groupe",
"defaultRole": "Membre",
"removeButton": "Retirer",
"emptyState": "Aucun membre trouvé.",
"closeMenuLabel": "Fermer le menu"
},
"invites": {
"title": "Inviter des membres",
"description": "Invitez de nouveaux membres en générant un code partageable.",
"addMemberButtonLabel": "Ajouter un membre",
"closeInviteLabel": "Fermer l'invitation",
"regenerateButton": "Régénérer le code d'invitation",
"generateButton": "Générer le code d'invitation",
"activeCodeLabel": "Code d'invitation actif actuel :",
"copyButtonLabel": "Copier le code d'invitation",
"copySuccess": "Code d'invitation copié dans le presse-papiers !",
"emptyState": "Aucun code d'invitation actif. Cliquez sur le bouton ci-dessus pour en générer un.",
"errors": {
"newDataInvalid": "Les données du nouveau code d'invitation sont invalides."
}
},
"errors": {
"failedToFetchActiveInvite": "Échec de la récupération du code d'invitation actif.",
"failedToFetchGroupDetails": "Échec de la récupération des détails du groupe.",
"failedToLoadUpcomingChores": "Erreur lors du chargement des tâches à venir :",
"failedToLoadRecentExpenses": "Erreur lors du chargement des dépenses récentes :"
},
"console": {
"noActiveInvite": "Aucun code d'invitation actif trouvé pour ce groupe."
},
"chores": {
"title": "Tâches du groupe",
"manageButton": "Gérer les tâches",
"duePrefix": "Échéance :",
"emptyState": "Aucune tâche planifiée. Cliquez sur \"Gérer les tâches\" pour en créer !"
},
"expenses": {
"title": "Dépenses du groupe",
"manageButton": "Gérer les dépenses",
"emptyState": "Aucune dépense enregistrée. Cliquez sur \"Gérer les dépenses\" pour en ajouter !",
"paidBy": "Payé par :",
"owes": "doit",
"paidAmount": "Payé :",
"onDate": "le",
"settleShareButton": "Régler ma part",
"activityLabel": "Activité :",
"byUser": "par",
"fallbackUserName": "ID utilisateur : {userId}",
"activityByUserFallback": "Utilisateur {userId}",
"splitTypes": {
"equal": "Égal",
"exactAmounts": "Montants exacts",
"percentage": "Pourcentage",
"shares": "Parts",
"itemBased": "Basé sur l'article"
}
},
"notifications": {
"fetchDetailsFailed": "Échec de la récupération des détails du groupe.",
"fetchInviteFailed": "Échec de la récupération du code d'invitation actif.",
"generateInviteSuccess": "Nouveau code d'invitation généré avec succès !",
"generateInviteError": "Échec de la génération du code d'invitation.",
"clipboardNotSupported": "Presse-papiers non pris en charge ou aucun code à copier.",
"copyInviteFailed": "Échec de la copie du code d'invitation.",
"removeMemberSuccess": "Membre retiré avec succès",
"removeMemberFailed": "Échec du retrait du membre",
"loadExpensesFailed": "Échec du chargement des dépenses récentes.",
"cannotSettleOthersShares": "Vous ne pouvez régler que vos propres parts.",
"settlementDataMissing": "Impossible de traiter le règlement : données manquantes.",
"settleShareSuccess": "Part réglée avec succès !",
"settleShareFailed": "Échec du règlement de la part."
},
"loading": {
"settlement": "Traitement du règlement..."
},
"settleShareModal": {
"title": "Régler la part",
"settleAmountFor": "Régler le montant pour {userName} :",
"amountLabel": "Montant",
"cancelButton": "Annuler",
"confirmButton": "Confirmer",
"errors": {
"enterAmount": "Veuillez entrer un montant.",
"positiveAmount": "Veuillez entrer un montant positif.",
"exceedsRemaining": "Le montant ne peut pas dépasser le reste : {amount}.",
"noSplitSelected": "Erreur : Aucune répartition sélectionnée."
}
},
"status": {
"settled": "Réglé",
"partiallySettled": "Partiellement réglé",
"unsettled": "Non réglé",
"paid": "Payé",
"partiallyPaid": "Partiellement payé",
"unpaid": "Non payé",
"unknown": "Statut inconnu"
}
},
"accountPage": {
"title": "Paramètres du compte",
"loadingProfile": "Chargement du profil...",
"retryButton": "Réessayer",
"profileSection": {
"header": "Informations du profil",
"nameLabel": "Nom",
"emailLabel": "E-mail",
"saveButton": "Enregistrer les modifications"
},
"passwordSection": {
"header": "Changer le mot de passe",
"currentPasswordLabel": "Mot de passe actuel",
"newPasswordLabel": "Nouveau mot de passe",
"changeButton": "Changer le mot de passe"
},
"notificationsSection": {
"header": "Préférences de notification",
"emailNotificationsLabel": "Notifications par e-mail",
"emailNotificationsDescription": "Recevoir des notifications par e-mail pour les mises à jour importantes",
"listUpdatesLabel": "Mises à jour des listes",
"listUpdatesDescription": "Être notifié lorsque les listes sont mises à jour",
"groupActivitiesLabel": "Activités de groupe",
"groupActivitiesDescription": "Recevoir des notifications pour les activités de groupe"
},
"notifications": {
"profileLoadFailed": "Échec du chargement du profil",
"profileUpdateSuccess": "Profil mis à jour avec succès",
"profileUpdateFailed": "Échec de la mise à jour du profil",
"passwordFieldsRequired": "Veuillez remplir les champs du mot de passe actuel et du nouveau mot de passe.",
"passwordTooShort": "Le nouveau mot de passe doit comporter au moins 8 caractères.",
"passwordChangeSuccess": "Mot de passe changé avec succès",
"passwordChangeFailed": "Échec du changement de mot de passe",
"preferencesUpdateSuccess": "Préférences mises à jour avec succès",
"preferencesUpdateFailed": "Échec de la mise à jour des préférences"
},
"saving": "Enregistrement..."
},
"signupPage": {
"header": "S'inscrire",
"fullNameLabel": "Nom complet",
"emailLabel": "E-mail",
"passwordLabel": "Mot de passe",
"confirmPasswordLabel": "Confirmer le mot de passe",
"togglePasswordVisibility": "Basculer la visibilité du mot de passe",
"submitButton": "S'inscrire",
"loginLink": "Vous avez déjà un compte ? Connexion",
"validation": {
"nameRequired": "Le nom est requis",
"emailRequired": "L'e-mail est requis",
"emailInvalid": "Format d'e-mail invalide",
"passwordRequired": "Le mot de passe est requis",
"passwordLength": "Le mot de passe doit comporter au moins 8 caractères",
"confirmPasswordRequired": "Veuillez confirmer votre mot de passe",
"passwordsNoMatch": "Les mots de passe ne correspondent pas"
},
"notifications": {
"signupFailed": "Échec de l'inscription. Veuillez réessayer.",
"signupSuccess": "Compte créé avec succès. Veuillez vous connecter."
}
},
"listDetailPage": {
"loading": {
"list": "Chargement de la liste...",
"items": "Chargement des articles...",
"ocrProcessing": "Traitement de l'image...",
"addingOcrItems": "Ajout des articles OCR...",
"costSummary": "Chargement du résumé...",
"expenses": "Chargement des dépenses...",
"settlement": "Traitement du règlement..."
},
"errors": {
"fetchFailed": "Échec du chargement des détails de la liste.",
"genericLoadFailure": "Groupe non trouvé ou une erreur s'est produite.",
"ocrNoItems": "Aucun article extrait de l'image.",
"ocrFailed": "Échec du traitement de l'image.",
"addItemFailed": "Échec de l'ajout de l'article.",
"updateItemFailed": "Échec de la mise à jour de l'article.",
"updateItemPriceFailed": "Échec de la mise à jour du prix de l'article.",
"deleteItemFailed": "Échec de la suppression de l'article.",
"addOcrItemsFailed": "Échec de l'ajout des articles OCR.",
"fetchItemsFailed": "Échec du chargement des articles : {errorMessage}",
"loadCostSummaryFailed": "Échec du chargement du résumé des coûts."
},
"retryButton": "Réessayer",
"buttons": {
"addViaOcr": "Ajouter via OCR",
"addItem": "Ajouter",
"addItems": "Ajouter des articles",
"cancel": "Annuler",
"confirm": "Confirmer",
"saveChanges": "Enregistrer les modifications",
"close": "Fermer",
"costSummary": "Résumé des coûts"
},
"badges": {
"groupList": "Liste de groupe",
"personalList": "Liste personnelle"
},
"items": {
"emptyState": {
"title": "Pas encore d'articles !",
"message": "Ajoutez des articles en utilisant le formulaire ci-dessous."
},
"addItemForm": {
"placeholder": "Ajouter un nouvel article",
"quantityPlaceholder": "Qté",
"itemNameSrLabel": "Nom du nouvel article",
"quantitySrLabel": "Quantité"
},
"pricePlaceholder": "Prix",
"editItemAriaLabel": "Modifier l'article",
"deleteItemAriaLabel": "Supprimer l'article"
},
"modals": {
"ocr": {
"title": "Ajouter des articles via OCR",
"uploadLabel": "Télécharger une image"
},
"confirmation": {
"title": "Confirmation"
},
"editItem": {
"title": "Modifier l'article",
"nameLabel": "Nom de l'article",
"quantityLabel": "Quantité"
},
"costSummary": {
"title": "Résumé des coûts de la liste",
"totalCostLabel": "Coût total de la liste :",
"equalShareLabel": "Part égale par utilisateur :",
"participantsLabel": "Utilisateurs participants :",
"userBalancesHeader": "Soldes des utilisateurs",
"tableHeaders": {
"user": "Utilisateur",
"itemsAddedValue": "Valeur des articles ajoutés",
"amountDue": "Montant dû",
"balance": "Solde"
},
"emptyState": "Aucun résumé des coûts disponible."
},
"settleShare": {
"title": "Régler la part",
"settleAmountFor": "Régler le montant pour {userName} :",
"amountLabel": "Montant",
"errors": {
"enterAmount": "Veuillez entrer un montant.",
"positiveAmount": "Veuillez entrer un montant positif.",
"exceedsRemaining": "Le montant ne peut pas dépasser le reste : {amount}.",
"noSplitSelected": "Erreur : Aucune répartition sélectionnée."
}
}
},
"confirmations": {
"updateMessage": "Marquer '{itemName}' comme {status} ?",
"statusComplete": "terminé",
"statusIncomplete": "incomplet",
"deleteMessage": "Supprimer '{itemName}' ? Ceci ne peut pas être annulé."
},
"notifications": {
"itemAddedSuccess": "Article ajouté avec succès.",
"itemsAddedSuccessOcr": "{count} article(s) ajouté(s) avec succès depuis l'OCR.",
"itemUpdatedSuccess": "Article mis à jour avec succès.",
"itemDeleteSuccess": "Article supprimé avec succès.",
"enterItemName": "Veuillez entrer un nom d'article.",
"costSummaryLoadFailed": "Échec du chargement du résumé des coûts.",
"cannotSettleOthersShares": "Vous ne pouvez régler que vos propres parts.",
"settlementDataMissing": "Impossible de traiter le règlement : données manquantes.",
"settleShareSuccess": "Part réglée avec succès !",
"settleShareFailed": "Échec du règlement de la part."
},
"expensesSection": {
"title": "Dépenses",
"addExpenseButton": "Ajouter une dépense",
"loading": "Chargement des dépenses...",
"emptyState": "Aucune dépense enregistrée pour cette liste pour le moment.",
"paidBy": "Payé par :",
"onDate": "le",
"owes": "doit",
"paidAmount": "Payé :",
"activityLabel": "Activité :",
"byUser": "par",
"settleShareButton": "Régler ma part",
"retryButton": "Réessayer"
},
"status": {
"settled": "Réglé",
"partiallySettled": "Partiellement réglé",
"unsettled": "Non réglé",
"paid": "Payé",
"partiallyPaid": "Partiellement payé",
"unpaid": "Non payé",
"unknown": "Statut inconnu"
}
},
"myChoresPage": {
"title": "Mes tâches assignées",
"showCompletedToggle": "Afficher les tâches terminées",
"timelineHeaders": {
"overdue": "En retard",
"today": "Pour aujourd'hui",
"thisWeek": "Cette semaine",
"later": "Plus tard",
"completed": "Terminées"
},
"choreCard": {
"personal": "Personnel",
"group": "Groupe",
"duePrefix": "Échéance",
"completedPrefix": "Terminée",
"dueToday": "Pour aujourd'hui",
"markCompleteButton": "Marquer comme terminée"
},
"frequencies": {
"one_time": "Une fois",
"daily": "Quotidien",
"weekly": "Hebdomadaire",
"monthly": "Mensuel",
"custom": "Personnalisé",
"unknown": "Fréquence inconnue"
},
"dates": {
"invalidDate": "Date invalide",
"unknownDate": "Date inconnue"
},
"emptyState": {
"title": "Pas encore d'affectations !",
"noAssignmentsPending": "Vous n'avez aucune affectation de tâche en attente.",
"noAssignmentsAll": "Vous n'avez aucune affectation de tâche (terminée ou en attente).",
"viewAllChoresButton": "Voir toutes les tâches"
},
"notifications": {
"loadFailed": "Échec du chargement des affectations",
"markedComplete": "\"{choreName}\" marquée comme terminée !",
"markCompleteFailed": "Échec du marquage de l'affectation comme terminée"
}
},
"personalChoresPage": {
"title": "Tâches personnelles",
"newChoreButton": "Nouvelle tâche",
"editButton": "Modifier",
"deleteButton": "Supprimer",
"cancelButton": "Annuler",
"saveButton": "Enregistrer",
"modals": {
"editChoreTitle": "Modifier la tâche",
"newChoreTitle": "Nouvelle tâche",
"deleteChoreTitle": "Supprimer la tâche"
},
"form": {
"nameLabel": "Nom",
"descriptionLabel": "Description",
"frequencyLabel": "Fréquence",
"intervalLabel": "Intervalle (jours)",
"dueDateLabel": "Prochaine date d'échéance"
},
"deleteDialog": {
"confirmationText": "Êtes-vous sûr de vouloir supprimer cette tâche ?"
},
"frequencies": {
"one_time": "Une fois",
"daily": "Quotidien",
"weekly": "Hebdomadaire",
"monthly": "Mensuel",
"custom": "Personnalisé",
"unknown": "Fréquence inconnue"
},
"dates": {
"invalidDate": "Date invalide",
"duePrefix": "Échéance"
},
"notifications": {
"loadFailed": "Échec du chargement des tâches personnelles",
"updateSuccess": "Tâche personnelle mise à jour avec succès",
"createSuccess": "Tâche personnelle créée avec succès",
"saveFailed": "Échec de l'enregistrement de la tâche personnelle",
"deleteSuccess": "Tâche personnelle supprimée avec succès",
"deleteFailed": "Échec de la suppression de la tâche personnelle"
}
},
"indexPage": {
"welcomeMessage": "Bienvenue sur l'application Valerie UI",
"mainPageInfo": "Ceci est la page d'index principale.",
"sampleTodosHeader": "Exemples de tâches (depuis les données IndexPage)",
"totalCountLabel": "Nombre total depuis meta :",
"noTodos": "Aucune tâche à afficher."
},
"languageSelector": {
"title": "Langue",
"languages": {
"en": "English",
"de": "Deutsch",
"nl": "Nederlands",
"fr": "Français",
"es": "Español"
}
}
}