From d7b97a7139b3f9025554f0929aed86c772fc2176 Mon Sep 17 00:00:00 2001 From: Leendert de Borst <6917405+lanedirt@users.noreply.github.com> Date: Tue, 29 Jul 2025 13:35:56 +0200 Subject: [PATCH] New Crowdin updates (#1055) * New translations en.json (French) Update translations from Crowdin [ci skip] * New translations en.json (French) Update translations from Crowdin [ci skip] * New translations en.json (French) Update translations from Crowdin [ci skip] * New translations infoplist.strings (French) Update translations from Crowdin [ci skip] * New translations strings.xml (French) Update translations from Crowdin [ci skip] * New translations localizable.strings (French) Update translations from Crowdin [ci skip] --- .../src/i18n/locales/fr.json | 2 +- .../app/src/main/res/values-fr/strings.xml | 12 +- apps/mobile-app/i18n/locales/fr.json | 336 +++++++++--------- .../ios/AliasVault/fr.lproj/InfoPlist.strings | Bin 630 -> 556 bytes .../ios/Autofill/fr.lproj/Localizable.strings | Bin 4920 -> 4102 bytes .../AliasVault.Client/wwwroot/locales/fr.json | 26 +- 6 files changed, 188 insertions(+), 188 deletions(-) diff --git a/apps/browser-extension/src/i18n/locales/fr.json b/apps/browser-extension/src/i18n/locales/fr.json index 21c964f72..e3442d2fb 100644 --- a/apps/browser-extension/src/i18n/locales/fr.json +++ b/apps/browser-extension/src/i18n/locales/fr.json @@ -87,7 +87,7 @@ "checkingVaultUpdates": "Checking for vault updates", "syncingUpdatedVault": "Syncing updated vault", "executingOperation": "Executing operation...", - "loadMore": "Voir plus", + "loadMore": "Load more", "errors": { "VaultMergeRequired": "Your vault needs to be updated. Please login on the AliasVault website and follow the steps.", "VaultOutdated": "Your vault is outdated. Please login on the AliasVault website and follow the steps.", diff --git a/apps/mobile-app/android/app/src/main/res/values-fr/strings.xml b/apps/mobile-app/android/app/src/main/res/values-fr/strings.xml index 80f84e3ad..769ee0436 100644 --- a/apps/mobile-app/android/app/src/main/res/values-fr/strings.xml +++ b/apps/mobile-app/android/app/src/main/res/values-fr/strings.xml @@ -1,11 +1,11 @@ AliasVault - Remplissage automatique AliasVault - Icône AliasVault + AliasVault AutoFill + AliasVault icon - Échec de la récupération, ouvrez l\'application - Aucune correspondance trouvée, créer un nouveau ? - Ouvrir l’application - Coffre-fort verrouillé + Failed to retrieve, open app + No match found, create new? + Open app + Vault locked diff --git a/apps/mobile-app/i18n/locales/fr.json b/apps/mobile-app/i18n/locales/fr.json index 10e14a1e2..f738f5da9 100644 --- a/apps/mobile-app/i18n/locales/fr.json +++ b/apps/mobile-app/i18n/locales/fr.json @@ -1,10 +1,10 @@ { "common": { - "cancel": "Annuler", - "delete": "Supprimer", - "save": "Sauvegarder", - "yes": "Oui", - "no": "Non", + "cancel": "Cancel", + "delete": "Delete", + "save": "Save", + "yes": "Yes", + "no": "No", "ok": "OK", "continue": "Continue", "loading": "Loading...", @@ -12,7 +12,7 @@ "success": "Success", "never": "Never", "copied": "Copied", - "loadMore": "Voir plus", + "loadMore": "Load more", "use": "Use" }, "auth": { @@ -33,7 +33,7 @@ "enterPassword": "Enter your password to unlock your vault", "enterPasswordPlaceholder": "Password", "enterAuthCode": "Enter 6-digit code", - "usernamePlaceholder": "nom / nom@entreprise.com", + "usernamePlaceholder": "name / name@company.com", "passwordPlaceholder": "Enter your password", "enableBiometric": "Enable {{biometric}}?", "biometricPrompt": "Would you like to use {{biometric}} to unlock your vault?", @@ -42,37 +42,37 @@ "errors": { "credentialsRequired": "Username and password are required", "invalidAuthCode": "Please enter a valid 6-digit authentication code", - "incorrectPassword": "Mot de passe incorrect. Veuillez réessayer.", + "incorrectPassword": "Incorrect password. Please try again.", "enterPassword": "Please enter your password", "serverError": "Could not reach AliasVault server. Please try again later or contact support if the problem persists." }, "confirmLogout": "Are you sure you want to logout? You need to login again with your master password to access your vault.", - "noAccountYet": "Pas encore de compte ?", - "createNewVault": "Créer un nouveau coffre-fort", - "connectingTo": "Connexion à", - "loggedInAs": "Connecté en tant que" + "noAccountYet": "No account yet?", + "createNewVault": "Create new vault", + "connectingTo": "Connecting to", + "loggedInAs": "Logged in as" }, "credentials": { "title": "Credentials", "addCredential": "Add Credential", "editCredential": "Edit Credential", "deleteCredential": "Delete Credential", - "deleteConfirm": "Êtes-vous sûr de vouloir supprimer ces identifiants ? Cette action est irréversible.", + "deleteConfirm": "Are you sure you want to delete this credential? This action cannot be undone.", "service": "Service", - "serviceName": "Nom du service", - "serviceUrl": "URL du service", - "loginCredentials": "Identifiants de connexion", - "username": "Nom d'utilisateur", - "email": "E-mail", + "serviceName": "Service Name", + "serviceUrl": "Service URL", + "loginCredentials": "Login credentials", + "username": "Username", + "email": "Email", "alias": "Alias", - "metadata": "Métadonnées", - "firstName": "Prénom", - "lastName": "Nom de famille", - "nickName": "Pseudonyme", - "fullName": "Nom complet", - "gender": "Genre", - "birthDate": "Date de naissance", - "birthDatePlaceholder": "AAAA-MM-JJ", + "metadata": "Metadata", + "firstName": "First Name", + "lastName": "Last Name", + "nickName": "Nick Name", + "fullName": "Full Name", + "gender": "Gender", + "birthDate": "Birth Date", + "birthDatePlaceholder": "YYYY-MM-DD", "notes": "Notes", "randomAlias": "Random Alias", "manual": "Manual", @@ -123,115 +123,115 @@ "title": "Settings", "iosAutofill": "iOS Autofill", "iosAutofillSettings": { - "headerText": "Vous pouvez configurer AliasVault pour utiliser la fonctionnalité de saisie automatique de mot de passe native d'iOS. Suivez les instructions ci-dessous pour l'activer.", - "howToEnable": "Comment l'activer :", - "step1": "1. Ouvrir les paramètres d'iOS via le bouton ci-dessous", - "step2": "2. Aller dans « Général »", - "step3": "3. Appuyer sur « Remplissage automatique et mots de passe »", - "step4": "4. Activer \"AliasVault\"", - "step5": "5. Désactiver les autres fournisseurs de mot de passe (par exemple \"mots de passe iCloud\") pour éviter les conflits", - "openIosSettings": "Ouvrir les réglages d'iOS", - "alreadyConfigured": "Je l'ai déjà configuré", - "warningText": "Note : Vous devrez vous authentifier avec Face ID/Touch ID ou votre code d'accès lorsque vous utilisez le remplissage automatique." + "headerText": "You can configure AliasVault to provide native password autofill functionality in iOS. Follow the instructions below to enable it.", + "howToEnable": "How to enable:", + "step1": "1. Open iOS Settings via the button below", + "step2": "2. Go to \"General\"", + "step3": "3. Tap \"AutoFill & Passwords\"", + "step4": "4. Enable \"AliasVault\"", + "step5": "5. Disable other password providers (e.g. \"iCloud Passwords\") to avoid conflicts", + "openIosSettings": "Open iOS Settings", + "alreadyConfigured": "I already configured it", + "warningText": "Note: You'll need to authenticate with Face ID/Touch ID or your device passcode when using autofill." }, - "androidAutofill": "Remplissage automatique Android", - "vaultUnlock": "Méthode de déverrouillage du coffre-fort", - "autoLock": "Délai de verrouillage automatique", - "identityGenerator": "Générateur d'identité", - "security": "Sécurité", - "appVersion": "Version de l'application {{version}} ({{url}})", + "androidAutofill": "Android Autofill", + "vaultUnlock": "Vault Unlock Method", + "autoLock": "Auto-lock Timeout", + "identityGenerator": "Identity Generator", + "security": "Security", + "appVersion": "App version {{version}} ({{url}})", "autoLockOptions": { - "never": "Jamais", - "5seconds": "5 secondes", - "30seconds": "30 secondes", + "never": "Never", + "5seconds": "5 seconds", + "30seconds": "30 seconds", "1minute": "1 minute", "15minutes": "15 minutes", "30minutes": "30 minutes", - "1hour": "1 heure", - "4hours": "4 heures", - "8hours": "8 heures" + "1hour": "1 hour", + "4hours": "4 hours", + "8hours": "8 hours" }, - "language": "Langue", - "languageSystemMessage": "Pour modifier la langue de l'application, configurez la langue préférée pour AliasVault dans les paramètres de votre appareil.", - "openSettings": "Ouvrir les paramètres", + "language": "Language", + "languageSystemMessage": "To change the app language, configure the preferred language for AliasVault in your device settings.", + "openSettings": "Open Settings", "vaultUnlockSettings": { - "description": "Choisissez comment vous souhaitez déverrouiller votre coffre-fort.", - "biometricEnabled": "{{biometric}} est désormais activé avec succès", - "biometricNotAvailable": "{{biometric}} non disponible", - "biometricDisabledMessage": "{{biometric}} est désactivé pour AliasVault. Pour l'utiliser, veuillez d'abord l'activer dans les paramètres de votre appareil.", - "biometricHelp": "La clé de déchiffrement de votre coffre sera stockée de façon sécurisée sur votre appareil local dans l' {{keystore}} et sera accessible en toute sécurité avec {{biometric}}.", - "biometricUnavailableHelp": "{{biometric}} n'est pas disponible. Appuyez pour ouvrir les paramètres et/ou allez dans les paramètres de votre appareil pour l'activer et le configurer.", - "passwordHelp": "Saisissez à nouveau votre mot de passe maître complet pour déverrouiller votre coffre. Ceci est toujours activé comme option de repli.", - "keystoreIOS": "Trousseau iOS", + "description": "Choose how you want to unlock your vault.", + "biometricEnabled": "{{biometric}} is now successfully enabled", + "biometricNotAvailable": "{{biometric}} Not Available", + "biometricDisabledMessage": "{{biometric}} is disabled for AliasVault. In order to use it, please enable it in your device settings first.", + "biometricHelp": "Your vault decryption key will be securely stored on your local device in the {{keystore}} and can be accessed securely with {{biometric}}.", + "biometricUnavailableHelp": "{{biometric}} is not available. Tap to open settings and/or go to your device settings to enable and configure it.", + "passwordHelp": "Re-enter your full master password to unlock your vault. This is always enabled as fallback option.", + "keystoreIOS": "iOS Keychain", "keystoreAndroid": "Android Keystore" }, "autoLockSettings": { - "description": "Choisissez combien de temps l'application peut rester en arrière-plan avant de nécessiter une ré-authentification. Vous devrez utiliser Face ID ou saisir votre mot de passe pour déverrouiller le coffre à nouveau." + "description": "Choose how long the app can stay in the background before requiring re-authentication. You'll need to use Face ID or enter your password to unlock the vault again." }, "identityGeneratorSettings": { - "description": "Configurer la langue par défaut et la préférence de genre pour la génération de nouvelles identités.", - "languageSection": "Langue", - "languageDescription": "Définissez la langue qui sera utilisée pour générer de nouvelles identités.", - "genderSection": "Genre", - "genderDescription": "Définissez la préférence de genre pour la génération de nouvelles identités.", + "description": "Configure the default language and gender preference for generating new identities.", + "languageSection": "Language", + "languageDescription": "Set the language that will be used when generating new identities.", + "genderSection": "Gender", + "genderDescription": "Set the gender preference for generating new identities.", "languageOptions": { - "english": "Anglais", - "dutch": "Néerlandais" + "english": "English", + "dutch": "Dutch" }, "genderOptions": { - "random": "Aléatoire", - "male": "Homme", - "female": "Femme" + "random": "Random", + "male": "Male", + "female": "Female" }, "errors": { - "loadFailed": "Échec du chargement des paramètres du générateur d'identité.", - "languageUpdateFailed": "Échec de la mise à jour des paramètres de langue.", - "genderUpdateFailed": "Échec de la mise à jour des paramètres du genre." + "loadFailed": "Failed to load identity generator settings.", + "languageUpdateFailed": "Failed to update language setting.", + "genderUpdateFailed": "Failed to update gender setting." } }, "securitySettings": { - "title": "Sécurité", - "description": "Gérer les paramètres de sécurité de votre compte et de votre coffre-fort.", - "changeMasterPassword": "Modifier le mot de passe maître", - "activeSessionsTitle": "Sessions actives", - "recentAuthLogs": "Journaux d'authentification récents", - "deleteAccountTitle": "Supprimer le compte", + "title": "Security", + "description": "Manage your account and vault security settings.", + "changeMasterPassword": "Change Master Password", + "activeSessionsTitle": "Active Sessions", + "recentAuthLogs": "Recent Auth Logs", + "deleteAccountTitle": "Delete Account", "changePassword": { - "headerText": "La modification de votre mot de passe maître modifie également les clés de chiffrement du coffre. Il est conseillé de modifier périodiquement votre mot de passe maître pour garder vos coffres sécurisés.", - "currentPassword": "Mot de passe actuel", - "newPassword": "Nouveau mot de passe", - "confirmNewPassword": "Confirmez votre nouveau mot de passe", - "enterCurrentPassword": "Saisissez votre mot de passe actuel", - "enterNewPassword": "Saisissez votre nouveau mot de passe", - "changePassword": "Modifier le mot de passe", - "fillAllFields": "Veuillez renseigner tous les champs", - "passwordsDoNotMatch": "Les nouveaux mots de passe ne correspondent pas", - "userNotAuthenticated": "Utilisateur non authentifié", - "initiatingChange": "Initialisation du changement de mot de passe...", - "currentPasswordIncorrect": "Le mot de passe actuel est incorrect", - "passwordChangedSuccessfully": "Mot de passe modifié avec succès", - "failedToChange": "Échec de la mise à jour du mot de passe. Veuillez réessayer." + "headerText": "Changing your master password also changes the vault encryption keys. It is advised to periodically change your master password to keep your vaults secure.", + "currentPassword": "Current Password", + "newPassword": "New Password", + "confirmNewPassword": "Confirm New Password", + "enterCurrentPassword": "Enter current password", + "enterNewPassword": "Enter new password", + "changePassword": "Change Password", + "fillAllFields": "Please fill in all fields", + "passwordsDoNotMatch": "New passwords do not match", + "userNotAuthenticated": "User not authenticated", + "initiatingChange": "Initiating password change...", + "currentPasswordIncorrect": "Current password is not correct", + "passwordChangedSuccessfully": "Password changed successfully", + "failedToChange": "Failed to change password. Please try again." }, "activeSessions": { - "headerText": "Voici une liste des appareils où votre compte est actuellement connecté ou a une session active. Vous pouvez vous déconnecter de n'importe laquelle de ces sessions ici.", - "noSessions": "Aucune session active", - "revoke": "Révoquer", - "revokeSession": "Révoquer la session", - "revokeConfirmation": "Êtes-vous sûr de vouloir révoquer cette session ? Cela vous déconnectera de l'appareil choisi.", - "sessionRevoked": "Session révoquée avec succès", - "failedToRevoke": "Échec de la révocation de la session", - "failedToLoad": "Échec du chargement des sessions actives", - "lastActive": "Dernière activité", - "expires": "Expire le" + "headerText": "Below is a list of devices where your account is currently logged in or has an active session. You can log out from any of these sessions here.", + "noSessions": "No active sessions", + "revoke": "Revoke", + "revokeSession": "Revoke Session", + "revokeConfirmation": "Are you sure you want to revoke this session? This will log you out of the chosen device.", + "sessionRevoked": "Session successfully revoked", + "failedToRevoke": "Failed to revoke session", + "failedToLoad": "Failed to load active sessions", + "lastActive": "Last active", + "expires": "Expires" }, "authLogs": { - "headerText": "Vous trouverez ci-dessous un aperçu des récentes tentatives de connexion à votre compte.", - "noLogs": "Aucun journal d'authentification trouvé", - "success": "Succès", - "failed": "Échec", - "time": "Heure", - "device": "Appareil", - "ipAddress": "Adresse IP", + "headerText": "Below you can find an overview of recent login attempts to your account.", + "noLogs": "No auth logs found", + "success": "Success", + "failed": "Failed", + "time": "Time", + "device": "Device", + "ipAddress": "IP Address", "client": "Client", "failedToLoad": "Failed to load auth logs" }, @@ -250,73 +250,73 @@ "confirmationMessage": "Are you absolutely sure you want to delete your account? This action cannot be undone.", "usernameDoesNotMatch": "Username does not match", "verifyingPassword": "Verifying password...", - "currentPasswordIncorrect": "Le mot de passe actuel est incorrect", - "initiatingDeletion": "Initialisation de la suppression du compte", - "verifyingWithServer": "Vérification par le serveur", - "deletingAccount": "Suppression du compte", - "accountDeleted": "Votre compte a été supprimé avec succès", - "failedToDelete": "Échec de la suppression du compte. Veuillez réessayer.", - "usernameNotFound": "Nom d'utilisateur introuvable. Veuillez vous reconnecter." + "currentPasswordIncorrect": "Current password is not correct", + "initiatingDeletion": "Initiating account deletion", + "verifyingWithServer": "Verifying with server", + "deletingAccount": "Deleting account", + "accountDeleted": "Account deleted successfully", + "failedToDelete": "Failed to delete account. Please try again.", + "usernameNotFound": "Username not found. Please login again." } } }, "navigation": { - "credentials": "Identifiants", - "emails": "E-mails", - "settings": "Paramètres" + "credentials": "Credentials", + "emails": "Emails", + "settings": "Settings" }, "emails": { - "title": "E-mails", - "emailDetails": "Détails de l'e-mail", - "subject": "Objet :", - "date": "Date :", - "from": "De :", - "to": "À :", - "attachments": "Pieces jointes", - "deleteEmail": "Supprimer l'e-mail", - "deleteEmailConfirm": "Êtes-vous sûr de vouloir supprimer cet e-mail ? Cette action est permanente et ne peut pas être annulée.", - "emailNotFound": "E-mail introuvable", - "noPlainText": "Cet e-mail ne contient pas de texte brut.", - "sizeKB": "KO", - "offlineMessage": "Vous êtes déconnecté. Veuillez vous connecter à internet pour charger vos e-mails.", - "emptyMessage": "Vous n'avez pas encore reçu d'e-mails sur vos adresses e-mail privées. Quand vous recevez un nouvel e-mail, il apparaîtra ici.", + "title": "Emails", + "emailDetails": "Email Details", + "subject": "Subject:", + "date": "Date:", + "from": "From:", + "to": "To:", + "attachments": "Attachments", + "deleteEmail": "Delete Email", + "deleteEmailConfirm": "Are you sure you want to delete this email? This action is permanent and cannot be undone.", + "emailNotFound": "Email not found", + "noPlainText": "This email does not contain any plain-text.", + "sizeKB": "KB", + "offlineMessage": "You are offline. Please connect to the internet to load your emails.", + "emptyMessage": "You have not received any emails at your private email addresses yet. When you receive a new email, it will appear here.", "errors": { - "generic": "Une erreur est survenue", - "loadFailed": "Échec du chargement des e-mails", - "deleteFailed": "Échec de la suppression de l'e-mail", - "dbNotAvailable": "Contexte de la base de données ou e-mail non disponible", - "decryptFailed": "Échec du déchiffrement de la pièce jointe", - "downloadFailed": "Échec du téléchargement de la pièce jointe" + "generic": "An error occurred", + "loadFailed": "Failed to load emails", + "deleteFailed": "Failed to delete email", + "dbNotAvailable": "Database context or email not available", + "decryptFailed": "Failed to decrypt attachment", + "downloadFailed": "Failed to download attachment" } }, "apiErrors": { - "CLAIM_DOES_NOT_MATCH_USER": "L'adresse e-mail choisie est déjà utilisée. Veuillez modifier l'adresse e-mail en modifiant ces identifiants.", - "CLAIM_DOES_NOT_EXIST": "Une erreur s'est produite en essayant de charger les e-mails. Veuillez essayer de modifier et enregistrer les identifiants pour synchroniser la base de données, puis réessayez.", - "UNKNOWN_ERROR": "Une erreur inconnue s'est produite. Merci de réessayer.", - "ACCOUNT_LOCKED": "Compte temporairement verrouillé en raison d'un trop grand nombre de tentatives infructueuses. Veuillez réessayer plus tard.", - "ACCOUNT_BLOCKED": "Votre compte a été désactivé. Si vous pensez qu'il s'agit d'une erreur, veuillez contacter le support.", - "USER_NOT_FOUND": "Nom d'utilisateur ou mot de passe invalide. Veuillez réessayer.", - "INVALID_AUTHENTICATOR_CODE": "Code d'authentification invalide. Veuillez réessayer.", - "INVALID_RECOVERY_CODE": "Code de récupération invalide. Veuillez réessayer.", - "REFRESH_TOKEN_REQUIRED": "Un jeton d'actualisation est requis.", - "USER_NOT_FOUND_IN_TOKEN": "Utilisateur introuvable dans le jeton.", - "USER_NOT_FOUND_IN_DATABASE": "Utilisateur introuvable dans la base de données.", - "INVALID_REFRESH_TOKEN": "Jeton d'actualisation invalide.", - "REFRESH_TOKEN_REVOKED_SUCCESSFULLY": "Jeton d'actualisation révoqué avec succès.", - "PUBLIC_REGISTRATION_DISABLED": "L'inscription de nouveaux comptes est actuellement désactivée sur ce serveur. Veuillez contacter l'administrateur.", - "USERNAME_REQUIRED": "Nom d’utilisateur requis.", - "USERNAME_ALREADY_IN_USE": "Nom d'utilisateur déjà utilisé.", - "USERNAME_AVAILABLE": "Ce nom d'utilisateur est disponible.", - "USERNAME_MISMATCH": "Le nom d'utilisateur ne correspond pas à l'utilisateur actuel.", - "PASSWORD_MISMATCH": "Le mot de passe fourni ne correspond pas à votre mot de passe actuel.", - "ACCOUNT_SUCCESSFULLY_DELETED": "Compte supprimé avec succès.", - "USERNAME_EMPTY_OR_WHITESPACE": "Le nom d'utilisateur ne peut pas être vide ou un espace.", - "USERNAME_TOO_SHORT": "Le nom d'utilisateur est trop court : il doit comporter au moins 3 caractères.", - "USERNAME_TOO_LONG": "Le nom d'utilisateur est trop long : il ne peut pas dépasser 40 caractères.", - "USERNAME_INVALID_EMAIL": "Adresse e-mail invalide.", - "USERNAME_INVALID_CHARACTERS": "Le nom d'utilisateur est invalide, il ne peut contenir que des lettres ou des chiffres.", - "VAULT_NOT_UP_TO_DATE": "Votre coffre-fort n'est pas à jour. Veuillez synchroniser votre coffre-fort et réessayer.", - "INTERNAL_SERVER_ERROR": "Erreur interne du serveur.", - "VAULT_ERROR": "Le coffre-fort local n'est pas à jour. Veuillez synchroniser votre coffre-fort en rafraîchissant la page et réessayez." + "CLAIM_DOES_NOT_MATCH_USER": "The current chosen email address is already in use. Please change the email address by editing this credential.", + "CLAIM_DOES_NOT_EXIST": "An error occurred while trying to load the emails. Please try to edit and save the credential entry to synchronize the database, then try again.", + "UNKNOWN_ERROR": "An unknown error occurred. Please try again.", + "ACCOUNT_LOCKED": "Account temporarily locked due to too many failed attempts. Please try again later.", + "ACCOUNT_BLOCKED": "Your account has been disabled. If you believe this is a mistake, please contact support.", + "USER_NOT_FOUND": "Invalid username or password. Please try again.", + "INVALID_AUTHENTICATOR_CODE": "Invalid authenticator code. Please try again.", + "INVALID_RECOVERY_CODE": "Invalid recovery code. Please try again.", + "REFRESH_TOKEN_REQUIRED": "Refresh token is required.", + "USER_NOT_FOUND_IN_TOKEN": "User not found in token.", + "USER_NOT_FOUND_IN_DATABASE": "User not found in database.", + "INVALID_REFRESH_TOKEN": "Invalid refresh token.", + "REFRESH_TOKEN_REVOKED_SUCCESSFULLY": "Refresh token revoked successfully.", + "PUBLIC_REGISTRATION_DISABLED": "New account registration is currently disabled on this server. Please contact the administrator.", + "USERNAME_REQUIRED": "Username is required.", + "USERNAME_ALREADY_IN_USE": "Username is already in use.", + "USERNAME_AVAILABLE": "Username is available.", + "USERNAME_MISMATCH": "Username does not match the current user.", + "PASSWORD_MISMATCH": "The provided password does not match your current password.", + "ACCOUNT_SUCCESSFULLY_DELETED": "Account successfully deleted.", + "USERNAME_EMPTY_OR_WHITESPACE": "Username cannot be empty or whitespace.", + "USERNAME_TOO_SHORT": "Username too short: must be at least 3 characters long.", + "USERNAME_TOO_LONG": "Username too long: cannot be longer than 40 characters.", + "USERNAME_INVALID_EMAIL": "Invalid email address.", + "USERNAME_INVALID_CHARACTERS": "Username is invalid, can only contain letters or digits.", + "VAULT_NOT_UP_TO_DATE": "Your vault is not up-to-date. Please synchronize your vault and try again.", + "INTERNAL_SERVER_ERROR": "Internal server error.", + "VAULT_ERROR": "The local vault is not up-to-date. Please synchronize your vault by refreshing the page and try again." } } \ No newline at end of file diff --git a/apps/mobile-app/ios/AliasVault/fr.lproj/InfoPlist.strings b/apps/mobile-app/ios/AliasVault/fr.lproj/InfoPlist.strings index d66a3ebf1218142e24208d6133b0a55915d25b8c..f200b8633a26c9b8f45f65cb2b94926491aecb54 100644 GIT binary patch delta 257 zcmZ{eu?oUK5JX2v;_dMSGUNzyi$ro|)$eOmD%c?tEK-&7PtkdXY@ zo!Q;lN#5UPnkdng8m&~TQmZv_t*vr}n0eytK(=raEjb@JZ;1Rp)o!fo$WAoVky2gi zS{Lf!6riQD*xAgWN6mR|$fi`Bai=Wkz6E zYbtrq*`{KL!-jurO3-HJr&A@`554V3M!dt5K04IGw2Sx5v10|N{R?^}Z!cR7;AY$R zA>w8$PDH01?F ziR1NL&(543|M`6=`%=iU+{#2|GL@BF<9;S{sbmyZe&M>tlR0DxJYUNaca&e@{tD|$ zT#safCv)6Sp*6!wEe}|!A-Q_e-j_q!lR>aQl5u0FgwzrrS{gv}9litkjC+@1j4t!` z87rmSz~%~{5#p@3Sgl~SMkI`rSu$tlb>FP;A0uPF2UtJD^BPhs{1#YW1i1pb*J0%d z&uL{P7x>-aZVkB+24?j7acCocPUa5?qN0D_plFNW>AsR2cu@Fa- z)qID%D_q&JHPB;iThEU0Z;VdV&Yj?DJF;69_bpmovrotXld!M!K85G)yP>_&-<92w zY%@>4@=}S-E8!`{LhUYgc``^!{s2h3 zk6ZZ2SuO+bFwb$sE~n7Q*;b}94dspP9&Q4gk?TAU^}v&XCymu)-lyA$_los50s?AV zV^KtuKTG6QgSXS!do;s3w`x2`>0eEtj_;Lr? zxAeQjy~p0Re%|OJVSfqbgkpSJPH=HcXm~k@lIkzX#uZgBn7Q zQ>t<|d!19q22Z+gO!f}M$##Km-_EcqlV?}AlJ6|WMo)Zu>2{xSoyFpP?MS)4_q5@~ zIaAMCo|x;Vc2-dpUNjN~_M|Og{mu8l_-s4I?(2$5^!ZA&rsufcyL`nCW?m+z*19UgtM8Zz9Mqz4IdYsyVu%m5leF{=c?&M_OBDWZ zuUX#X$(|evRLB~8X3yH|@UP?cU+?$rsa1AlGds6So7l=O^n7V^8`~(YywmTM-poZ) z>HU>0^#uJ&&u3a+>i58|^=7W;iFRFTrLnhKX+*i&?0#zd_QZA)|B;=xd}>iG^?}ol zc7CO6$6n|;)1YIf`SKnvwN1ryrO!xuHd|a9aUaXdk@)cr%9%8+qz`*4X~i9DlVr~* z-ScLoYn^t_W$)Vd^n5JZYf)l#WAC)WyBl$z=mN`K?OW&rzMz`XJVwpdgw(BIb&OMS4#(qf_56r&=MJAMexbl@swrQj;VT4|n4JVsRgB2bk_X+E+Y#~cJoy-(kyq0c%ay*@Lj6K3 z?xFZzw|=I&N0s!Nj4$yJT+a0IJp6Bcl+mXK=I&BU3*_gzPu!4g(Txs2sAKHO-&y8N zGKVD9LI8wj(jiNwtB%v^P*2|4eW)KvE%y_vkF zcVWZr3d?(Bk_G-7nc&#d7aQRN&o=`&Wql9DWu16cEk4*x-)-c%A+$mwos%4;ACx_k zCB2fIp!F#T4ZT-=Qk7?gvK;JVCaQH233OmIS?c*=@<2Pda8DO=F3bsV3dzhFGuelo znfHO#Wnja>9 z@I}YUe%AMiei!-$H;`n)B$tAUSnJLz_haod==LtEo#!YXpi6!(i?Nb?>CT+wQF(3( zANFIU)_!=?>)v)E=KFi2qOva}J@_(>yGBDCkG8b#?qyy8vp15tl&v{#ztc+0_gLz5 zM7B?{s;I$Fykxz=u< zFdov~R)y-zxhs5k*2W8*qlRREls%Rs>GXW z>-tG3I<>EsxeoCNYI;jqW|{vJ$>u+RL+zuhdyitG;|$D%)<5&dDW1t~VZX_?em%%K z!gV1u$g!x-_t&qmB}<5`y`9}92~$bEE8{cYTychV-j(*bR)%gj$torlrbcEWDrt9S zJeC&mAAp}}P8H2v%BVm56Vjals93DUxj$s~aVF;i-)_ZwNZpN{xu^9p9^yV!Pkj=^ z+nHy^cZl0|Mel1B(fLXkbH*c=Ds@cmE5)t6kd3du2-Ju KR%w!ty7M=6cx>zd diff --git a/apps/server/AliasVault.Client/wwwroot/locales/fr.json b/apps/server/AliasVault.Client/wwwroot/locales/fr.json index 9b390bd22..58ef3f303 100644 --- a/apps/server/AliasVault.Client/wwwroot/locales/fr.json +++ b/apps/server/AliasVault.Client/wwwroot/locales/fr.json @@ -2,24 +2,24 @@ "loading": { "title": "AliasVault is loading", "message": "Initializing secure environment. AliasVault prioritizes your privacy by running entirely in your browser. The first load might take a short while.", - "refreshText": "Si le chargement semble bloqué, vous pouvez cliquer sur le bouton ci-dessous pour actualiser la page.", - "refreshButtonText": "Actualiser la page" + "refreshText": "If loading seems stuck, you can click the button below to refresh the page.", + "refreshButtonText": "Refresh Page" }, "errors": { - "unhandledError": "Une erreur non gérée s'est produite. Veuillez essayer de recharger la page. Si le problème persiste, veuillez contacter le support.", - "webAssemblyError": "AliasVault nécessite WebAssembly, qui n'est pas pris en charge par ce navigateur. Essayez d'utiliser un navigateur plus moderne qui supporte WebAssembly.", - "reloadPageText": "Actualiser la page" + "unhandledError": "An unhandled error has occurred. Please try reloading the page. If the issue persists, please contact support.", + "webAssemblyError": "AliasVault requires WebAssembly, which this browser does not support. Try using a more modern browser that supports WebAssembly.", + "reloadPageText": "Reload Page" }, "quotes": { "security": [ - "Votre identité est votre bien le plus précieux. Protégez-la comme tel.", - "Dans le monde numérique, un mot de passe fort est votre première ligne de défense.", - "La sécurité n'est pas un produit, mais un processus.", - "Le maillon le plus faible de la chaîne de sécurité est l'élément humain.", - "La sécurité est toujours excessive jusqu'à ce qu'elle ne soit pas suffisante.", - "Faites confiance, mais vérifiez - surtout en ligne.", - "Vos données sont aussi sécurisées que votre mot de passe le plus faible.", - "Le mot de passe le plus sécurisé est celui dont vous ne vous souvenez pas." + "Your identity is your most valuable asset. Protect it like one.", + "In the digital world, a strong password is your first line of defense.", + "Security is not a product, but a process.", + "The weakest link in the security chain is the human element.", + "Security is always excessive until it's not enough.", + "Trust, but verify - especially online.", + "Your data is only as secure as your weakest password.", + "The most secure password is the one you can't remember." ] } }