diff --git a/frontend/public/locales/fr-FR/translation.toml b/frontend/public/locales/fr-FR/translation.toml
index c30c621ea2..c57555ae11 100644
--- a/frontend/public/locales/fr-FR/translation.toml
+++ b/frontend/public/locales/fr-FR/translation.toml
@@ -146,6 +146,8 @@ insufficientCredits = "Insufficient credits. Required: {{requiredCredits}}, Avai
loadingCredits = "Checking credits..."
loadingProStatus = "Checking subscription status..."
noticeTopUpOrPlan = "Not enough credits, please top up or upgrade to a plan"
+accessInvite = "Invite"
+confirm = "Confirm"
[account]
accountSettings = "Paramètres du compte"
@@ -1434,6 +1436,34 @@ hint = "Vous avez des modifications non enregistrées"
message = "Vous avez des modifications non enregistrées. Voulez-vous les ignorer ?"
title = "Modifications non enregistrées"
+[admin.settings.storage]
+description = "Control server storage and sharing options."
+title = "File Storage & Sharing"
+
+[admin.settings.storage.enabled]
+description = "Allow users to store files on the server."
+label = "Enable Server File Storage"
+
+[admin.settings.storage.sharing.email]
+description = "Allow sharing with email addresses."
+label = "Enable Email Sharing"
+mailLink = "Configure Mail Settings"
+mailNote = "Requires mail configuration. "
+
+[admin.settings.storage.sharing.enabled]
+description = "Allow users to share stored files."
+label = "Enable Sharing"
+
+[admin.settings.storage.sharing.links]
+description = "Allow sharing via signed-in links."
+frontendUrlLink = "Configure in System Settings"
+frontendUrlNote = "Requires a Frontend URL. "
+label = "Enable Share Links"
+
+[admin.settings.storage.signing.enabled]
+description = "Allow users to create multi-participant document signing sessions. Requires server file storage to be enabled."
+label = "Enable Group Signing (Alpha)"
+
[admin.status]
active = "Actif"
inactive = "Inactif"
@@ -1517,7 +1547,7 @@ editStampHint = "Pour changer l’image, supprimez ce tampon et ajoutez-en un no
editSwitchToSelect = "Basculez sur Sélectionner et modifier pour modifier cette annotation."
editText = "Modifier la zone de texte"
editTextMarkup = "Modifier le marquage de texte"
-annotationStyle = "Annotation style"
+annotationStyle = "Style d'annotation"
ellipse = "Ellipse"
exit = "Quitter le mode d’annotation"
fillColor = "Couleur de remplissage"
@@ -1528,19 +1558,19 @@ highlight = "Surligner"
imagePreview = "Aperçu"
inkHighlighter = "Surligneur à main levée"
line = "Ligne"
-lineArrow = "Arrow"
+lineArrow = "Flèche"
noBackground = "Sans arrière-plan"
note = "Note"
-comment = "Comment"
-comments = "Comments"
-insertText = "Insert Text"
-replaceText = "Replace Text"
+comment = "Commentaire"
+comments = "Commentaires"
+insertText = "Insérer du texte"
+replaceText = "Remplacer le texte"
noteIcon = "Icône de note"
notesStamps = "Notes et tampons"
opacity = "Opacité"
pen = "Stylo"
polygon = "Polygone"
-polyline = "Polyline"
+polyline = "Ligne brisée"
properties = "Propriétés"
rectangle = "Rectangle"
redo = "Rétablir"
@@ -2077,11 +2107,24 @@ serverCertMessage = "Utilisation du certificat du serveur — aucun fichier ni m
showLogo = "Afficher le logo"
tags = "signer,chiffrer,certificat,authenticate,PEM,P12,official,encrypt"
title = "Signer avec un certificat"
+allSigned = "All participants have signed. Ready to finalize."
+awaitingSignatures = "Awaiting signatures"
+declined = "Declined"
+fetchFailed = "Failed to load signing data"
+finalized = "Finalized"
+notified = "Pending"
+partialNote = "You can finalize early with current signatures. Unsigned participants will be excluded."
+pending = "Pending"
+readyToFinalize = "Ready to finalize"
+signatureProgress = "{{signedCount}}/{{totalCount}} signatures"
+signed = "Signed"
+viewed = "Viewed"
[certSign.appearance]
invisible = "Invisible"
stepTitle = "Apparence de la signature"
visible = "Visible"
+visibility = "Visibilité"
[certSign.appearance.options]
title = "Détails de la signature"
@@ -2188,6 +2231,225 @@ bullet4 = "Peut utiliser des certificats personnalisés pour la vérification"
text = "Lors de la vérification des signatures, l’outil indique si elles sont valides, qui a signé le document, quand il a été signé et s’il a été modifié depuis."
title = "Vérification des signatures"
+[certSign.collab.addParticipants]
+add = "Add {{count}} Participant(s)"
+back = "Back"
+configureSignatures = "Configure Signature Settings"
+continue = "Continue to Signature Settings"
+reasonHelp = "Pre-set a signing reason for these participants (optional, they can override when signing)"
+reasonPlaceholder = "e.g. Approval, Review..."
+selectUsers = "Select Users"
+
+[certSign.collab.finalize]
+button = "Finalize and Load Signed PDF"
+early = "Finalize with Current Signatures"
+
+[certSign.collab.participant]
+certInvalid = "✗ {{error}}"
+certInvalidFallback = "Invalid certificate"
+certNetworkError = "Could not validate certificate"
+certValid = "✓ Certificate valid"
+certValidUntil = " until {{date}}"
+certValidating = "Validating certificate..."
+
+[certSign.collab.sessionCreation]
+includeSummaryPage = "Include Signature Summary Page"
+includeSummaryPageHelp = "A summary page will be added at the end with all signature metadata. The digital certificate signature boxes on individual pages will be suppressed (wet signatures are unaffected)."
+
+[certSign.collab.sessionDetail]
+addButton = "Add Participants"
+addParticipants = "Add Participants"
+addParticipantsError = "Failed to add participants"
+backToList = "Back to Sessions"
+deleteConfirm = "Are you sure? This cannot be undone."
+deleteError = "Failed to delete session"
+deleteSession = "Delete Session"
+deleted = "Session deleted"
+dueDate = "Due Date"
+finalizeError = "Failed to finalize session"
+loadPdfError = "Failed to load signed PDF"
+loadSignedPdf = "Load Signed PDF into Active Files"
+messageLabel = "Message"
+noAdditionalInfo = "No additional information"
+owner = "Owner"
+participantRemoved = "Participant removed"
+participants = "Participants"
+participantsAdded = "Participants added successfully"
+removeParticipant = "Remove"
+removeParticipantError = "Failed to remove participant"
+selectUsers = "Select users..."
+sessionInfo = "Session Info"
+workbenchTitle = "Session Management"
+
+[certSign.collab.sessionList]
+active = "Active"
+finalized = "Finalized"
+
+[certSign.collab.signRequest]
+addSignature = "Add Your Signature"
+addToFiles = "Add to Active Files"
+addedToFiles = "Document added to active files"
+advancedSettings = "Advanced Settings"
+backToList = "Back to Sign Requests"
+certificateChoice = "Select a certificate to sign with"
+changeSignature = "Change signature"
+clearSignature = "Clear Signature"
+completeAndSign = "Complete & Sign"
+createNewSignature = "Create New Signature"
+decline = "Decline Request"
+declineButton = "Decline"
+deleteSelected = "Delete selected signature"
+drawSignature = "Draw your signature below"
+dueDate = "Due Date"
+fileTooLarge = "File size must be less than 5MB"
+fontFamily = "Font Family"
+fontSize = "Font Size: {{size}}px"
+fontSizePlaceholder = "Size"
+from = "From"
+invalidCertFile = "Please select a P12 or PFX certificate file"
+invalidFileType = "Please select an image file"
+location = "Location (Optional)"
+locationPlaceholder = "Where are you signing from?"
+message = "Message"
+noCertificate = "Please select a certificate file"
+noSignatures = "Please place at least one signature on the PDF"
+p12File = "P12/PFX Certificate File"
+password = "Certificate Password"
+passwordPlaceholder = "Enter password..."
+penColor = "Pen Color"
+penSize = "Pen Size: {{size}}px"
+placeSignatureButton = "Place Signature on PDF"
+placementActive = "Click PDF to place"
+reason = "Reason (Optional)"
+reasonPlaceholder = "Why are you signing?"
+removeCertFile = "Remove File"
+removeImage = "Remove Image"
+savedSignatures = "Saved Signatures"
+selectFile = "Select Image File"
+selectSignatureTitle = "Select or Create Signature"
+signButton = "Sign Document"
+signatureInfo = "These settings are configured by the document owner"
+signaturePlaced = "Signature placed on page"
+signatureSettings = "Signature Settings"
+signatureText = "Signature Text"
+signatureTextPlaceholder = "Enter your name..."
+signatureTypeLabel = "Signature Type"
+signingTitle = "Signing"
+textColor = "Text Color"
+typeSignature = "Type your name to create a signature"
+uploadCert = "Custom Certificate"
+uploadCertDesc = "Use your own P12/PFX certificate"
+uploadSignature = "Upload your signature image"
+usePersonalCert = "Personal Certificate"
+usePersonalCertDesc = "Auto-generated for your account"
+useServerCert = "Organization Certificate"
+useServerCertDesc = "Shared organization certificate"
+workbenchTitle = "Sign Request"
+
+[certSign.collab.signRequest.canvas]
+colorPickerTitle = "Choose stroke colour"
+continue = "Continue"
+
+[certSign.collab.signRequest.certModal]
+certInvalid = "Certificate invalid: {{error}}"
+certInvalidFallback = "Invalid certificate"
+certNetworkError = "Could not validate certificate"
+certValidUntil = "Certificate valid until {{date}}"
+certValidating = "Validating certificate..."
+description = "You have placed {{count}} signature(s). Choose your certificate to complete signing."
+sign = "Sign Document"
+title = "Configure Certificate"
+
+[certSign.collab.signRequest.image]
+hint = "Upload a PNG or JPG image of your signature"
+
+[certSign.collab.signRequest.mode]
+move = "Move Signature"
+place = "Place Signature"
+title = "Sign or move mode"
+
+[certSign.collab.signRequest.modeTabs]
+draw = "Draw"
+image = "Upload"
+text = "Type"
+
+[certSign.collab.signRequest.placeSignature]
+message = "Click on the PDF to place your signature"
+title = "Place Signature"
+
+[certSign.collab.signRequest.preview]
+imageAlt = "Selected signature"
+missing = "No preview"
+textFallback = "Signature"
+
+[certSign.collab.signRequest.saved]
+defaultCanvasLabel = "Drawing signature"
+defaultImageLabel = "Uploaded signature"
+defaultLabel = "Signature"
+defaultTextLabel = "Typed signature"
+delete = "Delete signature"
+none = "No saved signatures"
+
+[certSign.collab.signRequest.signatureType]
+draw = "Draw"
+type = "Type"
+upload = "Upload"
+
+[certSign.collab.signRequest.steps]
+back = "Back"
+cancelPlacement = "Cancel Placement"
+certificate = "Certificate"
+clickMultipleTimes = "Click on the PDF multiple times to place signatures. Drag any signature to move or resize it."
+clickToPlace = "Click on the PDF where you would like your signature to appear."
+continue = "Continue to Certificate Selection"
+continueToPlacement = "Continue to Placement"
+continueToReview = "Continue to Review"
+createSignature = "Create Signature"
+invisible = "Invisible"
+location = "Location:"
+multipleSignatures = "{{count}} signatures will be applied to the PDF"
+oneSignature = "1 signature will be applied to the PDF"
+placeOnPdf = "Place on PDF"
+reason = "Reason:"
+reviewTitle = "Review Before Signing"
+signaturePlaced = "Signature placed on page {{page}}. You can adjust the position by clicking again or continue to review."
+visibility = "Visibility:"
+visible = "Visible"
+yourSignatures = "Your Signatures ({{count}})"
+
+[certSign.collab.signRequest.text]
+colorLabel = "Color"
+fontLabel = "Font"
+fontSizeLabel = "Size"
+fontSizePlaceholder = "16"
+label = "Signature Text"
+modalHint = "Enter your name, then click Continue to place it on the PDF."
+placeholder = "Enter your name..."
+
+[certSign.collab.signatureSettings]
+description = "Configure how signatures will appear for all participants"
+title = "Signature Appearance"
+
+[certSign.collab.userSelector]
+inviteUsers = "Add Users"
+loadError = "Failed to load users"
+noTeam = "No Team"
+noUsers = "No other users found."
+placeholder = "Select users..."
+
+[certSign.mobile]
+panelActions = "Actions"
+panelDocument = "Document"
+panelPeople = "People"
+
+[certSign.sessions]
+deleted = "Session deleted"
+fetchFailed = "Failed to load session details"
+finalized = "Session finalized"
+loaded = "Signed PDF loaded"
+pdfNotReady = "PDF Not Ready"
+pdfNotReadyDesc = "The signed PDF is being generated. Please try again in a moment."
+
[changeCreds]
changePassword = "Vous utilisez les identifiants de connexion par défaut. Veuillez saisir un nouveau mot de passe"
changeUsername = "Mettre à jour votre nom d’utilisateur. Vous serez déconnecté après la mise à jour."
@@ -2644,7 +2906,7 @@ upgradeButton = "Mettre à niveau le compte"
[config.apiKeys]
chartAriaLabel = "Utilisation des crédits : inclus {{includedUsed}} sur {{includedTotal}}, achetés {{purchasedUsed}} sur {{purchasedTotal}}"
copyKeyAriaLabel = "Copier la clé API"
-creditsRemaining = "Credits Remaining"
+creditsRemaining = "Crédits restant"
description = "Votre clé API pour accéder à la suite d’outils PDF de Stirling. Copiez-la dans votre projet ou actualisez pour en générer une nouvelle."
docsDescription = "En savoir plus sur l’intégration avec Stirling PDF :"
docsLink = "Documentation API"
@@ -2695,12 +2957,12 @@ security = "Configuration de sécurité"
system = "Configuration système"
[connectionMode.status]
-localOffline = "Offline mode running"
-localOnline = "Offline mode running"
-saas = "Connected to Stirling Cloud"
-selfhostedChecking = "Connected to self-hosted server (checking...)"
-selfhostedOffline = "Self-hosted server unreachable"
-selfhostedOnline = "Connected to self-hosted server"
+localOffline = "Mode offline"
+localOnline = "Mode offline"
+saas = "Connecté au Cloud Stirling"
+selfhostedChecking = "Connection en cours à un serveur auto-hébergé"
+selfhostedOffline = "Serveur auto-hébergé inaccessible"
+selfhostedOnline = "Connecté à un serveur auto-hébergé"
[convert]
autoRotate = "Rotation automatique"
@@ -3242,6 +3504,46 @@ totalSelected = "Total sélectionné"
unsupported = "Non pris en charge"
unzip = "Décompresser"
uploadError = "Échec du téléversement de certains fichiers."
+changesNotUploaded = "Changes not uploaded"
+cloudFile = "Cloud file"
+copyCreated = "Copy saved to this device."
+copyFailed = "Could not create a copy."
+filterAll = "All"
+filterLocal = "Local"
+filterSharedByMe = "Shared by me"
+filterSharedWithMe = "Shared with me"
+lastSynced = "Last synced"
+leaveShare = "Remove from my list"
+leaveShareFailed = "Could not remove the shared file."
+leaveShareSuccess = "Removed from your shared list."
+localOnly = "Local only"
+makeCopy = "Make a copy"
+owner = "Owner"
+ownerUnknown = "Unknown"
+removeBoth = "Remove from both"
+removeFilePrompt = "This file is saved on this device and on your server. Where would you like to remove it from?"
+removeFileTitle = "Remove file"
+removeLocalOnly = "This device only"
+removeServerFailed = "Could not remove the file from the server."
+removeServerOnly = "Server only"
+removeServerOnlyPrompt = "This file is stored only on your server. Would you like to remove it from the server?"
+removeServerSuccess = "Removed from server."
+removeSharedPrompt = "This file is shared with you. You can remove it from this device or your shared list."
+removeSharedServerOnlyBlockedPrompt = "This file is shared with you and stored only on the server."
+removeSharedServerOnlyPrompt = "This file is shared with you and stored only on the server. Remove it from your list?"
+share = "Share"
+shareSelected = "Share Selected"
+sharedByYou = "Shared by you"
+sharedEditNoticeBody = "You do not have edit rights to the server version of this file. Any edits you make will be saved as a local copy."
+sharedEditNoticeConfirm = "Got it"
+sharedEditNoticeTitle = "Read-only server copy"
+sharedWithYou = "Shared with you"
+sharing = "Sharing"
+storageState = "Storage"
+synced = "Synced"
+updateOnServer = "Update on Server"
+uploadSelected = "Upload Selected"
+uploadToServer = "Upload to Server"
[files]
addFiles = "Ajouter des fichiers"
@@ -3926,7 +4228,7 @@ version = "Version"
accountCreatedSuccess = "Compte créé avec succès ! Vous pouvez maintenant vous connecter."
alreadyLoggedIn = "Vous êtes déjà connecté sur"
alreadyLoggedIn2 = "appareils. Veuillez vous déconnecter des appareils et réessayer."
-backToSignIn = "Back to sign in"
+backToSignIn = "Retour à la connexion"
cancel = "Annuler"
changePasswordWarning = "Veuillez changer votre mot de passe après votre première connexion"
credentialsUpdated = "Vos identifiants ont été mis à jour. Veuillez vous reconnecter."
@@ -3973,16 +4275,16 @@ pleaseEnterBoth = "Veuillez saisir l’e-mail et le mot de passe"
pleaseEnterEmail = "Veuillez saisir votre adresse e-mail"
relyingPartyRegistrationNotFound = "Aucun enregistrement de partie de confiance trouvé"
rememberme = "Se souvenir de moi"
-resetHelp = "Enter your email to receive a secure link to reset your password. If the link has expired, please request a new one."
-resetYourPassword = "Reset your password"
+resetHelp = "Saisissez votre email pour recevoir un lien de réinitialisation de votre mot de passe. Si le lien a expiré, veuillez en demander un nouveau."
+resetYourPassword = "Réinitialisation de mot de passe"
saml2RequiresLicense = "La connexion SAML nécessite une licence payante (Server ou Enterprise). Veuillez contacter l’administrateur pour mettre à niveau votre plan."
sending = "Envoi…"
sendMagicLink = "Envoyer le lien magique"
-sendResetLink = "Send reset link"
+sendResetLink = "Envoyer le lien de réinitialisation"
sessionExpired = "Votre session a expiré. Veuillez vous reconnecter."
signin = "Connexion"
signInAnonymously = "S’inscrire en tant qu’invité"
-subtitle = "Sign back in to Stirling PDF"
+subtitle = "Se reconnecter à Stirling PDF"
signingIn = "Connexion en cours…"
signinTitle = "Veuillez vous connecter"
signInWith = "Se connecter avec"
@@ -3991,7 +4293,7 @@ ssoSignIn = "Se connecter via l'authentification unique"
title = "Connexion"
toManySessions = "Vous avez trop de sessions actives."
unexpectedError = "Erreur inattendue : {{message}}"
-updatePassword = "Update password"
+updatePassword = "Mise à jour du mot de passe"
useEmailInstead = "Se connecter avec l’e‑mail"
useMagicLink = "Utiliser plutôt le lien magique"
userIsDisabled = "L'utilisateur est désactivé, la connexion est actuellement bloquée avec ce nom d'utilisateur. Veuillez contacter l'administrateur."
@@ -4302,13 +4604,13 @@ workbench = "Voici le Workbench - la zone principale où vous v
wrapUp = "Tout est prêt ! Vous avez appris les principales zones de l’application et comment les utiliser. Cliquez sur le bouton Aide quand vous le souhaitez pour revoir cette visite."
[onboarding.freeTrial]
-afterTrialWithoutPayment = "After your trial ends, you'll continue with our free tier. Add a payment method to keep Pro access."
-afterTrialWithPayment = "Your Pro subscription will start automatically when the trial ends."
-body = "You have full access to Stirling PDF Pro features during your trial. Enjoy unlimited conversions, larger file sizes, and priority processing."
-daysRemaining = "{{days}} days remaining"
-daysRemainingSingular = "{{days}} day remaining"
-title = "Your 30-Day Pro Trial"
-trialEnds = "Trial ends {{date}}"
+afterTrialWithoutPayment = "À la fin de la période d'essai, vous basculerez en mode gratuit. Ajoutez une méthode de paiement pour garder l'accès Pro."
+afterTrialWithPayment = "Votre abonnement Pro commencera immédiatement à la fin de la période d'essai."
+body = "Vous avez accès à toutes les fonctionnalité Pro de Stirling PDF pendant la période d'essai. Profitez de conversion ilimitées, de tailles de fichier plus importantes et de la priorité des tâches."
+daysRemaining = "{{days}} jours restants"
+daysRemainingSingular = "{{days}} jour restant"
+title = "Votre période d'essai Pro de 30 jours"
+trialEnds = "La période d'essai fini le {{date}}"
[onboarding.buttons]
back = "Retour"
@@ -4470,6 +4772,10 @@ singlePageView = "Vue page unique"
unknownFile = "Fichier inconnu"
zoomIn = "Zoom avant"
zoomOut = "Zoom arrière"
+disableColorFilter = "Disable Colour Filter"
+enableDarkFilter = "Enable Dark Filter"
+enableSepiaFilter = "Enable Sepia Filter"
+resetZoom = "Reset zoom"
[viewer.attachments]
title = "Pièces jointes"
@@ -4481,29 +4787,29 @@ empty = "Aucune pièce jointe dans ce document"
noMatch = "Aucune pièce jointe ne correspond à votre recherche"
[viewer.comments]
-title = "Comments"
-hint = "Place comments with the Comment, Insert Text, or Replace Text tools. They will appear here by page."
-placeholder = "Type your comment..."
+title = "Commentaires"
+hint = "Commentez avec Commentaire, Insérer du texte ou remplacer le texte. Vos commentaires apparaîtrons ici par page."
+placeholder = "Saisissez votre commentaire..."
pageLabel = "Page {{page}}"
-oneComment = "1 comment"
-nComments = "{{count}} comments"
-addCommentPlaceholder = "Add comment..."
-addLink = "Add link"
-goToLink = "Go to link"
-addComment = "Add comment"
-viewComment = "View comment"
-addReplyPlaceholder = "Add reply..."
-saveReply = "Save reply"
-send = "Send"
-moreActions = "More actions"
-typeComment = "Comment"
-typeInsertText = "Insert Text"
-typeReplaceText = "Replace Text"
-locateAnnotation = "Locate in document"
-deleteTitle = "Remove annotation from comments?"
-deleteDescription = "This annotation has a comment attached. You can remove just the comment from the sidebar while keeping the annotation, or delete everything."
-removeCommentOnly = "Remove comment only"
-deleteAnnotationAndComment = "Delete annotation & comment"
+oneComment = "1 commentaire"
+nComments = "{{count}} commentaires"
+addCommentPlaceholder = "Ajouter un commentaire..."
+addLink = "Ajouter un lien"
+goToLink = "Suivre le lien"
+addComment = "Ajouter un commentaire"
+viewComment = "Voir le commentaire"
+addReplyPlaceholder = "Répondre..."
+saveReply = "Sauvegarder la réponse"
+send = "Envoyer"
+moreActions = "Plus d'actions"
+typeComment = "Commentaire"
+typeInsertText = "Insérer du text"
+typeReplaceText = "Remplacer le commentaire"
+locateAnnotation = "Chercher dans le document"
+deleteTitle = "Supprimer l'annotation des commentaires ?"
+deleteDescription = "Cette annotation a un commentaire. Vous pouvez supprimer seulement le commentaire de la bare latérale en gardant l'annotation ou supprimer les deux."
+removeCommentOnly = "Supprimer seulement le commentaire"
+deleteAnnotationAndComment = "Supprimer l'annotation et le commentaire"
[viewer.formBar]
title = "Champs de formulaire"
@@ -4514,6 +4820,21 @@ dismiss = "Fermer"
apply = "Appliquer les modifications"
download = "Télécharger le PDF"
+[viewer.nonPdf]
+columnDefault = "Column {{index}}"
+convertToPdf = "Convert to PDF"
+csvStats = "{{rows}} rows · {{columns}} columns · {{size}}"
+emptyFile = "Empty file"
+fileTypeBadge = "{{type}} File"
+htmlPreview = "HTML preview"
+htmlPreviewWarning = "HTML preview — external resources may not load · {{size}}"
+invalidJson = "Invalid JSON — showing raw content"
+lineNumbers = "Line numbers"
+loading = "Loading..."
+renderMarkdown = "Render markdown"
+sortedBy = "Sorted by: {{column}}"
+textStats = "{{lines}} lines · {{size}}"
+
[rightRail]
closeSelected = "Fermer les fichiers sélectionnés"
selectAll = "Tout sélectionner"
@@ -4551,7 +4872,8 @@ exitRedaction = "Quitter le mode de caviardage"
save = "Enregistrer"
downloadAll = "Tout télécharger"
saveAll = "Tout enregistrer"
-saveAs = "Save As"
+saveAs = "Souvegarder sous"
+toggleLayers = "Changer les calques"
[textAlign]
left = "Gauche"
@@ -5421,6 +5743,58 @@ settings = "Réglages"
showMeAround = "Faites-moi visiter"
sign = "Signer"
tours = "Visites guidées"
+access = "Access"
+accessAddPerson = "Add another person"
+accessBack = "Back"
+accessCopyLink = "Copy link"
+accessEmail = "Email Address"
+accessEmailPlaceholder = "name@company.com"
+accessFileLabel = "File"
+accessGeneral = "General Access"
+accessInviteTitle = "Invite People"
+accessOwner = "Owner"
+accessPanel = "Document access"
+accessPeople = "People with access"
+accessRemove = "Remove"
+accessRestricted = "Restricted"
+accessRestrictedHint = "Only people with access can open"
+accessRole = "Role"
+accessRoleCommenter = "Commenter"
+accessRoleEditor = "Editor"
+accessRoleViewer = "Viewer"
+accessSelectedFile = "Selected file"
+accessSendInvite = "Send Invite"
+accessTitle = "Document Access"
+accessYou = "You"
+activeSessions = "Active Sessions"
+activeTab = "Active"
+allSessions = "All Sessions"
+back = "Back"
+certSign = "Certificate Sign"
+completedSessions = "Completed Sessions"
+completedTab = "Completed"
+createNew = "Create New Request"
+createSession = "Create Signing Request"
+dueDate = "Due date (optional)"
+filterDeclined = "Declined"
+filterMine = "Mine"
+filterOverdue = "Overdue"
+filterSigned = "Signed"
+newRequest = "New Request"
+noActiveSessions = "No pending sign requests or active sessions"
+noCompletedSessions = "No completed sessions"
+noFile = "No file selected"
+refresh = "Refresh"
+requestSignatures = "Request Signatures"
+searchDocuments = "Search documents…"
+selectSingleFileToRequest = "Select a single PDF file to request signatures"
+selectUsers = "Select users to sign"
+selectUsersPlaceholder = "Choose participants..."
+selectedFile = "Selected file"
+sendingRequest = "Sending..."
+signYourself = "Sign Yourself"
+signatureRequests = "Signature Requests"
+wetSign = "Add Signature"
[quickAccess.helpMenu]
adminTour = "Visite administrateur"
@@ -6057,18 +6431,19 @@ endpoints = "Endpoints"
features = "Fonctionnalités"
systemSettings = "Paramètres système"
title = "Configuration"
+storageSharing = "Stockage et partage de fichier"
[settings.connection]
-localDescription = "You are using the local backend without an account. Some tools requiring cloud processing or a self-hosted server are unavailable."
+localDescription = "Vous utilisez le backend local sans compte. Certains outils nécessitant le cloud ou un serveur auto-hébergé ne sont pas disponibles."
logout = "Se déconnecter"
server = "Serveur"
-signIn = "Sign In"
+signIn = "Se connecter"
title = "Mode de connexion"
user = "Connecté en tant que"
[settings.connection.mode]
-local = "Local Only"
-saas = "Stirling Cloud"
+local = "En local seulement"
+saas = "Cloud Stirling"
selfhosted = "Auto-hébergé"
[settings.planBilling]
@@ -7351,6 +7726,12 @@ status = "Statut"
team = "Équipe"
title = "Personnes"
user = "Utilisateur"
+confirmUnlock = "Are you sure you want to unlock this user account?"
+locked = "locked"
+lockedBadge = "Locked"
+unlockAccount = "Unlock Account"
+unlockUserError = "Failed to unlock user account"
+unlockUserSuccess = "User account unlocked successfully"
[workspace.people.actions]
label = "Actions"
@@ -7859,3 +8240,297 @@ description = "Clé API Google pour Google Picker API depuis Google Cloud Consol
[provider.googledrive.appId]
label = "App ID"
description = "App ID Google Drive depuis Google Cloud Console"
+
+[certificateChoice.tooltip]
+header = "Certificate Types"
+
+[certificateChoice.tooltip.organization]
+bullet1 = "Managed by system administrators"
+bullet2 = "Shared across authorized users"
+bullet3 = "Represents company identity, not individual"
+bullet4 = "Best for: Official documents, team signatures"
+description = "A shared certificate provided by your organization. Used for company-wide signing authority."
+title = "Organization Certificate"
+
+[certificateChoice.tooltip.personal]
+bullet1 = "Generated automatically on first use"
+bullet2 = "Tied to your user account"
+bullet3 = "Cannot be shared with other users"
+bullet4 = "Best for: Personal documents, individual accountability"
+description = "An auto-generated certificate unique to your user account. Suitable for individual signatures."
+title = "Personal Certificate"
+
+[certificateChoice.tooltip.upload]
+bullet1 = "Requires P12/PFX file and password"
+bullet2 = "Can be issued by external Certificate Authorities"
+bullet3 = "Higher trust level for legal documents"
+bullet4 = "Best for: Legally binding contracts, external validation"
+description = "Use your own PKCS#12 certificate file. Provides full control over certificate properties."
+title = "Upload Custom P12"
+
+[groupSigning.steps]
+back = "Back"
+completed = "Completed"
+current = "Current"
+stepLabel = "Step {{number}}"
+
+[groupSigning.steps.configureDefaults]
+continue = "Continue to Review"
+invisible = "Signatures will be invisible (metadata only)"
+locationLabel = "Location:"
+preview = "Preview"
+reasonLabel = "Reason:"
+title = "Configure Signature Settings"
+visible = "Signatures will be visible on page {{page}}"
+
+[groupSigning.steps.review]
+document = "Document"
+dueDate = "Due Date (Optional)"
+dueDatePlaceholder = "Select due date..."
+invisible = "Invisible (metadata only)"
+location = "Location:"
+logo = "Logo:"
+logoHidden = "No logo"
+logoShown = "Stirling PDF logo shown"
+participantCount = "{{count}} participant(s) will sign in order"
+participants = "Participants"
+reason = "Reason:"
+send = "Send Signing Requests"
+signatureSettings = "Signature Settings"
+title = "Review Session Details"
+titleShort = "Review & Send"
+visibility = "Visibility:"
+visible = "Visible on page {{page}}"
+
+[groupSigning.steps.selectDocument]
+continue = "Continue to Participant Selection"
+noFile = "Please select a single PDF file from your active files to create a signing session."
+selectedFile = "Selected document"
+title = "Select Document"
+
+[groupSigning.steps.selectParticipants]
+continue = "Continue to Signature Settings"
+count = "{{count}} participant(s) selected"
+label = "Select participants"
+placeholder = "Choose participants to sign..."
+title = "Choose Participants"
+
+[groupSigning.tooltip]
+header = "About Group Signing"
+
+[groupSigning.tooltip.finalization]
+bullet1 = "All signatures are applied in the participant order you specified"
+bullet2 = "You can finalize with partial signatures if needed"
+bullet3 = "Once finalized, the session cannot be modified"
+description = "Once all participants have signed (or you choose to finalize early), you can generate the final signed PDF."
+title = "Finalization Process"
+
+[groupSigning.tooltip.roles]
+bullet1 = "Owner (you): Creates session, configures signature defaults, finalizes document"
+bullet2 = "Participants: Create their signature, choose certificate, place on PDF"
+bullet3 = "Participants cannot modify signature visibility, reason, or location settings"
+description = "You control the signature appearance settings for all participants."
+title = "Participant Roles"
+
+[groupSigning.tooltip.sequential]
+bullet1 = "First participant must sign before the second can access the document"
+bullet2 = "Ensures proper signing order for legal compliance"
+bullet3 = "You can reorder participants by dragging them in the list"
+description = "Participants sign documents in the order you specify. Each signer receives a notification when it is their turn."
+title = "Sequential Signing"
+
+[sessionManagement.tooltip]
+header = "Managing Signing Sessions"
+
+[sessionManagement.tooltip.addParticipants]
+bullet1 = "New participants added to the end of signing order"
+bullet2 = "Cannot add participants after session is finalized"
+bullet3 = "Each participant receives a notification when it's their turn"
+description = "You can add more participants to an active session at any time before finalization."
+title = "Adding Participants"
+
+[sessionManagement.tooltip.finalization]
+bullet1 = "Full finalization: All participants have signed"
+bullet2 = "Partial finalization: Some participants haven't signed yet"
+bullet3 = "Unsigned participants will be excluded from the final document"
+bullet4 = "Once finalized, you can load the signed PDF into active files"
+description = "Finalization combines all signatures into a single signed PDF. This action cannot be undone."
+title = "Session Finalization"
+
+[sessionManagement.tooltip.participantRemoval]
+bullet1 = "Cannot remove participants who have already signed"
+bullet2 = "Removed participants no longer receive notifications"
+bullet3 = "Signing order adjusts automatically"
+description = "Participants can be removed from sessions before they sign."
+title = "Removing Participants"
+
+[sessionManagement.tooltip.signatureOrder]
+bullet1 = "Each signature is applied sequentially to the PDF"
+bullet2 = "Later signers can see earlier signatures"
+bullet3 = "Critical for approval workflows and legal chains of custody"
+description = "The order you specify when creating the session determines who signs first."
+title = "Signature Order"
+
+[signRequest]
+declined = "Sign request declined"
+fetchFailed = "Failed to load sign request"
+signed = "Document signed successfully"
+
+[signSession]
+createFailed = "Failed to create signing request"
+created = "Signing request sent"
+
+[signatureSettings.tooltip]
+header = "Signature Appearance Settings"
+
+[signatureSettings.tooltip.location]
+bullet1 = "Examples: \"New York, USA\", \"London Office\", \"Remote\""
+bullet2 = "Not the same as page position"
+bullet3 = "May be required for certain legal jurisdictions"
+description = "Optional geographic location where the signature was applied. Stored in certificate metadata."
+title = "Signature Location"
+
+[signatureSettings.tooltip.logo]
+bullet1 = "Displayed alongside signature and text"
+bullet2 = "Supports PNG, JPG formats"
+bullet3 = "Enhances professional appearance"
+description = "Add a company logo to visible signatures for branding and authenticity."
+title = "Company Logo"
+
+[signatureSettings.tooltip.reason]
+bullet1 = "Examples: \"Approval\", \"Contract Agreement\", \"Review Complete\""
+bullet2 = "Visible in PDF signature properties"
+bullet3 = "Useful for audit trails and compliance"
+description = "Optional text explaining why the document is being signed. Stored in certificate metadata."
+title = "Signature Reason"
+
+[signatureSettings.tooltip.visibility]
+bullet1 = "Visible: Signature appears on PDF with custom appearance"
+bullet2 = "Invisible: Certificate embedded without visual mark"
+bullet3 = "Invisible signatures still provide cryptographic validation"
+description = "Controls whether the signature is visible on the document or embedded invisibly."
+title = "Signature Visibility"
+
+[storageShare]
+accessDenied = "You do not have access to this shared file. Ask the owner to share it with you."
+accessDeniedBody = "You do not have access to this file. Ask the owner to share it with you."
+accessDeniedTitle = "No access"
+accessFailed = "Unable to load activity."
+accessLimitedCommenter = "Comment access is coming soon. Ask the owner for editor access if you need to download."
+accessLimitedTitle = "Limited access"
+accessLimitedViewer = "This link is view-only. Ask the owner for editor access if you need to download."
+accessed = "Accessed"
+addUser = "Add"
+bulkDescription = "Create one link to share all selected files with signed-in users."
+bulkTitle = "Share selected files"
+commenterHint = "Commenting is coming soon."
+copied = "Link copied to clipboard"
+copy = "Copy"
+copyFailed = "Copy failed"
+copyLink = "Copy share link"
+createdAt = "Created"
+description = "Create a share link for this file. Signed-in users with the link can access it."
+download = "Download"
+downloadFailed = "Unable to download this file."
+downloaded = "Downloaded"
+downloadsCount = "Downloads: {{count}}"
+emailWarningBody = "This looks like an email address. If this person is not already a Stirling PDF user, they will not be able to access the file."
+emailWarningConfirm = "Share anyway"
+emailWarningTitle = "Email address"
+errorTitle = "Share failed"
+expiredBody = "This share link is invalid or has expired."
+expiredTitle = "Link expired"
+failure = "Unable to generate a share link. Please try again."
+fileCount = "{{count}} files selected"
+fileLabel = "File"
+generate = "Generate Link"
+generated = "Share link generated"
+goToLogin = "Go to login"
+hideActivity = "Hide activity"
+invalidUsername = "Enter a valid username or email address."
+lastAccessed = "Last accessed"
+linkAccessTitle = "Share link access"
+linkLabel = "Share link"
+linksDisabled = "Share links are disabled."
+linksDisabledBody = "Share links are disabled by your server settings."
+loadFailed = "Unable to open shared file."
+loading = "Loading share link..."
+loginPrompt = "Sign in to access this shared file."
+loginRequired = "Login required"
+manage = "Manage sharing"
+manageDescription = "Create and manage links to share this file."
+manageLoadFailed = "Unable to load share links."
+manageTitle = "Manage Sharing"
+noActivity = "No activity yet."
+noLinks = "No active share links yet."
+noSharedUsers = "No users have access yet."
+openInApp = "Open in Stirling PDF"
+ownerLabel = "Owner"
+ownerOnly = "Only the owner can manage sharing."
+ownerUnknown = "Unknown"
+removeLink = "Remove link"
+removeUser = "Remove"
+requiresLogin = "This shared file requires login."
+revokeFailed = "Unable to remove the share link."
+revoked = "Share link removed"
+roleCommenter = "Commenter"
+roleEditor = "Editor"
+roleLabel = "Role"
+roleViewer = "Viewer"
+selectSingleFile = "Select a single file to manage sharing."
+shareHeading = "Shared file"
+sharedUsersTitle = "Shared users"
+sharingDisabled = "Sharing is disabled."
+sharingDisabledBody = "Sharing has been disabled by your server settings."
+title = "Share File"
+titleDefault = "Shared file"
+tryAgain = "Please try again later."
+unknownUser = "Unknown user"
+userAddFailed = "Unable to share with that user."
+userAdded = "User added to shared list."
+userRemoveFailed = "Unable to remove that user."
+userRemoved = "User removed from shared list."
+usernameLabel = "Username or email"
+usernamePlaceholder = "Enter a username or email"
+viewActivity = "View activity"
+viewed = "Viewed"
+viewsCount = "Views: {{count}}"
+
+[storageUpload]
+bulkDescription = "This uploads the selected files to your server storage."
+bulkTitle = "Upload selected files"
+description = "This uploads the current file to server storage for your own access."
+errorTitle = "Upload failed"
+failure = "Upload failed. Please check your login and storage settings."
+fileCount = "{{count}} files selected"
+fileLabel = "File"
+hint = "Public links and access modes are controlled by your server settings."
+more = " +{{count}} more"
+success = "Uploaded to server"
+title = "Upload to Server"
+updateButton = "Update on Server"
+uploadButton = "Upload to Server"
+
+[wetSignature.tooltip]
+header = "Signature Creation Methods"
+
+[wetSignature.tooltip.draw]
+bullet1 = "Customize pen color and thickness"
+bullet2 = "Clear and redraw until satisfied"
+bullet3 = "Works on touch devices (tablets, phones)"
+description = "Create a handwritten signature using your mouse or touchscreen. Best for personal, authentic signatures."
+title = "Draw Signature"
+
+[wetSignature.tooltip.type]
+bullet1 = "Choose from multiple fonts"
+bullet2 = "Customize text size and color"
+bullet3 = "Perfect for standardized signatures"
+description = "Generate a signature from typed text. Fast and consistent, suitable for business documents."
+title = "Type Signature"
+
+[wetSignature.tooltip.upload]
+bullet1 = "Supports PNG, JPG, and other image formats"
+bullet2 = "Transparent backgrounds recommended for best results"
+bullet3 = "Image will be resized to fit signature area"
+description = "Upload a pre-created signature image. Ideal if you have a scanned signature or company logo."
+title = "Upload Signature Image"