@frank-auth/react
Version:
Flexible and customizable React UI components for Frank Authentication
779 lines (771 loc) • 35.4 kB
text/typescript
import type {LocaleMessages} from './types';
export const fr: LocaleMessages = {
common: {
actions: {
save: 'Enregistrer',
cancel: 'Annuler',
delete: 'Supprimer',
edit: 'Modifier',
update: 'Mettre à jour',
create: 'Créer',
submit: 'Soumettre',
reset: 'Réinitialiser',
clear: 'Effacer',
search: 'Rechercher',
filter: 'Filtrer',
sort: 'Trier',
refresh: 'Actualiser',
reload: 'Recharger',
back: 'Retour',
next: 'Suivant',
previous: 'Précédent',
continue: 'Continuer',
finish: 'Terminer',
close: 'Fermer',
open: 'Ouvrir',
show: 'Afficher',
hide: 'Masquer',
copy: 'Copier',
paste: 'Coller',
cut: 'Couper',
select: 'Sélectionner',
selectAll: 'Tout sélectionner',
deselect: 'Désélectionner',
confirm: 'Confirmer',
deny: 'Refuser',
approve: 'Approuver',
reject: 'Rejeter',
retry: 'Réessayer',
undo: 'Annuler',
redo: 'Rétablir',
},
status: {
loading: 'Chargement',
success: 'Succès',
error: 'Erreur',
warning: 'Avertissement',
info: 'Information',
pending: 'En attente',
completed: 'Terminé',
failed: 'Échoué',
cancelled: 'Annulé',
active: 'Actif',
inactive: 'Inactif',
enabled: 'Activé',
disabled: 'Désactivé',
online: 'En ligne',
offline: 'Hors ligne',
connected: 'Connecté',
disconnected: 'Déconnecté',
},
timeAgo: {
justNow: 'à l\'instant',
minutesAgo: 'il y a {count} minutes',
hoursAgo: 'il y a {count} heures',
daysAgo: 'il y a {count} jours',
weeksAgo: 'il y a {count} semaines',
monthsAgo: 'il y a {count} mois',
yearsAgo: 'il y a {count} ans',
},
navigation: {
home: 'Accueil',
dashboard: 'Tableau de bord',
profile: 'Profil',
settings: 'Paramètres',
help: 'Aide',
support: 'Support',
documentation: 'Documentation',
feedback: 'Commentaires',
about: 'À propos',
privacy: 'Confidentialité',
terms: 'Conditions',
contact: 'Contact',
},
general: {
yes: 'Oui',
no: 'Non',
ok: 'OK',
maybe: 'Peut-être',
none: 'Aucun',
all: 'Tout',
other: 'Autre',
unknown: 'Inconnu',
optional: 'Facultatif',
required: 'Obligatoire',
recommended: 'Recommandé',
advanced: 'Avancé',
basic: 'Basique',
custom: 'Personnalisé',
default: 'Par défaut',
example: 'Exemple',
placeholder: 'Espace réservé',
noData: 'Aucune donnée disponible',
noResults: 'Aucun résultat trouvé',
empty: 'Vide',
total: 'Total',
subtotal: 'Sous-total',
count: 'Nombre',
limit: 'Limite',
unlimited: 'Illimité',
},
},
auth: {
signIn: {
title: 'Se connecter',
subtitle: 'Bon retour ! Veuillez vous connecter à votre compte.',
emailLabel: 'Email',
emailPlaceholder: 'Entrez votre email',
usernameLabel: 'Nom d\'utilisateur',
usernamePlaceholder: 'Entrez votre nom d\'utilisateur',
passwordLabel: 'Mot de passe',
passwordPlaceholder: 'Entrez votre mot de passe',
rememberMe: 'Se souvenir de moi',
forgotPassword: 'Mot de passe oublié ?',
signInButton: 'Se connecter',
signInWithProvider: 'Se connecter avec {provider}',
orDivider: 'ou',
noAccount: 'Vous n\'avez pas de compte ?',
createAccount: 'Créer un compte',
success: 'Connexion réussie',
welcomeBack: 'Bon retour !',
},
signUp: {
title: 'Créer un compte',
subtitle: 'Commencez en créant votre compte.',
firstNameLabel: 'Prénom',
firstNamePlaceholder: 'Entrez votre prénom',
lastNameLabel: 'Nom',
lastNamePlaceholder: 'Entrez votre nom',
emailLabel: 'Email',
emailPlaceholder: 'Entrez votre email',
usernameLabel: 'Nom d\'utilisateur',
usernamePlaceholder: 'Choisissez un nom d\'utilisateur',
passwordLabel: 'Mot de passe',
passwordPlaceholder: 'Créez un mot de passe',
confirmPasswordLabel: 'Confirmer le mot de passe',
confirmPasswordPlaceholder: 'Confirmez votre mot de passe',
phoneLabel: 'Téléphone',
phonePlaceholder: 'Entrez votre téléphone',
signUpButton: 'Créer un compte',
signUpWithProvider: 'S\'inscrire avec {provider}',
orDivider: 'ou',
hasAccount: 'Vous avez déjà un compte ?',
signInLink: 'Se connecter',
termsAcceptance: 'En créant un compte, vous acceptez nos',
termsOfService: 'Conditions d\'utilisation',
privacyPolicy: 'Politique de confidentialité',
success: 'Compte créé avec succès',
welcomeMessage: 'Bienvenue sur Frank Auth !',
},
passwordReset: {
title: 'Réinitialiser le mot de passe',
subtitle: 'Entrez votre email pour recevoir les instructions de réinitialisation.',
emailLabel: 'Email',
emailPlaceholder: 'Entrez votre email',
sendResetButton: 'Envoyer le lien',
backToSignIn: 'Retour à la connexion',
success: 'Lien de réinitialisation envoyé',
checkEmail: 'Vérifiez votre email pour les instructions',
resetPassword: 'Réinitialiser le mot de passe',
newPasswordLabel: 'Nouveau mot de passe',
newPasswordPlaceholder: 'Entrez le nouveau mot de passe',
confirmNewPasswordLabel: 'Confirmer le nouveau mot de passe',
confirmNewPasswordPlaceholder: 'Confirmez le nouveau mot de passe',
resetButton: 'Réinitialiser',
passwordUpdated: 'Mot de passe mis à jour avec succès',
},
mfa: {
title: 'Authentification à deux facteurs',
subtitle: 'Entrez le code de vérification de votre application d\'authentification.',
codeLabel: 'Code de vérification',
codePlaceholder: 'Entrez le code à 6 chiffres',
verifyButton: 'Vérifier',
resendCode: 'Renvoyer le code',
useBackupCode: 'Utiliser un code de sauvegarde',
backupCodeLabel: 'Code de sauvegarde',
backupCodePlaceholder: 'Entrez le code de sauvegarde',
useAuthenticator: 'Utiliser l\'application d\'authentification',
success: 'Vérifié avec succès',
setup: {
title: 'Configurer l\'authentification à deux facteurs',
subtitle: 'Ajoutez une couche de sécurité supplémentaire à votre compte.',
step1: 'Étape 1 : Téléchargez une application d\'authentification',
step2: 'Étape 2 : Scannez le code QR',
step3: 'Étape 3 : Entrez le code de vérification',
downloadApp: 'Téléchargez une application compatible comme Google Authenticator ou Authy',
scanQR: 'Scannez ce code QR avec votre application d\'authentification',
enterCode: 'Entrez le code à 6 chiffres de votre application',
manualEntry: 'Ou entrez cette clé manuellement :',
secretKey: 'Clé secrète',
verificationCode: 'Code de vérification',
enableButton: 'Activer l\'authentification à deux facteurs',
backupCodes: 'Codes de sauvegarde',
saveBackupCodes: 'Sauvegardez ces codes dans un endroit sûr',
backupCodesWarning: 'Ces codes peuvent être utilisés si vous perdez l\'accès à votre application d\'authentification',
},
},
passkeys: {
title: 'Clés d\'accès',
subtitle: 'Utilisez votre appareil pour vous connecter en toute sécurité sans mot de passe.',
setup: 'Configurer une clé d\'accès',
use: 'Utiliser une clé d\'accès',
notSupported: 'Les clés d\'accès ne sont pas prises en charge sur cet appareil',
setupButton: 'Configurer une clé d\'accès',
useButton: 'Utiliser une clé d\'accès',
success: 'Opération de clé d\'accès réussie',
registered: 'Clé d\'accès enregistrée avec succès',
manage: {
title: 'Gérer les clés d\'accès',
noPasskeys: 'Aucune clé d\'accès configurée',
addPasskey: 'Ajouter une clé d\'accès',
deviceName: 'Nom de l\'appareil',
createdAt: 'Créé',
lastUsed: 'Dernière utilisation',
remove: 'Supprimer',
removeConfirm: 'Êtes-vous sûr de vouloir supprimer cette clé d\'accès ?',
},
},
oauth: {
signInWith: 'Se connecter avec {provider}',
signUpWith: 'S\'inscrire avec {provider}',
continueWith: 'Continuer avec {provider}',
connecting: 'Connexion en cours...',
success: 'Connecté avec succès',
error: 'Échec de la connexion',
cancelled: 'Connexion annulée',
providers: {
google: 'Google',
github: 'GitHub',
microsoft: 'Microsoft',
facebook: 'Facebook',
apple: 'Apple',
twitter: 'Twitter',
linkedin: 'LinkedIn',
discord: 'Discord',
slack: 'Slack',
spotify: 'Spotify',
},
},
verification: {
email: {
title: 'Vérifier l\'email',
subtitle: 'Vérifiez votre email et cliquez sur le lien de vérification.',
checkEmail: 'Nous avons envoyé un lien de vérification à votre email',
resendEmail: 'Renvoyer l\'email',
changeEmail: 'Changer d\'email',
success: 'Email vérifié avec succès',
verified: 'Votre email a été vérifié',
},
phone: {
title: 'Vérifier le téléphone',
subtitle: 'Entrez le code de vérification envoyé à votre téléphone.',
codeLabel: 'Code de vérification',
codePlaceholder: 'Entrez le code à 6 chiffres',
resendCode: 'Renvoyer le code',
verifyButton: 'Vérifier le téléphone',
success: 'Téléphone vérifié avec succès',
verified: 'Votre téléphone a été vérifié',
},
},
magicLink: {
title: 'Lien magique',
subtitle: 'Connectez-vous avec un lien sécurisé envoyé à votre email.',
emailLabel: 'Email',
emailPlaceholder: 'Entrez votre email',
sendLinkButton: 'Envoyer le lien magique',
checkEmail: 'Vérifiez votre email pour le lien magique',
success: 'Lien magique envoyé avec succès',
expired: 'Le lien magique a expiré',
invalid: 'Le lien magique est invalide',
},
logout: {
title: 'Se déconnecter',
subtitle: 'Êtes-vous sûr de vouloir vous déconnecter ?',
button: 'Se déconnecter',
confirm: 'Se déconnecter',
success: 'Déconnecté avec succès',
goodbye: 'Au revoir !',
},
session: {
expired: 'Votre session a expiré',
invalid: 'Session invalide',
refresh: 'Actualiser la session',
refreshing: 'Actualisation de la session...',
multipleWarning: 'Vous êtes connecté sur plusieurs appareils',
deviceLimit: 'Limite d\'appareils atteinte',
},
},
// Abbreviated versions for space - in a real implementation, these would be fully translated
user: {
profile: {
title: 'Profil',
personalInfo: 'Informations personnelles',
accountInfo: 'Informations du compte',
security: 'Sécurité',
preferences: 'Préférences',
firstName: 'Prénom',
lastName: 'Nom',
email: 'Email',
username: 'Nom d\'utilisateur',
phone: 'Téléphone',
bio: 'Biographie',
website: 'Site web',
location: 'Localisation',
timezone: 'Fuseau horaire',
language: 'Langue',
avatar: 'Photo de profil',
changeAvatar: 'Changer la photo',
removeAvatar: 'Supprimer la photo',
updateProfile: 'Mettre à jour le profil',
profileUpdated: 'Profil mis à jour avec succès',
},
security: {
title: 'Sécurité',
changePassword: 'Changer le mot de passe',
currentPassword: 'Mot de passe actuel',
newPassword: 'Nouveau mot de passe',
confirmPassword: 'Confirmer le mot de passe',
passwordStrength: 'Force du mot de passe',
passwordRequirements: 'Exigences du mot de passe',
twoFactor: 'Authentification à deux facteurs',
enableTwoFactor: 'Activer l\'authentification à deux facteurs',
disableTwoFactor: 'Désactiver l\'authentification à deux facteurs',
twoFactorEnabled: 'Authentification à deux facteurs activée',
twoFactorDisabled: 'Authentification à deux facteurs désactivée',
backupCodes: 'Codes de sauvegarde',
viewBackupCodes: 'Voir les codes de sauvegarde',
regenerateBackupCodes: 'Régénérer les codes de sauvegarde',
devices: 'Appareils',
trustedDevices: 'Appareils de confiance',
removeDevice: 'Supprimer l\'appareil',
deviceRemoved: 'Appareil supprimé avec succès',
sessions: 'Sessions',
activeSessions: 'Sessions actives',
terminateSession: 'Terminer la session',
terminateAllSessions: 'Terminer toutes les sessions',
sessionTerminated: 'Session terminée',
connectedAccounts: 'Comptes connectés',
disconnect: 'Déconnecter',
accountDisconnected: 'Compte déconnecté',
deleteAccount: 'Supprimer le compte',
deleteAccountWarning: 'Cette action ne peut pas être annulée',
deleteAccountConfirm: 'Supprimer mon compte',
accountDeleted: 'Compte supprimé avec succès',
},
preferences: {
title: 'Préférences',
theme: 'Thème',
lightMode: 'Mode clair',
darkMode: 'Mode sombre',
systemMode: 'Par défaut du système',
notifications: 'Notifications',
emailNotifications: 'Notifications par email',
pushNotifications: 'Notifications push',
smsNotifications: 'Notifications SMS',
marketingEmails: 'Emails marketing',
securityAlerts: 'Alertes de sécurité',
accountActivity: 'Activité du compte',
productUpdates: 'Mises à jour du produit',
preferences: 'Préférences',
preferencesUpdated: 'Préférences mises à jour avec succès',
},
},
// Simplified organization, validation, errors, success, and components sections
organization: {
general: {
title: 'Organisation',
name: 'Nom de l\'organisation',
description: 'Description',
website: 'Site web',
logo: 'Logo',
settings: 'Paramètres',
members: 'Membres',
billing: 'Facturation',
usage: 'Utilisation',
security: 'Sécurité',
integrations: 'Intégrations',
audit: 'Journal d\'audit',
support: 'Support',
},
profile: {
title: 'Profil de l\'organisation',
updateOrganization: 'Mettre à jour l\'organisation',
organizationUpdated: 'Organisation mise à jour avec succès',
logo: 'Logo',
changeLogo: 'Changer le logo',
removeLogo: 'Supprimer le logo',
brandColors: 'Couleurs de marque',
primaryColor: 'Couleur primaire',
secondaryColor: 'Couleur secondaire',
customBranding: 'Image de marque personnalisée',
domain: 'Domaine',
customDomain: 'Domaine personnalisé',
verifyDomain: 'Vérifier le domaine',
domainVerified: 'Domaine vérifié',
domainPending: 'Vérification du domaine en attente',
contact: 'Informations de contact',
contactEmail: 'Email de contact',
supportUrl: 'URL de support',
address: 'Adresse',
country: 'Pays',
timezone: 'Fuseau horaire',
},
members: {
title: 'Membres',
totalMembers: 'Total des membres',
activeMembers: 'Membres actifs',
pendingInvitations: 'Invitations en attente',
roles: 'Rôles',
permissions: 'Permissions',
inviteMember: 'Inviter un membre',
inviteMembers: 'Inviter des membres',
emailAddress: 'Adresse email',
role: 'Rôle',
customMessage: 'Message personnalisé',
sendInvitation: 'Envoyer l\'invitation',
invitationSent: 'Invitation envoyée avec succès',
resendInvitation: 'Renvoyer l\'invitation',
cancelInvitation: 'Annuler l\'invitation',
invitationCancelled: 'Invitation annulée',
memberName: 'Nom',
memberEmail: 'Email',
memberRole: 'Rôle',
memberStatus: 'Statut',
memberJoined: 'Rejoint',
lastActive: 'Dernière activité',
changeRole: 'Changer le rôle',
removeMember: 'Supprimer le membre',
removeMemberConfirm: 'Êtes-vous sûr de vouloir supprimer ce membre ?',
memberRemoved: 'Membre supprimé avec succès',
transferOwnership: 'Transférer la propriété',
transferOwnershipConfirm: 'Êtes-vous sûr de vouloir transférer la propriété ?',
ownershipTransferred: 'Propriété transférée avec succès',
bulkActions: 'Actions en lot',
selectAll: 'Tout sélectionner',
selectedMembers: '{count} membres sélectionnés',
bulkRemove: 'Supprimer sélectionnés',
bulkChangeRole: 'Changer le rôle',
export: 'Exporter',
exportMembers: 'Exporter les membres',
},
roles: {
title: 'Rôles',
createRole: 'Créer un rôle',
editRole: 'Modifier le rôle',
deleteRole: 'Supprimer le rôle',
roleName: 'Nom du rôle',
roleDescription: 'Description',
permissions: 'Permissions',
systemPermissions: 'Permissions système',
organizationPermissions: 'Permissions d\'organisation',
memberPermissions: 'Permissions de membre',
billingPermissions: 'Permissions de facturation',
defaultRole: 'Rôle par défaut',
customRole: 'Rôle personnalisé',
roleCreated: 'Rôle créé avec succès',
roleUpdated: 'Rôle mis à jour avec succès',
roleDeleted: 'Rôle supprimé avec succès',
assignRole: 'Attribuer le rôle',
unassignRole: 'Retirer le rôle',
roleAssigned: 'Rôle attribué avec succès',
roleUnassigned: 'Rôle retiré avec succès',
owner: 'Propriétaire',
admin: 'Administrateur',
member: 'Membre',
guest: 'Invité',
viewer: 'Visualiseur',
editor: 'Éditeur',
manager: 'Gestionnaire',
},
settings: {
title: 'Paramètres',
general: 'Général',
authentication: 'Authentification',
security: 'Sécurité',
integrations: 'Intégrations',
advanced: 'Avancé',
allowPublicSignup: 'Permettre l\'inscription publique',
requireEmailVerification: 'Exiger la vérification de l\'email',
allowUsernameSignup: 'Permettre l\'inscription par nom d\'utilisateur',
passwordPolicy: 'Politique de mot de passe',
minPasswordLength: 'Longueur minimale du mot de passe',
requireUppercase: 'Exiger des majuscules',
requireLowercase: 'Exiger des minuscules',
requireNumbers: 'Exiger des chiffres',
requireSymbols: 'Exiger des symboles',
sessionDuration: 'Durée de session',
mfaRequired: 'MFA requis',
allowedDomains: 'Domaines autorisés',
blockedDomains: 'Domaines bloqués',
ipWhitelist: 'Liste blanche IP',
ssoEnabled: 'SSO activé',
ssoProvider: 'Fournisseur SSO',
auditLogRetention: 'Rétention du journal d\'audit',
dataExport: 'Exportation de données',
deleteOrganization: 'Supprimer l\'organisation',
deleteOrganizationWarning: 'Cela supprimera définitivement l\'organisation et toutes ses données',
deleteOrganizationConfirm: 'Supprimer l\'organisation',
organizationDeleted: 'Organisation supprimée avec succès',
settingsUpdated: 'Paramètres mis à jour avec succès',
},
billing: {
title: 'Facturation',
plan: 'Plan',
currentPlan: 'Plan actuel',
usage: 'Utilisation',
billing: 'Facturation',
invoices: 'Factures',
paymentMethod: 'Méthode de paiement',
subscription: 'Abonnement',
seats: 'Sièges',
usedSeats: 'Sièges utilisés',
availableSeats: 'Sièges disponibles',
addSeats: 'Ajouter des sièges',
removeSeats: 'Supprimer des sièges',
monthlyBilling: 'Facturation mensuelle',
yearlyBilling: 'Facturation annuelle',
upgrade: 'Mettre à niveau',
downgrade: 'Rétrograder',
cancel: 'Annuler',
pauseSubscription: 'Suspendre l\'abonnement',
resumeSubscription: 'Reprendre l\'abonnement',
billingHistory: 'Historique de facturation',
downloadInvoice: 'Télécharger',
updatePaymentMethod: 'Mettre à jour la méthode de paiement',
paymentMethodUpdated: 'Méthode de paiement mise à jour',
subscriptionUpdated: 'Abonnement mis à jour',
subscriptionCancelled: 'Abonnement annulé',
subscriptionPaused: 'Abonnement suspendu',
subscriptionResumed: 'Abonnement repris',
trialExpired: 'Essai expiré',
trialDaysLeft: '{days} jours restants dans l\'essai',
upgradeNow: 'Mettre à niveau maintenant',
},
invitations: {
title: 'Invitations',
youreInvited: 'Vous êtes invité !',
invitedBy: 'Invité par',
invitedTo: 'Invité à rejoindre',
roleOffered: 'Rôle proposé',
acceptInvitation: 'Accepter l\'invitation',
declineInvitation: 'Décliner',
invitationAccepted: 'Invitation acceptée',
invitationDeclined: 'Invitation déclinée',
invitationExpired: 'Invitation expirée',
invitationInvalid: 'Invitation invalide',
alreadyMember: 'Déjà membre',
pendingInvitations: 'Invitations en attente',
sentInvitations: 'Envoyées',
receivedInvitations: 'Reçues',
invitationDetails: 'Détails de l\'invitation',
expiresAt: 'Expire',
customMessage: 'Message',
},
},
validation: {
required: '{field} est requis',
email: 'Veuillez entrer une adresse email valide',
phone: 'Veuillez entrer un numéro de téléphone valide',
url: 'Veuillez entrer une URL valide',
minLength: '{field} doit contenir au moins {min} caractères',
maxLength: '{field} ne doit pas dépasser {max} caractères',
min: '{field} doit être au moins {min}',
max: '{field} ne doit pas dépasser {max}',
pattern: 'Le format de {field} est invalide',
passwordMismatch: 'Les mots de passe ne correspondent pas',
invalidFormat: 'Format invalide',
invalid: '{field} est invalide',
tooShort: 'Trop court',
tooLong: 'Trop long',
tooSmall: 'Trop petit',
tooLarge: 'Trop grand',
notFound: 'Non trouvé',
alreadyExists: 'Existe déjà',
expired: 'Expiré',
weak: 'Faible',
strong: 'Fort',
medium: 'Moyen',
passwordStrength: {
veryWeak: 'Très faible',
weak: 'Faible',
fair: 'Correct',
good: 'Bon',
strong: 'Fort',
},
passwordRequirements: {
minLength: 'Au moins {min} caractères',
uppercase: 'Au moins une lettre majuscule',
lowercase: 'Au moins une lettre minuscule',
number: 'Au moins un chiffre',
symbol: 'Au moins un caractère spécial',
},
},
errors: {
generic: {
unknown: 'Une erreur inconnue s\'est produite',
network: 'Erreur réseau',
timeout: 'Délai d\'attente dépassé',
serverError: 'Erreur serveur',
notFound: 'Ressource non trouvée',
unauthorized: 'Accès non autorisé',
forbidden: 'Accès interdit',
badRequest: 'Requête incorrecte',
conflict: 'Conflit',
tooManyRequests: 'Trop de requêtes',
maintenance: 'Système en maintenance',
offline: 'Hors ligne',
},
auth: {
invalidCredentials: 'Email ou mot de passe invalide',
accountLocked: 'Compte verrouillé',
accountDisabled: 'Compte désactivé',
accountNotVerified: 'Compte non vérifié',
sessionExpired: 'Session expirée',
invalidToken: 'Token invalide',
mfaRequired: 'Authentification à deux facteurs requise',
invalidMfaCode: 'Code de vérification invalide',
passkeyNotSupported: 'Clés d\'accès non prises en charge',
passkeyFailed: 'Échec de l\'authentification par clé d\'accès',
oauthFailed: 'Échec de l\'authentification OAuth',
oauthCancelled: 'Authentification OAuth annulée',
magicLinkExpired: 'Lien magique expiré',
magicLinkInvalid: 'Lien magique invalide',
passwordTooWeak: 'Mot de passe trop faible',
passwordReused: 'Mot de passe récemment utilisé',
emailNotVerified: 'Email non vérifié',
phoneNotVerified: 'Téléphone non vérifié',
invitationExpired: 'Invitation expirée',
invitationInvalid: 'Invitation invalide',
invitationAlreadyAccepted: 'Invitation déjà acceptée',
},
organization: {
notFound: 'Organisation non trouvée',
accessDenied: 'Accès refusé',
memberLimitReached: 'Limite de membres atteinte',
ownerRequired: 'Rôle de propriétaire requis',
cannotRemoveOwner: 'Impossible de supprimer le propriétaire',
cannotRemoveSelf: 'Impossible de vous supprimer',
alreadyMember: 'Déjà membre',
notMember: 'Pas membre',
invalidRole: 'Rôle invalide',
roleNotFound: 'Rôle non trouvé',
domainTaken: 'Domaine déjà pris',
domainInvalid: 'Domaine invalide',
seatLimitReached: 'Limite de sièges atteinte',
subscriptionRequired: 'Abonnement requis',
paymentFailed: 'Échec du paiement',
},
validation: {
invalidEmail: 'Email invalide',
invalidPhone: 'Téléphone invalide',
invalidUrl: 'URL invalide',
fieldRequired: 'Ce champ est requis',
fieldTooShort: 'Ce champ est trop court',
fieldTooLong: 'Ce champ est trop long',
fieldInvalid: 'Ce champ est invalide',
passwordsDoNotMatch: 'Les mots de passe ne correspondent pas',
emailTaken: 'Email déjà utilisé',
usernameTaken: 'Nom d\'utilisateur déjà utilisé',
phoneNumberTaken: 'Numéro de téléphone déjà utilisé',
domainTaken: 'Domaine déjà utilisé',
},
},
success: {
generic: {
saved: 'Enregistré avec succès',
updated: 'Mis à jour avec succès',
created: 'Créé avec succès',
deleted: 'Supprimé avec succès',
sent: 'Envoyé avec succès',
completed: 'Terminé avec succès',
copied: 'Copié dans le presse-papiers',
uploaded: 'Téléchargé avec succès',
downloaded: 'Téléchargé avec succès',
imported: 'Importé avec succès',
exported: 'Exporté avec succès',
},
auth: {
signedIn: 'Connecté avec succès',
signedUp: 'Compte créé avec succès',
signedOut: 'Déconnecté avec succès',
passwordChanged: 'Mot de passe modifié avec succès',
passwordReset: 'Mot de passe réinitialisé avec succès',
emailVerified: 'Email vérifié avec succès',
phoneVerified: 'Téléphone vérifié avec succès',
mfaEnabled: 'Authentification à deux facteurs activée',
mfaDisabled: 'Authentification à deux facteurs désactivée',
passkeyAdded: 'Clé d\'accès ajoutée avec succès',
passkeyRemoved: 'Clé d\'accès supprimée avec succès',
accountConnected: 'Compte connecté avec succès',
accountDisconnected: 'Compte déconnecté avec succès',
},
organization: {
created: 'Organisation créée avec succès',
updated: 'Organisation mise à jour avec succès',
deleted: 'Organisation supprimée avec succès',
memberInvited: 'Membre invité avec succès',
memberRemoved: 'Membre supprimé avec succès',
roleChanged: 'Rôle modifié avec succès',
ownershipTransferred: 'Propriété transférée avec succès',
settingsUpdated: 'Paramètres mis à jour avec succès',
domainVerified: 'Domaine vérifié avec succès',
subscriptionUpdated: 'Abonnement mis à jour avec succès',
paymentMethodUpdated: 'Méthode de paiement mise à jour avec succès',
},
},
components: {
loading: {
generic: 'Chargement...',
signIn: 'Connexion...',
signUp: 'Création du compte...',
profile: 'Chargement du profil...',
organization: 'Chargement de l\'organisation...',
members: 'Chargement des membres...',
settings: 'Chargement des paramètres...',
verification: 'Vérification...',
mfa: 'Vérification du code...',
passkey: 'Authentification...',
oauth: 'Connexion...',
},
empty: {
generic: 'Aucune donnée disponible',
members: 'Aucun membre trouvé',
invitations: 'Aucune invitation',
sessions: 'Aucune session active',
devices: 'Aucun appareil de confiance',
notifications: 'Aucune notification',
history: 'Aucun historique',
logs: 'Aucun journal',
search: 'Aucun résultat de recherche',
filter: 'Aucun résultat ne correspond à votre filtre',
},
confirm: {
delete: 'Êtes-vous sûr de vouloir supprimer ceci ?',
remove: 'Êtes-vous sûr de vouloir retirer ceci ?',
cancel: 'Êtes-vous sûr de vouloir annuler ?',
logout: 'Êtes-vous sûr de vouloir vous déconnecter ?',
transfer: 'Êtes-vous sûr de vouloir transférer la propriété ?',
disable: 'Êtes-vous sûr de vouloir désactiver ceci ?',
enable: 'Êtes-vous sûr de vouloir activer ceci ?',
reset: 'Êtes-vous sûr de vouloir réinitialiser ceci ?',
clear: 'Êtes-vous sûr de vouloir effacer ceci ?',
proceed: 'Voulez-vous continuer ?',
areYouSure: 'Êtes-vous sûr ?',
cannotUndo: 'Cette action ne peut pas être annulée.',
permanentAction: 'Ceci est une action permanente.',
},
help: {
password: 'Choisissez un mot de passe fort avec au moins 8 caractères, incluant majuscules, minuscules, chiffres et symboles.',
mfa: 'L\'authentification à deux facteurs ajoute une couche de sécurité supplémentaire à votre compte.',
passkey: 'Les clés d\'accès utilisent la biométrie de votre appareil ou le PIN pour vous connecter en toute sécurité sans mot de passe.',
backup: 'Les codes de sauvegarde peuvent être utilisés si vous perdez l\'accès à votre application d\'authentification.',
domain: 'Les domaines personnalisés permettent à vos utilisateurs d\'accéder à votre application depuis votre propre domaine.',
webhook: 'Les webhooks notifient votre application lorsque des événements se produisent dans votre organisation.',
apiKey: 'Les clés API permettent à vos applications de s\'authentifier avec l\'API Frank Auth.',
role: 'Les rôles définissent les actions que les membres peuvent effectuer dans votre organisation.',
permission: 'Les permissions accordent un accès spécifique aux fonctionnalités et ressources.',
billing: 'Gérez votre abonnement, méthode de paiement et historique de facturation.',
usage: 'Surveillez l\'utilisation et les limites de votre organisation.',
},
},
};