mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
2147 lines
80 KiB
TypeScript
2147 lines
80 KiB
TypeScript
import type { TranslationKeys } from "./en.js";
|
|
|
|
export const fr: TranslationKeys = {
|
|
common: {
|
|
upload: "Importer depuis l'ordinateur",
|
|
process: "Traiter",
|
|
download: "Telecharger",
|
|
cancel: "Annuler",
|
|
save: "Enregistrer",
|
|
delete: "Supprimer",
|
|
settings: "Parametres",
|
|
search: "Rechercher des outils...",
|
|
dropFiles: "Deposez des fichiers ici ou cliquez sur le bouton d'import",
|
|
loading: "Chargement...",
|
|
error: "Une erreur est survenue",
|
|
confirm: "Confirmer",
|
|
close: "Fermer",
|
|
back: "Retour",
|
|
next: "Suivant",
|
|
clear: "Effacer",
|
|
copy: "Copier",
|
|
copied: "Copie !",
|
|
noResults: "Aucun resultat trouve",
|
|
showLess: "Afficher moins",
|
|
showMore: "Afficher {count} de plus",
|
|
experimental: "Experimental",
|
|
enabled: "Active",
|
|
disabled: "Desactive",
|
|
rename: "Renommer",
|
|
edit: "Modifier",
|
|
actions: "Actions",
|
|
create: "Creer",
|
|
or: "ou",
|
|
goHome: "Retour a l'accueil",
|
|
somethingWentWrong: "Quelque chose s'est mal passe",
|
|
unexpectedError: "Une erreur inattendue est survenue.",
|
|
retry: "Réessayer",
|
|
privacyPolicy: "Politique de confidentialite",
|
|
pageNotFound: "Page not found",
|
|
pageNotFoundDescription: "The page you are looking for does not exist or has been moved.",
|
|
},
|
|
categories: {
|
|
essentials: "Essentiels",
|
|
optimization: "Optimisation",
|
|
adjustments: "Reglages",
|
|
watermark: "Filigrane et superposition",
|
|
utilities: "Utilitaires",
|
|
layout: "Mise en page et composition",
|
|
format: "Format et conversion",
|
|
ai: "Outils AI",
|
|
},
|
|
tools: {
|
|
resize: {
|
|
name: "Redimensionner",
|
|
description: "Redimensionnez par pixels, pourcentage ou presets pour reseaux sociaux",
|
|
},
|
|
crop: {
|
|
name: "Recadrer",
|
|
description: "Recadrage libre, presets de ratio, recadrage par forme",
|
|
},
|
|
rotate: {
|
|
name: "Rotation et miroir",
|
|
description: "Rotation, miroir et redressement d'images",
|
|
},
|
|
convert: { name: "Convertir", description: "Convertissez entre formats d'image" },
|
|
compress: {
|
|
name: "Compresser",
|
|
description: "Reduisez la taille du fichier par qualite ou taille cible",
|
|
},
|
|
"optimize-for-web": {
|
|
name: "Optimiser pour le web",
|
|
description:
|
|
"Optimisez les images pour le web avec conversion de format, controle de qualite et apercu en direct",
|
|
},
|
|
"strip-metadata": {
|
|
name: "Supprimer les metadonnees",
|
|
description: "Supprimez EXIF, GPS et informations de l'appareil photo",
|
|
},
|
|
"edit-metadata": {
|
|
name: "Modifier les metadonnees",
|
|
description: "Modifiez EXIF, IPTC, XMP, GPS, mots-cles et dates",
|
|
},
|
|
"bulk-rename": {
|
|
name: "Renommage par lot",
|
|
description: "Renommez plusieurs fichiers avec des motifs",
|
|
},
|
|
"image-to-pdf": {
|
|
name: "Image vers PDF",
|
|
description: "Combinez des images dans un document PDF",
|
|
},
|
|
"pdf-to-image": {
|
|
name: "PDF vers image",
|
|
description: "Convertissez des pages PDF en images",
|
|
},
|
|
favicon: {
|
|
name: "Generateur de Favicon",
|
|
description: "Generez toutes les tailles de favicon et d'icones d'application",
|
|
},
|
|
"adjust-colors": {
|
|
name: "Ajuster les couleurs",
|
|
description: "Luminosite, contraste, exposition, saturation, temperature, nettete et effets",
|
|
},
|
|
sharpening: {
|
|
name: "Nettete",
|
|
description: "Nettete adaptative, masque flou et passe-haut avec presets",
|
|
},
|
|
"replace-color": {
|
|
name: "Remplacer et inverser la couleur",
|
|
description: "Remplacez des couleurs specifiques ou inversez",
|
|
},
|
|
"color-blindness": {
|
|
name: "Simulation du daltonisme",
|
|
description:
|
|
"Simulez l'apparence des images avec differents types de deficience de la vision des couleurs",
|
|
},
|
|
"remove-background": {
|
|
name: "Supprimer l'arriere-plan",
|
|
description: "Suppression d'arriere-plan par AI",
|
|
},
|
|
upscale: {
|
|
name: "Agrandissement d'image",
|
|
description: "Amelioration par super-resolution AI",
|
|
},
|
|
"erase-object": {
|
|
name: "Effaceur d'objets",
|
|
description: "Supprimez les objets indesirables avec l'AI",
|
|
},
|
|
ocr: {
|
|
name: "OCR / Extraction de texte",
|
|
description: "Extrayez du texte a partir d'images avec une precision alimentee par l'AI",
|
|
},
|
|
"blur-faces": {
|
|
name: "Floutage de visages / donnees sensibles",
|
|
description: "Detectez et floutez automatiquement les visages et informations sensibles",
|
|
},
|
|
"enhance-faces": {
|
|
name: "Amelioration des visages",
|
|
description: "Restaurez et ameliorez les visages avec l'AI",
|
|
},
|
|
"smart-crop": {
|
|
name: "Recadrage intelligent",
|
|
description: "Recadrage intelligent par sujet, visage ou rognage automatique",
|
|
},
|
|
"image-enhancement": {
|
|
name: "Amelioration d'image",
|
|
description:
|
|
"Amelioration automatique en un clic : exposition, contraste, couleur et nettete intelligents",
|
|
},
|
|
"noise-removal": {
|
|
name: "Suppression du bruit",
|
|
description: "Suppression du bruit et du grain par AI",
|
|
},
|
|
"red-eye-removal": {
|
|
name: "Correction des yeux rouges",
|
|
description: "Detection et correction des yeux rouges par AI pour les photos au flash",
|
|
},
|
|
"restore-photo": {
|
|
name: "Restauration de photos",
|
|
description:
|
|
"Reparation de rayures, dechirures et dommages sur les photos anciennes avec l'AI",
|
|
},
|
|
"content-aware-resize": {
|
|
name: "Redimensionnement intelligent",
|
|
description:
|
|
"Redimensionnez les images de maniere intelligente tout en preservant le contenu important",
|
|
},
|
|
"ai-canvas-expand": {
|
|
name: "Extension de canevas AI",
|
|
description: "Etendez le canevas avec un remplissage genere par AI",
|
|
},
|
|
colorize: {
|
|
name: "Colorisation AI",
|
|
description:
|
|
"Convertissez les photos noir et blanc en couleur a l'aide de modeles d'apprentissage profond AI",
|
|
},
|
|
"passport-photo": {
|
|
name: "Photo d'identite",
|
|
description:
|
|
"Creez des photos de passeport, visa et pieces d'identite conformes aux normes officielles avec detection automatique du visage",
|
|
},
|
|
"transparency-fixer": {
|
|
name: "Correcteur de transparence PNG",
|
|
description: "Corrigez les PNG a fausse transparence en un clic",
|
|
},
|
|
"watermark-text": {
|
|
name: "Filigrane texte",
|
|
description: "Ajoutez un filigrane textuel en superposition",
|
|
},
|
|
"watermark-image": {
|
|
name: "Filigrane image",
|
|
description: "Superposez un logo en filigrane",
|
|
},
|
|
"text-overlay": {
|
|
name: "Texte en superposition",
|
|
description: "Ajoutez du texte stylise aux images",
|
|
},
|
|
compose: {
|
|
name: "Composition d'image",
|
|
description: "Superposez des images avec position et opacite",
|
|
},
|
|
"meme-generator": {
|
|
name: "Generateur de Meme",
|
|
description:
|
|
"Creez des memes avec des modeles populaires ou vos propres images. Texte classique style Impact avec polices, couleurs et positionnement personnalisables.",
|
|
},
|
|
info: {
|
|
name: "Info image",
|
|
description: "Consultez toutes les metadonnees et proprietes de l'image",
|
|
},
|
|
compare: {
|
|
name: "Comparer des images",
|
|
description: "Comparaison cote a cote de deux images",
|
|
},
|
|
"find-duplicates": {
|
|
name: "Trouver les doublons",
|
|
description: "Detectez les images en double et quasi-identiques",
|
|
},
|
|
"color-palette": {
|
|
name: "Palette de couleurs",
|
|
description: "Extrayez les couleurs dominantes d'une image",
|
|
},
|
|
"qr-generate": {
|
|
name: "Generateur de codes QR",
|
|
description: "Generez des codes QR stylises avec couleurs, motifs et logos personnalises",
|
|
},
|
|
"html-to-image": {
|
|
name: "HTML to Image",
|
|
description: "Capture webpages as high-quality images",
|
|
},
|
|
"barcode-read": {
|
|
name: "Lecteur de codes-barres",
|
|
description: "Scannez les images pour detecter les codes QR, codes-barres et codes 2D",
|
|
},
|
|
collage: {
|
|
name: "Collage / Grille",
|
|
description: "Combinez des images en de magnifiques collages avec plus de 25 modeles",
|
|
},
|
|
stitch: {
|
|
name: "Assembler / Combiner",
|
|
description: "Assemblez des images cote a cote, empilees ou en grille",
|
|
},
|
|
split: {
|
|
name: "Decoupage d'image",
|
|
description: "Decoupez des images en grille ou par taille en pixels avec apercu en direct",
|
|
},
|
|
border: {
|
|
name: "Bordure et cadre",
|
|
description:
|
|
"Ajoutez des bordures, du rembourrage, des coins arrondis et des ombres avec des presets en un clic",
|
|
},
|
|
beautify: {
|
|
name: "Embellir une capture d'ecran",
|
|
description:
|
|
"Ajoutez des fonds degrades, des cadres d'appareils, des ombres et des tailles pour reseaux sociaux aux captures d'ecran",
|
|
},
|
|
"svg-to-raster": {
|
|
name: "SVG vers raster",
|
|
description:
|
|
"Convertissez SVG en PNG, JPEG, WebP, AVIF, TIFF, GIF ou HEIF a une echelle et un DPI personnalises",
|
|
},
|
|
vectorize: {
|
|
name: "Image vers SVG",
|
|
description: "Convertissez des images en graphiques vectoriels redimensionnables",
|
|
},
|
|
"gif-tools": {
|
|
name: "Outils GIF",
|
|
description:
|
|
"Redimensionnez, optimisez, changez la vitesse, inversez, extrayez des images et faites pivoter des GIFs animes",
|
|
},
|
|
"image-to-base64": {
|
|
name: "Image vers Base64",
|
|
description:
|
|
"Convertissez des images en chaines Base64 pour les integrer dans HTML, CSS et plus",
|
|
},
|
|
pipeline: {
|
|
name: "Constructeur de Pipeline",
|
|
description: "Enchainez plusieurs outils dans un flux de travail",
|
|
},
|
|
},
|
|
toolSettings: {
|
|
compress: {
|
|
compressionMode: "Mode de compression",
|
|
targetSize: "Taille cible",
|
|
quality: "Qualite",
|
|
smallestFile: "Fichier le plus petit",
|
|
bestQuality: "Meilleure qualite",
|
|
submit: "Compresser",
|
|
submitBatch: "Compresser ({count} fichiers)",
|
|
progressLabel: "Compression en cours",
|
|
original: "Original : {size} KB",
|
|
processed: "Traite : {size} KB",
|
|
saved: "Economie : {percent}%",
|
|
},
|
|
resize: {
|
|
customSize: "Taille personnalisee",
|
|
scale: "Echelle",
|
|
presets: "Presets",
|
|
contentAware: "Intelligent",
|
|
widthPx: "Largeur (px)",
|
|
heightPx: "Hauteur (px)",
|
|
fitMode: "Mode d'ajustement",
|
|
cropToFit: "Recadrer pour ajuster",
|
|
fitInside: "Ajuster a l'interieur",
|
|
stretch: "Etirer",
|
|
limitToOriginalSize: "Limiter a la taille d'origine",
|
|
limitToOriginalSizeHint:
|
|
"Si votre image est deja plus petite que la cible, elle est conservee telle quelle au lieu d'etre agrandie",
|
|
scalePercent: "Echelle (%)",
|
|
resizeToSquare: "Redimensionner en carre",
|
|
protectFaces: "Proteger les visages",
|
|
smoothing: "Lissage",
|
|
edgeSensitivity: "Sensibilite des contours",
|
|
submit: "Redimensionner",
|
|
submitBatch: "Redimensionner ({count} fichiers)",
|
|
progressLabel: "Redimensionnement en cours",
|
|
},
|
|
crop: {
|
|
aspectRatio: "Ratio d'aspect",
|
|
custom: "Personnalise",
|
|
positionAndSize: "Position et taille",
|
|
ruleOfThirds: "Regle des tiers",
|
|
leftOffsetPx: "Decalage gauche (px)",
|
|
topOffsetPx: "Decalage haut (px)",
|
|
submit: "Recadrer",
|
|
submitBatch: "Recadrer ({count} fichiers)",
|
|
progressLabel: "Recadrage en cours",
|
|
},
|
|
rotate: {
|
|
rotate: "Rotation",
|
|
angle: "Angle",
|
|
straighten: "Redresser",
|
|
flip: "Miroir",
|
|
horizontal: "Horizontal",
|
|
vertical: "Vertical",
|
|
resetAllChanges: "Reinitialiser toutes les modifications",
|
|
submit: "Appliquer",
|
|
submitBatch: "Appliquer ({count} fichiers)",
|
|
progressLabel: "Application en cours",
|
|
},
|
|
convert: {
|
|
targetFormat: "Format cible",
|
|
sourceFormat: "Format source",
|
|
quality: "Qualite",
|
|
submit: "Convertir",
|
|
submitBatch: "Convertir ({count} fichiers)",
|
|
progressLabel: "Conversion en cours",
|
|
},
|
|
"optimize-for-web": {
|
|
outputFormat: "Format de sortie",
|
|
quality: "Qualite",
|
|
smallestFile: "Fichier le plus petit",
|
|
bestQuality: "Meilleure qualite",
|
|
maxDimensions: "Dimensions maximales",
|
|
maxWidth: "Largeur maximale",
|
|
maxHeight: "Hauteur maximale",
|
|
stripMetadata: "Supprimer les metadonnees",
|
|
sizeComparison: "Comparaison de taille",
|
|
optimized: "Optimise :",
|
|
smaller: "{percent}% plus petit",
|
|
larger: "{percent}% plus grand",
|
|
submit: "Traiter et telecharger",
|
|
submitBatch: "Traiter et telecharger ({count} fichiers)",
|
|
progressLabel: "Optimisation en cours",
|
|
},
|
|
"strip-metadata": {
|
|
currentMetadata: "Metadonnees actuelles",
|
|
readingMetadata: "Lecture des metadonnees...",
|
|
noMetadataFound: "Aucune metadonnee trouvee dans cette image.",
|
|
removeAllMetadata: "Supprimer toutes les metadonnees",
|
|
selectSpecific: "Ou selectionnez des metadonnees specifiques :",
|
|
stripExif: "Supprimer EXIF (info appareil, date, exposition)",
|
|
stripGps: "Supprimer GPS (donnees de localisation)",
|
|
stripIcc: "Supprimer ICC (profil colorimetrique)",
|
|
stripXmp: "Supprimer XMP (metadonnees extensibles)",
|
|
locationFound: "localisation trouvee",
|
|
locationWarning:
|
|
"Cette image contient votre localisation precise. Pensez a supprimer les donnees GPS avant de la partager.",
|
|
metadataSections: "{count} section de metadonnees trouvee",
|
|
metadataSectionsPlural: "{count} sections de metadonnees trouvees",
|
|
metadataRemoved: "Metadonnees supprimees : {size} KB",
|
|
submit: "Supprimer les metadonnees",
|
|
progressLabel: "Suppression des metadonnees",
|
|
},
|
|
"edit-metadata": {
|
|
readingMetadata: "Lecture des metadonnees...",
|
|
couldNotReadMetadata: "Impossible de lire les metadonnees - les champs seront vides.",
|
|
basicInfo: "Informations de base",
|
|
description: "Description",
|
|
artist: "Artiste",
|
|
copyright: "Copyright",
|
|
software: "Logiciel",
|
|
iptc: "IPTC",
|
|
title: "Titre",
|
|
headline: "Titre principal",
|
|
city: "Ville",
|
|
stateProvince: "Etat/Province",
|
|
country: "Pays",
|
|
dateAndTime: "Date et heure",
|
|
editDates: "Modifier les dates",
|
|
shiftAllDates: "Decaler toutes les dates",
|
|
dateModified: "Date de modification",
|
|
dateTaken: "Date de prise de vue",
|
|
shiftHint:
|
|
"Decalez tous les champs de date d'un decalage (utile pour les corrections de fuseau horaire)",
|
|
direction: "Direction",
|
|
forward: "+ En avant",
|
|
backward: "- En arriere",
|
|
hoursMinutes: "Heures:Minutes",
|
|
locationGps: "Localisation (GPS)",
|
|
locationDataFound: "Donnees de localisation trouvees",
|
|
noGpsData: "Aucune donnee GPS. Ajoutez des coordonnees ci-dessous.",
|
|
latitude: "Latitude",
|
|
longitude: "Longitude",
|
|
altitudeMeters: "Altitude (metres)",
|
|
removeAllGpsData: "Supprimer toutes les donnees GPS",
|
|
keywords: "Mots-cles",
|
|
addKeywordPlaceholder: "Ajoutez un mot-cle et appuyez sur Entree",
|
|
addToExisting: "Ajouter aux existants",
|
|
replaceAll: "Tout remplacer",
|
|
allMetadata: "Toutes les metadonnees",
|
|
templates: "Modeles",
|
|
templateNamePlaceholder: "Nom du modele",
|
|
uploadPrompt: "Importez une image pour modifier ses metadonnees.",
|
|
changes: "{count} modifications :",
|
|
modified: "{count} modifie(s)",
|
|
removed: "{count} supprime(s)",
|
|
gpsCleared: "GPS efface",
|
|
gpsAdded: "GPS ajoute",
|
|
datesShifted: "dates decalees",
|
|
submit: "Appliquer les metadonnees",
|
|
progressLabel: "Ecriture des metadonnees",
|
|
},
|
|
"bulk-rename": {
|
|
pattern: "Motif",
|
|
patternHint: "Variables : {{index}}, {{padded}}, {{original}}",
|
|
startIndex: "Index de depart",
|
|
preview: "Apercu",
|
|
andMore: "... et {count} de plus",
|
|
renaming: "Renommage en cours...",
|
|
submit: "Renommer {count} fichiers",
|
|
zipDownloaded: "ZIP telecharge avec succes",
|
|
},
|
|
"image-to-pdf": {
|
|
imageCount: "{count} image sera convertie en {mode}",
|
|
imageCountPlural: "{count} images seront converties en {mode}",
|
|
singlePdfMode: "un seul PDF, une image par page",
|
|
separatePdfMode: "des PDFs separes, un par image",
|
|
combineAllImages: "Combiner toutes les images en un PDF",
|
|
pageSize: "Taille de page",
|
|
orientation: "Orientation",
|
|
portrait: "Portrait",
|
|
landscape: "Paysage",
|
|
margin: "Marge",
|
|
targetSizeLabel: "Taille de fichier cible (optionnel)",
|
|
targetSizePlaceholder: "ex. 2",
|
|
targetSizeHint: "Laissez vide pour une qualite maximale",
|
|
targetSizeMet: "Objectif atteint",
|
|
targetSizeNotMet:
|
|
"Impossible d'atteindre l'objectif. Fichier compresse a la qualite minimale.",
|
|
targetSizeTooSmall: "L'objectif doit etre d'au moins 50KB",
|
|
jpegQualityLabel: "Qualite JPEG utilisee",
|
|
noImage: "Aucune image",
|
|
submitCollate: "Creer le PDF ({count} pages)",
|
|
submitSeparate: "Creer {count} PDFs",
|
|
downloadPdf: "Telecharger le PDF",
|
|
downloadZip: "Telecharger le ZIP",
|
|
progressLabel: "Creation du PDF",
|
|
uploadingImages: "Import des images...",
|
|
processingPages: "Traitement de {count} pages...",
|
|
},
|
|
"pdf-to-image": {
|
|
dropPdf: "Deposez un PDF ici ou cliquez pour selectionner",
|
|
readingPdf: "Lecture du PDF...",
|
|
pageCount: "{count} page",
|
|
pageCountPlural: "{count} pages",
|
|
outputFormat: "Format de sortie",
|
|
quality: "Qualite",
|
|
resolutionDpi: "Resolution (DPI)",
|
|
dpiScreen: "Ecran",
|
|
dpiStandard: "Standard",
|
|
dpiPrint: "Impression",
|
|
dpiHighQuality: "Haute qualite",
|
|
colorMode: "Mode couleur",
|
|
colorModeColor: "Couleur",
|
|
colorModeGrayscale: "Niveaux de gris",
|
|
colorModeBw: "N&B",
|
|
pages: "Pages",
|
|
allPages: "Toutes les pages",
|
|
pagesHint: "ex. 1-3, 5, 8-10 (le document contient {count} pages)",
|
|
converting: "Conversion en cours...",
|
|
submit: "Convertir {count} page",
|
|
submitPlural: "Convertir {count} pages",
|
|
downloadAllZip: "Tout telecharger (ZIP)",
|
|
},
|
|
favicon: {
|
|
uploadHint:
|
|
"Importez des images carrees (512x512 ou plus recommande) pour generer toutes les tailles de favicon et d'icones d'application.",
|
|
multipleHint: "Chacune des {count} images obtient son propre dossier dans le ZIP.",
|
|
generatedSizes: "Tailles generees (par image)",
|
|
plusManifest: "+ manifest.json + extrait HTML",
|
|
submit: "Generer les Favicons ({count} image)",
|
|
submitPlural: "Generer les Favicons ({count} images)",
|
|
downloadZip: "Telecharger le ZIP des Favicons",
|
|
progressLabel: "Generation des Favicons",
|
|
},
|
|
"adjust-colors": {
|
|
light: "Lumiere",
|
|
brightness: "Luminosite",
|
|
contrast: "Contraste",
|
|
exposure: "Exposition",
|
|
color: "Couleur",
|
|
saturation: "Saturation",
|
|
temperature: "Temperature",
|
|
temperatureHint: "froid / chaud",
|
|
tint: "Teinte",
|
|
tintHint: "vert / magenta",
|
|
hue: "Teinte chromatique",
|
|
detail: "Detail",
|
|
sharpness: "Nettete",
|
|
effects: "Effets",
|
|
none: "aucun",
|
|
grayscale: "niveaux de gris",
|
|
sepia: "sepia",
|
|
invert: "inverser",
|
|
colorChannels: "Canaux de couleur",
|
|
channelModified: "modifie",
|
|
red: "Rouge",
|
|
green: "Vert",
|
|
blue: "Bleu",
|
|
resetAll: "Tout reinitialiser",
|
|
submit: "Appliquer",
|
|
submitBatch: "Appliquer ({count} fichiers)",
|
|
progressLabel: "Ajustement des couleurs",
|
|
},
|
|
sharpening: {
|
|
method: "Methode",
|
|
adaptive: "Adaptatif",
|
|
unsharpMask: "Masque flou",
|
|
highPass: "Passe-haut",
|
|
presets: "Presets",
|
|
textureAmount: "Quantite de texture",
|
|
amount: "Quantite",
|
|
strength: "Intensite",
|
|
noiseReduction: "Reduction du bruit",
|
|
off: "desactive",
|
|
lightDenoise: "leger",
|
|
mediumDenoise: "moyen",
|
|
strongDenoise: "fort",
|
|
advancedControls: "Controles avances",
|
|
radius: "Rayon",
|
|
flatProtection: "Protection des aplats",
|
|
detailThreshold: "Seuil de detail",
|
|
haloLimitLight: "Limite de halo (clair)",
|
|
haloLimitDark: "Limite de halo (sombre)",
|
|
threshold: "Seuil",
|
|
kernelSize: "Taille du noyau",
|
|
submit: "Accentuer",
|
|
submitBatch: "Accentuer ({count} fichiers)",
|
|
progressLabel: "Accentuation en cours",
|
|
},
|
|
"replace-color": {
|
|
sourceColor: "Couleur source (a remplacer)",
|
|
targetColor: "Couleur cible (remplacement)",
|
|
makeTransparent: "Rendre transparent a la place",
|
|
tolerance: "Tolerance",
|
|
exactMatch: "Correspondance exacte",
|
|
wideRange: "Plage etendue",
|
|
submit: "Remplacer la couleur",
|
|
submitBatch: "Remplacer la couleur ({count} fichiers)",
|
|
progressLabel: "Remplacement de la couleur",
|
|
},
|
|
"color-blindness": {
|
|
simulationType: "Type de simulation",
|
|
redGreen: "Rouge-Vert",
|
|
blueYellow: "Bleu-Jaune",
|
|
monochromatic: "Monochromatique",
|
|
submit: "Simuler",
|
|
submitBatch: "Simuler ({count} fichiers)",
|
|
progressLabel: "Simulation du daltonisme",
|
|
},
|
|
"remove-background": {
|
|
subject: "Sujet",
|
|
people: "Personnes",
|
|
products: "Produits",
|
|
general: "General",
|
|
passportIdPhoto: "Photo de passeport / piece d'identite",
|
|
quality: "Qualite",
|
|
fast: "Rapide",
|
|
hd: "HD",
|
|
max: "Max",
|
|
ultra: "Ultra",
|
|
background: "Arriere-plan",
|
|
transparent: "Transparent",
|
|
bgColor: "Couleur",
|
|
gradient: "Degrade",
|
|
image: "Image",
|
|
gradientDirection: "Direction",
|
|
chooseBackgroundImage: "Choisir une image d'arriere-plan",
|
|
effectsSection: "Effets",
|
|
effectsActive: "actifs",
|
|
blurBackground: "Flouter l'arriere-plan",
|
|
intensity: "Intensite",
|
|
addShadow: "Ajouter une ombre",
|
|
opacity: "Opacite",
|
|
outputFormat: "Output Format",
|
|
edgeSmoothing: "Edge Smoothing",
|
|
edgeSmoothingOff: "Off",
|
|
edgeSmoothingLight: "Light",
|
|
edgeSmoothingMedium: "Medium",
|
|
edgeSmoothingStrong: "Strong",
|
|
colorDecontamination: "Color Decontamination",
|
|
rendering: "Rendu en cours...",
|
|
submit: "Supprimer l'arriere-plan",
|
|
submitBatch: "Supprimer l'arriere-plan ({count} fichiers)",
|
|
progressLabel: "Suppression de l'arriere-plan",
|
|
},
|
|
upscale: {
|
|
scaleFactor: "Facteur d'echelle",
|
|
quality: "Qualite",
|
|
enhanceFaces: "Ameliorer les visages",
|
|
noiseReduction: "Reduction du bruit",
|
|
noiseReductionHint:
|
|
"Lisse le grain et le bruit. Des valeurs plus elevees suppriment davantage de bruit mais peuvent adoucir les details.",
|
|
outputFormat: "Format de sortie",
|
|
submit: "Agrandir {scale}x",
|
|
submitBatch: "Agrandir {scale}x ({count} fichiers)",
|
|
progressLabel: "Agrandissement de l'image",
|
|
progressLabelBatch: "Agrandissement de {count} images",
|
|
},
|
|
"erase-object": {
|
|
brushSize: "Taille du pinceau",
|
|
fine: "Fin",
|
|
wide: "Large",
|
|
undo: "Annuler",
|
|
clear: "Effacer",
|
|
outputFormat: "Format de sortie",
|
|
quality: "Qualite",
|
|
paintHint:
|
|
"Peignez sur les objets que vous souhaitez supprimer. Utilisez Ctrl+Z pour annuler.",
|
|
submit: "Effacer l'objet",
|
|
submitBatch: "Tout effacer ({count})",
|
|
progressLabel: "Effacement de l'objet",
|
|
},
|
|
ocr: {
|
|
quality: "Qualite",
|
|
enhanceBeforeScanning: "Ameliorer avant le scan",
|
|
enhanceHint:
|
|
"Redresse, ameliore le contraste, supprime le bruit et agrandit automatiquement l'image avant le scan pour une meilleure precision.",
|
|
language: "Langue",
|
|
autoDetect: "Detection automatique",
|
|
extractedText: "Texte extrait",
|
|
noTextDetected: "Aucun texte detecte dans cette image",
|
|
characters: "{count} caracteres",
|
|
submit: "Extraire le texte",
|
|
submitBatch: "Extraire le texte ({count} fichiers)",
|
|
progressLabel: "Extraction du texte",
|
|
},
|
|
"blur-faces": {
|
|
blurRadius: "Rayon du flou",
|
|
blurLight: "Leger",
|
|
blurHeavy: "Fort",
|
|
detectionSensitivity: "Sensibilite de detection",
|
|
moreFaces: "Plus de visages",
|
|
fewerFaces: "Moins de visages",
|
|
submit: "Flouter les visages",
|
|
progressLabel: "Floutage des visages",
|
|
},
|
|
"enhance-faces": {
|
|
quality: "Qualite",
|
|
enhancementStrength: "Intensite de l'amelioration",
|
|
onlyCenterFace: "Visage central uniquement",
|
|
detectionSensitivity: "Sensibilite de detection",
|
|
submit: "Ameliorer les visages",
|
|
submitBatch: "Ameliorer les visages ({count} fichiers)",
|
|
progressLabel: "Amelioration des visages",
|
|
},
|
|
"smart-crop": {
|
|
subjectFocus: "Mise au point sur le sujet",
|
|
faceFocus: "Mise au point sur le visage",
|
|
autoTrim: "Rognage automatique",
|
|
customSize: "Taille personnalisee",
|
|
socialPresets: "Presets pour reseaux sociaux",
|
|
detectionStrategy: "Strategie de detection",
|
|
detectionStrategyHint:
|
|
"L'attention trouve la region visuellement la plus saillante. L'entropie trouve la zone avec le plus de details et d'informations.",
|
|
attention: "Attention",
|
|
entropy: "Entropie",
|
|
padding: "Marge interieure",
|
|
paddingHint: "Espace supplementaire autour de la zone de mise au point",
|
|
outputQuality: "Qualite de sortie",
|
|
outputQualityHint: "Pour les sorties JPEG et WebP. Le PNG est toujours sans perte.",
|
|
subjectDescription:
|
|
"Detecte la region la plus interessante par analyse de saillance et recadre a la taille souhaitee.",
|
|
framing: "Cadrage",
|
|
facePadding: "Marge autour du visage",
|
|
facePaddingHint: "Espace supplementaire autour des visages detectes",
|
|
fewerFalsePositives: "Moins de faux positifs",
|
|
faceDescription:
|
|
"Utilise la detection faciale AI pour garder les visages bien cadres. Se replie sur la mise au point sur le sujet si aucun visage n'est detecte.",
|
|
trimTolerance: "Tolerance",
|
|
trimDescription:
|
|
"A quel point un pixel de bordure peut differer de la couleur du bord et etre quand meme rogne. Plus eleve = plus agressif.",
|
|
padToSquare: "Remplir en carre",
|
|
targetSizePx: "Taille cible (px)",
|
|
padColor: "Couleur de remplissage",
|
|
trimHint:
|
|
'Supprime les bordures de couleur uniforme autour du sujet. Activez "Remplir en carre" pour des images pretes pour le e-commerce.',
|
|
submitSubject: "Recadrage intelligent",
|
|
submitFace: "Recadrage par visage",
|
|
submitTrim: "Rogner les bordures",
|
|
},
|
|
imageEnhancement: {
|
|
enhancementMode: "Mode d'amelioration",
|
|
auto: "Automatique",
|
|
portrait: "Portrait",
|
|
landscape: "Paysage",
|
|
lowLight: "Faible luminosite",
|
|
food: "Nourriture",
|
|
document: "Document",
|
|
intensity: "Intensite",
|
|
deepEnhance: "Amelioration profonde (AI)",
|
|
deepEnhanceDescription: "Supprime le bruit et les artefacts avec l'AI",
|
|
deepEnhanceRequires: "Necessite le pack Agrandissement et amelioration",
|
|
analyzingImage: "Analyse de l'image...",
|
|
detectedIssues: "Problemes detectes",
|
|
imageLooksGood: "L'image semble bonne. Ajustez avec le curseur d'intensite.",
|
|
issueUnderexposed: "Sous-exposition",
|
|
issueOverexposed: "Surexposition",
|
|
issueLowContrast: "Contraste plat",
|
|
issueColorCast: "Dominante de couleur",
|
|
issueDesaturated: "Desaturee",
|
|
issueSoftFocus: "Mise au point douce",
|
|
issueNoisy: "Bruitee",
|
|
submit: "Ameliorer",
|
|
submitDeep: "Amelioration profonde",
|
|
submitBatch: "Ameliorer ({count} fichiers)",
|
|
submitDeepBatch: "Amelioration profonde ({count} fichiers)",
|
|
progressLabel: "Amelioration de l'image",
|
|
progressLabelBatch: "Amelioration de {count} images",
|
|
},
|
|
"noise-removal": {
|
|
denoisingTier: "Niveau de debruitage",
|
|
quick: "Rapide",
|
|
balanced: "Equilibre",
|
|
quality: "Qualite",
|
|
maximum: "Maximum",
|
|
quickDesc: "Rapide et leger",
|
|
balancedDesc: "Bonne qualite, vitesse moderee",
|
|
qualityDesc: "Par AI, lent",
|
|
maximumDesc: "Meilleur modele AI, le plus lent",
|
|
strength: "Intensite",
|
|
subtle: "Subtil",
|
|
aggressive: "Agressif",
|
|
detailPreservation: "Preservation des details",
|
|
smooth: "Lisse",
|
|
sharp: "Net",
|
|
colorNoise: "Bruit de couleur",
|
|
heavy: "Intense",
|
|
outputFormat: "Format de sortie",
|
|
gifAiWarning:
|
|
"Le debruitage AI sur les fichiers GIF ne traite que la premiere image. Pour les GIFs animes, utilisez le niveau Rapide ou Equilibre.",
|
|
submit: "Supprimer le bruit",
|
|
submitBatch: "Supprimer le bruit ({count} fichiers)",
|
|
progressLabel: "Suppression du bruit",
|
|
progressLabelBatch: "Suppression du bruit de {count} images",
|
|
},
|
|
"red-eye-removal": {
|
|
sensitivity: "Sensibilite",
|
|
strict: "Stricte",
|
|
aggressive: "Aggressive",
|
|
correctionStrength: "Intensite de la correction",
|
|
subtle: "Subtil",
|
|
dark: "Sombre",
|
|
outputFormat: "Format de sortie",
|
|
quality: "Qualite",
|
|
submit: "Corriger les yeux rouges",
|
|
submitBatch: "Corriger les yeux rouges ({count} fichiers)",
|
|
progressLabel: "Correction des yeux rouges",
|
|
progressLabelBatch: "Correction des yeux rouges dans {count} images",
|
|
},
|
|
"restore-photo": {
|
|
scratchRemoval: "Suppression des rayures",
|
|
scratchRemovalDesc: "Detecte et repare les rayures, dechirures et taches",
|
|
faceEnhancement: "Amelioration des visages",
|
|
faceEnhancementDesc: "Restaure les visages degrades avec CodeFormer AI",
|
|
faceFidelity: "Fidelite du visage",
|
|
enhanced: "Ameliore",
|
|
faithful: "Fidele",
|
|
noiseReduction: "Reduction du bruit",
|
|
noiseReductionDesc: "Supprime le grain et le bruit des photos anciennes",
|
|
denoiseStrength: "Intensite du debruitage",
|
|
autoColorize: "Colorisation automatique",
|
|
autoColorizeDesc: "Ajoutez de la couleur aux photos N&B avec DDColor AI",
|
|
colorizeStrength: "Intensite de la colorisation",
|
|
vivid: "Vif",
|
|
submit: "Restaurer la photo",
|
|
submitBatch: "Restaurer les photos ({count})",
|
|
progressLabel: "Restauration de la photo",
|
|
progressLabelBatch: "Restauration de {count} photos",
|
|
},
|
|
"content-aware-resize": {
|
|
widthPx: "Largeur (px)",
|
|
heightPx: "Hauteur (px)",
|
|
resizeToSquare: "Redimensionner en carre",
|
|
protectFaces: "Proteger les visages",
|
|
protectFacesHint:
|
|
"Detecte et protege les zones de visage de la suppression de coutures par detection faciale",
|
|
smoothing: "Lissage",
|
|
edgeSensitivity: "Sensibilite des contours",
|
|
submit: "Redimensionner",
|
|
submitBatch: "Redimensionner ({count} fichiers)",
|
|
progressLabel: "Redimensionnement intelligent",
|
|
},
|
|
"ai-canvas-expand": {
|
|
quality: "Qualite",
|
|
fast: "Rapide",
|
|
balanced: "Equilibre",
|
|
highQuality: "Haute qualite",
|
|
fastDesc: "Apercu rapide, moins de passes AI",
|
|
balancedDesc: "Bonne qualite, vitesse moderee",
|
|
highQualityDesc: "Meilleurs resultats, plus lent",
|
|
extendToAspectRatio: "Etendre au ratio d'aspect",
|
|
extendByPixels: "Etendre de (pixels)",
|
|
top: "Haut",
|
|
right: "Droite",
|
|
bottom: "Bas",
|
|
left: "Gauche",
|
|
newSize: "Nouvelle taille : {width} x {height}",
|
|
submit: "Etendre le canevas",
|
|
submitBatch: "Etendre ({count} fichiers)",
|
|
progressLabel: "Extension du canevas",
|
|
},
|
|
colorize: {
|
|
aiModel: "Modele AI",
|
|
fast: "Rapide",
|
|
fastDesc: "Resultats rapides",
|
|
balanced: "Equilibre",
|
|
balancedDesc: "Le meilleur disponible",
|
|
best: "Optimal",
|
|
bestDesc: "La plus haute qualite",
|
|
colorIntensity: "Intensite des couleurs",
|
|
grayscaleLabel: "Niveaux de gris",
|
|
subtleLabel: "Subtil",
|
|
naturalLabel: "Naturel",
|
|
vividLabel: "Vif",
|
|
intensityHint: "Des valeurs plus basses produisent des couleurs plus douces, style vintage.",
|
|
strength: "Intensite de la colorisation",
|
|
submit: "Coloriser",
|
|
submitBatch: "Coloriser ({count} fichiers)",
|
|
progressLabel: "Colorisation en cours",
|
|
progressLabelBatch: "Colorisation de {count} images",
|
|
},
|
|
"passport-photo": {
|
|
country: "Pays",
|
|
searchCountries: "Rechercher des pays...",
|
|
noCountriesFound: "Aucun pays trouve",
|
|
customDimensions: "Dimensions personnalisees",
|
|
documentType: "Type de document",
|
|
dimensionsMm: "Dimensions (mm)",
|
|
dpi: "DPI",
|
|
pixelsPerInch: "pixels par pouce",
|
|
backgroundColor: "Couleur de fond",
|
|
maxFileSize: "Taille de fichier maximale",
|
|
noLimit: "Sans limite",
|
|
customKb: "Personnalise KB...",
|
|
uploadPortrait: "Importez une photo portrait",
|
|
uploadHint:
|
|
"Deposez ou importez une image dans le panneau de gauche pour previsualiser votre photo d'identite",
|
|
analyzingPhoto: "Analyse de la photo",
|
|
detectingLandmarks: "Detection des reperes faciaux et suppression de l'arriere-plan...",
|
|
generatePassportPhoto: "Generer la photo d'identite",
|
|
generating: "Generation en cours...",
|
|
downloadPhoto: "Telecharger la photo",
|
|
faceCentered: "Visage centre",
|
|
headLevel: "Tete droite",
|
|
lookingStraight: "Regard face camera",
|
|
faceSize: "Taille du visage",
|
|
whatYouSee: "Ce que vous voyez est ce que vous telechargez",
|
|
dragToAdjust: "Glissez pour ajuster",
|
|
scrollToZoom: "Faites defiler pour zoomer",
|
|
photoGenerated: "Photo generee. Telechargez-la depuis le panneau de gauche.",
|
|
},
|
|
"transparency-fixer": {
|
|
description:
|
|
"Importez un PNG avec un faux fond transparent et nous le corrigeons en un clic.",
|
|
removeWatermark: "Supprimer le filigrane",
|
|
removeWatermarkHelp: "Detecte et supprime les filigranes semi-transparents",
|
|
requiresEraser: "Necessite le pack Effaceur d'objets",
|
|
advanced: "Avance",
|
|
defringe: "Supprimer les franges",
|
|
outputFormat: "Format de sortie",
|
|
submit: "Corriger la transparence",
|
|
submitBatch: "Corriger la transparence ({count} fichiers)",
|
|
progressLabel: "Correction de la transparence",
|
|
},
|
|
"watermark-text": {
|
|
watermarkText: "Texte du filigrane",
|
|
fontSize: "Taille de police",
|
|
color: "Couleur",
|
|
opacity: "Opacite",
|
|
position: "Position",
|
|
rotation: "Rotation",
|
|
center: "Centre",
|
|
topLeft: "Haut gauche",
|
|
topRight: "Haut droite",
|
|
bottomLeft: "Bas gauche",
|
|
bottomRight: "Bas droite",
|
|
tiled: "Mosaique",
|
|
submit: "Ajouter le filigrane",
|
|
submitBatch: "Ajouter le filigrane ({count} fichiers)",
|
|
progressLabel: "Ajout du filigrane",
|
|
},
|
|
"watermark-image": {
|
|
uploadWatermark: "Importer l'image du filigrane",
|
|
position: "Position",
|
|
opacity: "Opacite",
|
|
scale: "Echelle",
|
|
submit: "Appliquer le filigrane",
|
|
submitBatch: "Appliquer le filigrane ({count} fichiers)",
|
|
},
|
|
"text-overlay": {
|
|
text: "Texte",
|
|
fontSize: "Taille de police",
|
|
color: "Couleur",
|
|
position: "Position",
|
|
top: "Haut",
|
|
center: "Centre",
|
|
bottom: "Bas",
|
|
backgroundBox: "Boite de fond",
|
|
backgroundColor: "Couleur de fond",
|
|
shadow: "Ombre",
|
|
submit: "Ajouter le texte",
|
|
submitBatch: "Ajouter le texte ({count} fichiers)",
|
|
progressLabel: "Ajout du texte en superposition",
|
|
download: "Download",
|
|
defaultText: "Your Text Here",
|
|
},
|
|
compose: {
|
|
uploadOverlay: "Importer l'image de superposition",
|
|
xPosition: "Position X",
|
|
yPosition: "Position Y",
|
|
opacity: "Opacite",
|
|
blendMode: "Mode de fusion",
|
|
submit: "Composer",
|
|
},
|
|
"meme-generator": {
|
|
selectTemplate:
|
|
"Selectionnez un modele dans la galerie ou importez votre propre image pour commencer.",
|
|
chooseLayout: "Choisissez une disposition de texte pour votre image personnalisee.",
|
|
textContent: "Contenu du texte",
|
|
textStyle: "Style du texte",
|
|
font: "Police",
|
|
fontSize: "Taille de police",
|
|
textColor: "Couleur du texte",
|
|
strokeColor: "Couleur du contour",
|
|
allCaps: "MAJUSCULES",
|
|
generate: "Generer le Meme",
|
|
generating: "Generation en cours...",
|
|
downloadMeme: "Telecharger le Meme",
|
|
backToGallery: "Retour a la galerie",
|
|
},
|
|
info: {
|
|
loadingInfo: "Chargement des informations...",
|
|
filename: "Nom du fichier",
|
|
fileSize: "Taille du fichier",
|
|
dimensions: "Dimensions",
|
|
format: "Format",
|
|
channels: "Canaux",
|
|
colorSpace: "Espace colorimetrique",
|
|
density: "Densite",
|
|
bitDepth: "Profondeur de bits",
|
|
progressive: "Progressif",
|
|
pages: "Pages",
|
|
hasAlpha: "Canal alpha",
|
|
hasProfile: "Profil",
|
|
hasExif: "EXIF",
|
|
hasIcc: "ICC",
|
|
hasXmp: "XMP",
|
|
readInfo: "Read Info",
|
|
reading: "Reading...",
|
|
channelStats: "Channel Stats",
|
|
yes: "Yes",
|
|
no: "No",
|
|
na: "N/A",
|
|
failedToRead: "Failed to read info",
|
|
},
|
|
compare: {
|
|
uploadSecondImage: "Importer une seconde image",
|
|
similarity: "Similarite : {percent}%",
|
|
submit: "Comparer",
|
|
downloadDiff: "Telecharger la difference",
|
|
},
|
|
"find-duplicates": {
|
|
preset: "Preset",
|
|
exact: "Exact",
|
|
similar: "Similaire",
|
|
loose: "Large",
|
|
exactDesc: "Copies identiques au pixel pres, meme image dans differents formats.",
|
|
similarDesc: "Copies redimensionnees, recompressees ou legerement modifiees.",
|
|
looseDesc: "Images visuellement liees, recadrages legers, expositions differentes.",
|
|
threshold: "Seuil",
|
|
submit: "Rechercher les doublons",
|
|
scanning: "Analyse en cours...",
|
|
},
|
|
"color-palette": {
|
|
submit: "Extraire la palette",
|
|
extracting: "Extraction en cours...",
|
|
dominantColors: "Couleurs dominantes",
|
|
clickToCopy: "Cliquez pour copier",
|
|
},
|
|
"qr-generate": {
|
|
contentType: "Type de contenu",
|
|
url: "URL",
|
|
text: "Texte",
|
|
wifi: "WiFi",
|
|
vcard: "vCard",
|
|
email: "Email",
|
|
phone: "Telephone",
|
|
sms: "SMS",
|
|
styling: "Style",
|
|
dotStyle: "Style des points",
|
|
cornerSquareStyle: "Style du carre d'angle",
|
|
cornerDotStyle: "Style du point d'angle",
|
|
foregroundColor: "Couleur de premier plan",
|
|
bgColor: "Couleur de fond",
|
|
logo: "Logo",
|
|
downloadFormat: "Format de telechargement",
|
|
submit: "Generer le code QR",
|
|
download: "Telecharger le code QR",
|
|
},
|
|
"html-to-image": {
|
|
modeUrl: "URL",
|
|
modeHtml: "HTML File",
|
|
htmlFile: "HTML File",
|
|
url: "URL",
|
|
urlPlaceholder: "https://snapotter.com",
|
|
format: "Output Format",
|
|
quality: "Quality",
|
|
devicePreset: "Device",
|
|
viewportWidth: "Width",
|
|
viewportHeight: "Height",
|
|
fullPage: "Full Page",
|
|
submit: "Capture",
|
|
download: "Download Screenshot",
|
|
capturing: "Capturing webpage...",
|
|
errorTimeout: "Page took too long to load",
|
|
errorBlocked: "This URL cannot be captured",
|
|
errorUnavailable: "Screenshot service is not available",
|
|
errorFailed: "Failed to capture the page",
|
|
placeholder: "Enter a URL and click Capture",
|
|
presets: {
|
|
desktop: "Desktop",
|
|
tablet: "Tablet",
|
|
mobile: "Mobile",
|
|
custom: "Custom",
|
|
},
|
|
},
|
|
"barcode-read": {
|
|
submit: "Scanner les codes-barres",
|
|
submitBatch: "Scanner ({count} fichiers)",
|
|
scanning: "Analyse en cours...",
|
|
noBarcodesFound: "Aucun code-barres trouve",
|
|
barcodesFound: "{count} code-barres trouve",
|
|
barcodesFoundPlural: "{count} codes-barres trouves",
|
|
},
|
|
collage: {
|
|
template: "Modele",
|
|
aspectRatio: "Ratio d'aspect",
|
|
gap: "Espacement",
|
|
cornerRadius: "Rayon d'angle",
|
|
backgroundColor: "Couleur de fond",
|
|
outputFormat: "Format de sortie",
|
|
quality: "Qualite",
|
|
submit: "Creer le collage",
|
|
downloadCollage: "Telecharger le collage",
|
|
},
|
|
stitch: {
|
|
direction: "Direction",
|
|
horizontal: "Horizontal",
|
|
vertical: "Vertical",
|
|
grid: "Grille",
|
|
gridColumns: "Colonnes de grille",
|
|
resizeMode: "Mode de redimensionnement",
|
|
fit: "Ajuster",
|
|
original: "Original",
|
|
stretchMode: "Etirer",
|
|
cropMode: "Recadrer",
|
|
alignment: "Alignement",
|
|
start: "Debut",
|
|
center: "Centre",
|
|
end: "Fin",
|
|
gap: "Espacement",
|
|
border: "Bordure",
|
|
cornerRadius: "Rayon d'angle",
|
|
backgroundColor: "Couleur de fond",
|
|
outputFormat: "Format de sortie",
|
|
quality: "Qualite",
|
|
submit: "Assembler les images",
|
|
},
|
|
split: {
|
|
modeGrid: "Grille",
|
|
modeTileSize: "Taille des tuiles",
|
|
presets: "Presets",
|
|
columns: "Colonnes",
|
|
rows: "Lignes",
|
|
tileWidth: "Largeur de tuile",
|
|
tileHeight: "Hauteur de tuile",
|
|
outputFormat: "Format de sortie",
|
|
quality: "Qualite",
|
|
submit: "Decouper l'image",
|
|
downloadAll: "Tout telecharger (ZIP)",
|
|
},
|
|
border: {
|
|
presets: "Presets",
|
|
borderWidth: "Largeur de bordure",
|
|
borderColor: "Couleur de bordure",
|
|
padding: "Marge interieure",
|
|
paddingColor: "Couleur de marge",
|
|
cornerRadius: "Rayon d'angle",
|
|
shadow: "Ombre",
|
|
shadowBlur: "Flou de l'ombre",
|
|
shadowOffsetX: "Decalage X de l'ombre",
|
|
shadowOffsetY: "Decalage Y de l'ombre",
|
|
shadowColor: "Couleur de l'ombre",
|
|
shadowOpacity: "Opacite de l'ombre",
|
|
submit: "Ajouter la bordure",
|
|
submitBatch: "Ajouter la bordure ({count} fichiers)",
|
|
progressLabel: "Ajout de la bordure",
|
|
},
|
|
beautify: {
|
|
preset: "Preset",
|
|
backgroundType: "Type de fond",
|
|
solidColor: "Couleur unie",
|
|
linearGradient: "Degrade lineaire",
|
|
radialGradient: "Degrade radial",
|
|
customImage: "Image personnalisee",
|
|
gradientAngle: "Angle du degrade",
|
|
padding: "Marge interieure",
|
|
borderRadius: "Rayon de bordure",
|
|
shadowPreset: "Preset d'ombre",
|
|
deviceFrame: "Cadre d'appareil",
|
|
submit: "Embellir",
|
|
submitBatch: "Embellir ({count} fichiers)",
|
|
progressLabel: "Embellissement de la capture d'ecran",
|
|
},
|
|
"svg-to-raster": {
|
|
outputFormat: "Format de sortie",
|
|
sizing: "Dimensionnement",
|
|
scaleMode: "Echelle",
|
|
customMode: "Personnalise",
|
|
scalePresets: "Presets d'echelle",
|
|
dpiPresets: "Presets de DPI",
|
|
customWidth: "Largeur (px)",
|
|
customHeight: "Hauteur (px)",
|
|
background: "Arriere-plan",
|
|
bgTransparent: "Transparent",
|
|
bgColor: "Couleur",
|
|
quality: "Qualite",
|
|
submit: "Convertir le SVG",
|
|
submitBatch: "Convertir ({count} fichiers)",
|
|
progressLabel: "Conversion du SVG",
|
|
},
|
|
vectorize: {
|
|
preset: "Preset",
|
|
logo: "Logo",
|
|
illustration: "Illustration",
|
|
photo: "Photo",
|
|
sketch: "Croquis",
|
|
customPreset: "Personnalise",
|
|
colorMode: "Mode couleur",
|
|
bw: "N&B",
|
|
colorModeColor: "Couleur",
|
|
threshold: "Seuil",
|
|
colorPrecision: "Precision des couleurs",
|
|
layerDifference: "Difference de calque",
|
|
filterSpeckle: "Filtrer les taches",
|
|
pathMode: "Mode de trace",
|
|
cornerThreshold: "Seuil d'angle",
|
|
invertColors: "Inverser les couleurs",
|
|
submit: "Vectoriser",
|
|
submitBatch: "Vectoriser ({count} fichiers)",
|
|
progressLabel: "Vectorisation en cours",
|
|
},
|
|
"gif-tools": {
|
|
mode: "Mode",
|
|
resize: "Redimensionner",
|
|
optimize: "Optimiser",
|
|
speed: "Vitesse",
|
|
reverse: "Inverser",
|
|
extract: "Extraire",
|
|
rotateMode: "Rotation",
|
|
pixel: "Pixel",
|
|
percentage: "Pourcentage",
|
|
colors: "Couleurs",
|
|
dither: "Tramage",
|
|
effort: "Effort",
|
|
speedFactor: "Facteur de vitesse",
|
|
loopControl: "Controle de boucle",
|
|
infinite: "Infini",
|
|
once: "Une fois",
|
|
customLoop: "Personnalise",
|
|
loopCount: "Nombre de boucles",
|
|
extractSingle: "Unique",
|
|
extractRange: "Plage",
|
|
extractAll: "Tout",
|
|
frameNumber: "Numero d'image",
|
|
frameStart: "Image de debut",
|
|
frameEnd: "Image de fin",
|
|
extractFormat: "Format",
|
|
submit: "Traiter le GIF",
|
|
submitBatch: "Traiter ({count} fichiers)",
|
|
progressLabel: "Traitement du GIF",
|
|
},
|
|
"image-to-base64": {
|
|
outputFormat: "Format de sortie",
|
|
keepOriginal: "Conserver l'original",
|
|
quality: "Qualite",
|
|
maxWidth: "Largeur maximale",
|
|
maxHeight: "Hauteur maximale",
|
|
submit: "Convertir en Base64",
|
|
submitBatch: "Convertir ({count} fichiers)",
|
|
copyBase64: "Copier Base64",
|
|
copyDataUri: "Copier Data URI",
|
|
copyImgTag: "Copier la balise <img>",
|
|
copyCssUrl: "Copier CSS url()",
|
|
},
|
|
"enhance-faces-standalone": {
|
|
model: "Modele",
|
|
fast: "Rapide",
|
|
balanced: "Equilibre",
|
|
best: "Optimal",
|
|
},
|
|
},
|
|
urlImport: {
|
|
title: "Importer depuis des URLs",
|
|
placeholder: "Collez des URLs d'images, une par ligne...",
|
|
importButton: "Importer les URLs",
|
|
addButton: "Ajouter {count} fichiers",
|
|
adding: "Ajout en cours...",
|
|
retryButton: "Reessayer",
|
|
cancelButton: "Annuler",
|
|
readyCount: "{count} prets",
|
|
failedStatus: "Echec",
|
|
},
|
|
comparison: {
|
|
original: "Original",
|
|
processed: "Traite",
|
|
before: "Avant",
|
|
after: "Apres",
|
|
savings: "Economie",
|
|
},
|
|
toolPage: {
|
|
emptyPrompt: "Deposez ou importez une image pour commencer",
|
|
filesCount: "Fichiers ({count})",
|
|
addMore: "+ Ajouter",
|
|
clearAll: "Tout effacer",
|
|
acceptDescription: "Fichiers {exts} uniquement",
|
|
notFound: "Outil introuvable",
|
|
configureAndGenerate: "Configurez les parametres et generez.",
|
|
processingFailed: "Echec du traitement pour ce fichier",
|
|
conversionComplete: "Conversion terminee",
|
|
cannotPreviewDownload:
|
|
"Les fichiers {type} ne peuvent pas etre previsualises dans le navigateur. Utilisez le bouton de telechargement pour enregistrer votre fichier.",
|
|
generatingPreview: "Generation de l'apercu...",
|
|
cannotPreviewWillProcess:
|
|
"Les fichiers {ext} ne peuvent pas etre previsualises dans le navigateur. L'outil traitera ce fichier normalement.",
|
|
previousImage: "Image precedente",
|
|
nextImage: "Image suivante",
|
|
imageCounter: "{current} / {total}",
|
|
settingsLabel: "Parametres",
|
|
downloadAllZip: "Tout telecharger (ZIP)",
|
|
hideSettings: "Masquer les parametres",
|
|
imageArea: "Zone d'image",
|
|
},
|
|
homePage: {
|
|
generatingPreview: "Generation de l'apercu...",
|
|
loadingPreview: "Chargement de l'apercu...",
|
|
changeFile: "Changer de fichier",
|
|
quickActions: "Actions rapides",
|
|
allTools: "Tous les outils",
|
|
},
|
|
fullscreenGrid: {
|
|
searchPlaceholder: "Rechercher des outils...",
|
|
hideDetails: "Masquer les details",
|
|
showDetails: "Afficher les details",
|
|
switchToSidebar: "Passer a la vue barre laterale",
|
|
sidebarButton: "Barre laterale",
|
|
noToolsFound: "Aucun outil trouve",
|
|
tryDifferent: "Essayez un autre terme de recherche",
|
|
},
|
|
editor: {
|
|
menu: {
|
|
file: {
|
|
label: "Fichier",
|
|
new: "Nouveau",
|
|
open: "Ouvrir",
|
|
save: "Enregistrer",
|
|
exportAs: "Exporter sous...",
|
|
quickExportPng: "Export rapide en PNG",
|
|
close: "Fermer",
|
|
},
|
|
edit: {
|
|
label: "Edition",
|
|
undo: "Annuler",
|
|
redo: "Retablir",
|
|
cut: "Couper",
|
|
copy: "Copier",
|
|
copyMerged: "Copier avec fusion",
|
|
paste: "Coller",
|
|
pasteInPlace: "Coller sur place",
|
|
delete: "Supprimer",
|
|
freeTransform: "Transformation libre",
|
|
transform: {
|
|
label: "Transformation",
|
|
scale: "Echelle",
|
|
rotate: "Rotation",
|
|
skew: "Inclinaison",
|
|
flipHorizontal: "Miroir horizontal",
|
|
flipVertical: "Miroir vertical",
|
|
},
|
|
},
|
|
image: {
|
|
label: "Image",
|
|
imageSize: "Taille de l'image...",
|
|
canvasSize: "Taille du canevas...",
|
|
rotation: {
|
|
label: "Rotation de l'image",
|
|
cw90: "90 sens horaire",
|
|
ccw90: "90 sens antihoraire",
|
|
r180: "180",
|
|
flipHorizontal: "Miroir horizontal",
|
|
flipVertical: "Miroir vertical",
|
|
},
|
|
trim: "Rogner",
|
|
adjustments: {
|
|
label: "Reglages",
|
|
brightnessContrast: "Luminosite/Contraste",
|
|
hueSaturation: "Teinte/Saturation",
|
|
colorBalance: "Balance des couleurs",
|
|
levels: "Niveaux",
|
|
curves: "Courbes",
|
|
},
|
|
},
|
|
layer: {
|
|
label: "Calque",
|
|
newLayer: "Nouveau calque",
|
|
duplicateLayer: "Dupliquer le calque",
|
|
deleteLayer: "Supprimer le calque",
|
|
arrange: {
|
|
label: "Organiser",
|
|
bringToFront: "Mettre au premier plan",
|
|
bringForward: "Avancer",
|
|
sendBackward: "Reculer",
|
|
sendToBack: "Mettre en arriere-plan",
|
|
},
|
|
mergeDown: "Fusionner vers le bas",
|
|
flattenImage: "Aplatir l'image",
|
|
},
|
|
select: {
|
|
label: "Selection",
|
|
all: "Tout",
|
|
deselect: "Deselectionner",
|
|
inverse: "Inverser",
|
|
colorRange: "Plage de couleurs...",
|
|
},
|
|
filter: {
|
|
label: "Filtre",
|
|
blur: {
|
|
label: "Flou",
|
|
gaussian: "Flou gaussien",
|
|
motion: "Flou de mouvement",
|
|
radial: "Flou radial",
|
|
surface: "Flou de surface",
|
|
},
|
|
sharpen: {
|
|
label: "Nettete",
|
|
sharpen: "Nettete",
|
|
unsharpMask: "Masque flou",
|
|
},
|
|
noise: {
|
|
label: "Bruit",
|
|
addNoise: "Ajouter du bruit",
|
|
reduceNoise: "Reduire le bruit",
|
|
},
|
|
pixelate: {
|
|
label: "Pixelisation",
|
|
pixelate: "Pixeliser",
|
|
mosaic: "Mosaique",
|
|
},
|
|
stylize: {
|
|
label: "Styliser",
|
|
emboss: "Relief",
|
|
solarize: "Solariser",
|
|
posterize: "Posteriser",
|
|
},
|
|
grayscale: "Niveaux de gris",
|
|
sepia: "Sepia",
|
|
invert: "Inverser",
|
|
},
|
|
view: {
|
|
label: "Affichage",
|
|
zoomIn: "Zoom avant",
|
|
zoomOut: "Zoom arriere",
|
|
fitOnScreen: "Ajuster a l'ecran",
|
|
actualPixels: "Pixels reels",
|
|
rulers: "Regles",
|
|
grid: "Grille",
|
|
guides: "Reperes",
|
|
snap: "Magnetisme",
|
|
panels: "Panneaux",
|
|
},
|
|
},
|
|
menuBar: {
|
|
backTitle: "Retour a SnapOtter",
|
|
},
|
|
welcome: {
|
|
ariaLabel: "Zone de depot d'image",
|
|
heading: "Editeur d'images",
|
|
dropDescription: "Deposez une image ici pour commencer",
|
|
openImageButton: "Ouvrir une image",
|
|
newDocumentButton: "Nouveau document",
|
|
pasteHint: "Ou collez depuis le presse-papiers (Ctrl+V)",
|
|
},
|
|
mobile: {
|
|
heading: "Bureau recommande",
|
|
description:
|
|
"L'editeur d'images fonctionne mieux sur les ecrans de bureau. Veuillez passer a un appareil avec un ecran plus grand pour profiter pleinement de l'experience d'edition.",
|
|
},
|
|
errors: {
|
|
serverDecodeFailed: "Echec du decodage serveur",
|
|
},
|
|
shapes: {
|
|
shape: "Shape",
|
|
fill: "Fill",
|
|
stroke: "Stroke",
|
|
strokeWidth: "Width",
|
|
cornerRadius: "Radius",
|
|
sides: "Sides",
|
|
points: "Points",
|
|
dashStyle: "Dash",
|
|
solid: "Solid",
|
|
dashed: "Dashed",
|
|
dotted: "Dotted",
|
|
none: "None",
|
|
opacity: "Opacity",
|
|
rectangle: "Rectangle",
|
|
ellipse: "Ellipse",
|
|
line: "Line",
|
|
arrow: "Arrow",
|
|
polygon: "Polygon",
|
|
star: "Star",
|
|
},
|
|
},
|
|
settings: {
|
|
heading: "Parametres",
|
|
nav: {
|
|
general: "General",
|
|
systemSettings: "Parametres systeme",
|
|
security: "Securite",
|
|
people: "Personnes",
|
|
teams: "Equipes",
|
|
roles: "Roles",
|
|
auditLog: "Journal d'audit",
|
|
apiKeys: "Cles API",
|
|
aiFeatures: "Fonctionnalites AI",
|
|
tools: "Outils",
|
|
productAnalytics: "Analytique produit",
|
|
about: "A propos",
|
|
},
|
|
general: {
|
|
heading: "General",
|
|
description: "Preferences utilisateur et parametres d'affichage.",
|
|
loading: "Chargement...",
|
|
logOut: "Se deconnecter",
|
|
defaultToolViewLabel: "Vue par defaut des outils",
|
|
defaultToolViewDescription: "Comment les outils sont affiches sur la page d'accueil",
|
|
sidebarOption: "Barre laterale",
|
|
fullscreenGridOption: "Grille plein ecran",
|
|
appVersionLabel: "Version de l'application",
|
|
appVersionDescription: "Version actuelle de SnapOtter",
|
|
saveButton: "Enregistrer les parametres",
|
|
saveSuccess: "Parametres enregistres.",
|
|
saveFailed: "Echec de l'enregistrement des parametres.",
|
|
},
|
|
system: {
|
|
heading: "Parametres systeme",
|
|
description: "Configuration cote serveur et limites.",
|
|
fileUploadLimitLabel: "Limite d'import de fichier (MB)",
|
|
fileUploadLimitDescription: "Taille maximale de fichier par import",
|
|
defaultThemeLabel: "Theme par defaut",
|
|
defaultThemeDescription: "Theme applique pour les nouvelles sessions",
|
|
lightOption: "Clair",
|
|
darkOption: "Sombre",
|
|
systemOption: "Systeme",
|
|
languageLabel: "Langue",
|
|
languageDescription: "Langue de l'interface",
|
|
loginAttemptLimitLabel: "Limite de tentatives de connexion",
|
|
loginAttemptLimitDescription:
|
|
"Nombre maximal de tentatives de connexion echouees par minute avant verrouillage",
|
|
fileManagementHeading: "Gestion des fichiers",
|
|
maxFileAgeLabel: "Age maximal des fichiers (heures)",
|
|
maxFileAgeDescription:
|
|
"Duree de conservation des fichiers traites avant nettoyage automatique",
|
|
startupCleanupLabel: "Nettoyage au demarrage",
|
|
startupCleanupDescription: "Nettoie les anciens fichiers temporaires au demarrage du serveur",
|
|
saveButton: "Enregistrer les parametres",
|
|
saveSuccess: "Parametres enregistres.",
|
|
saveFailed: "Echec de l'enregistrement des parametres.",
|
|
limitsAndResources: "Limites et ressources",
|
|
maxFileSize: "Taille de fichier maximale",
|
|
maxBatchSize: "Taille de lot maximale",
|
|
concurrentJobs: "Taches simultanees",
|
|
workerThreads: "Fils d'execution",
|
|
maxPipelineSteps: "Etapes Pipeline maximales",
|
|
processingTimeout: "Delai de traitement",
|
|
rateLimitPerMin: "Limite de requetes (req/min)",
|
|
unlimited: "Illimite",
|
|
auto: "Automatique",
|
|
envOverride: "Defini par variable d'environnement",
|
|
maxCanvasPixels: "Pixels de canevas maximaux",
|
|
maxSvgSize: "Taille SVG maximale",
|
|
maxSplitGrid: "Grille de decoupage maximale",
|
|
maxPdfPages: "Pages PDF maximales",
|
|
sessionDuration: "Duree de la session",
|
|
},
|
|
security: {
|
|
heading: "Securite",
|
|
description: "Parametres de mot de passe et d'authentification.",
|
|
changePasswordHeading: "Changer le mot de passe",
|
|
currentPasswordPlaceholder: "Mot de passe actuel",
|
|
newPasswordPlaceholder: "Nouveau mot de passe",
|
|
confirmPasswordPlaceholder: "Confirmer le nouveau mot de passe",
|
|
passwordsMismatch: "Les mots de passe ne correspondent pas",
|
|
passwordTooShort: "Le mot de passe doit contenir au moins 4 caracteres",
|
|
changeSuccess: "Mot de passe modifie avec succes",
|
|
changeFailed: "Echec de la modification du mot de passe",
|
|
currentPasswordIncorrect: "Le mot de passe actuel est incorrect",
|
|
changePasswordButton: "Changer le mot de passe",
|
|
loginAttemptLimitNote:
|
|
"Les limites de tentatives de connexion peuvent etre configurees dans les Parametres systeme.",
|
|
},
|
|
people: {
|
|
heading: "Personnes",
|
|
description: "Gerez les membres de l'espace de travail et leurs permissions",
|
|
userCount: "{count} utilisateur",
|
|
userCountPlural: "{count} utilisateurs",
|
|
searchPlaceholder: "Rechercher des membres...",
|
|
addMembersButton: "Ajouter des membres",
|
|
newMemberHeading: "Nouveau membre",
|
|
usernamePlaceholder: "Nom d'utilisateur",
|
|
passwordPlaceholder: "Mot de passe",
|
|
roleUserOption: "Utilisateur",
|
|
roleEditorOption: "Editeur",
|
|
roleAdminOption: "Admin",
|
|
roleUserDescription: "Acces basique aux outils",
|
|
roleEditorDescription: "Tous les fichiers et pipelines",
|
|
roleAdminDescription: "Acces complet",
|
|
noDescription: "Aucune description",
|
|
defaultTeamOption: "Par defaut",
|
|
createButton: "Creer",
|
|
cancelButton: "Annuler",
|
|
createSuccess: "Utilisateur cree avec succes",
|
|
createFailed: "Echec de la creation de l'utilisateur",
|
|
userLimitReached: "Limite d'utilisateurs atteinte ({max} maximum)",
|
|
deleteConfirm: 'Supprimer l\'utilisateur "{username}" ? Cette action est irreversible.',
|
|
deleteSuccess: 'Utilisateur "{username}" supprime',
|
|
deleteFailed: "Echec de la suppression de l'utilisateur",
|
|
editHeading: "Modifier {username}",
|
|
updateSuccess: "Utilisateur mis a jour",
|
|
updateFailed: "Echec de la mise a jour de l'utilisateur",
|
|
cannotRemoveOwnAdmin: "Vous ne pouvez pas supprimer votre propre role administrateur",
|
|
resetPasswordHeading: "Reinitialiser le mot de passe de {username}",
|
|
newPasswordLabel: "Nouveau mot de passe (min. 8 caracteres)",
|
|
resetPasswordButton: "Reinitialiser le mot de passe",
|
|
resetPasswordWarning: "Cela invalidera toutes les sessions et cles API de cet utilisateur.",
|
|
resetSuccess: "Mot de passe reinitialise avec succes",
|
|
resetFailed: "Echec de la reinitialisation du mot de passe",
|
|
tableHeaderUser: "Utilisateur",
|
|
tableHeaderRole: "Role",
|
|
tableHeaderTeam: "Equipe",
|
|
noSearchResults: "Aucun membre ne correspond a votre recherche.",
|
|
noUsersFound: "Aucun utilisateur trouve.",
|
|
authBadgeLocalOidc: "Local + OIDC",
|
|
authBadgeOidc: "OIDC",
|
|
editRoleTeamAction: "Modifier le role / l'equipe",
|
|
resetPasswordAction: "Reinitialiser le mot de passe",
|
|
deleteUserAction: "Supprimer l'utilisateur",
|
|
saveButton: "Enregistrer",
|
|
copyPasswordButton: "Copier le mot de passe",
|
|
passwordCopied: "Copie !",
|
|
copyPasswordWarning:
|
|
"Copiez ce mot de passe maintenant. Vous ne pourrez plus le voir apres la creation de l'utilisateur.",
|
|
},
|
|
teams: {
|
|
heading: "Equipes",
|
|
description: "Organisez les membres en equipes pour une meilleure gestion.",
|
|
createButton: "Creer une nouvelle equipe",
|
|
newTeamHeading: "Nouvelle equipe",
|
|
teamNamePlaceholder: "Nom de l'equipe",
|
|
createSubmitButton: "Creer",
|
|
cancelButton: "Annuler",
|
|
createSuccess: "Equipe creee avec succes",
|
|
createFailed: "Echec de la creation de l'equipe",
|
|
duplicateTeamError: "Une equipe avec ce nom existe deja",
|
|
renameSuccess: "Equipe renommee",
|
|
renameFailed: "Echec du renommage de l'equipe",
|
|
deleteConfirm: 'Supprimer l\'equipe "{name}" ? Les membres seront desaffectes.',
|
|
deleteSuccess: 'Equipe "{name}" supprimee',
|
|
deleteFailed: "Echec de la suppression de l'equipe",
|
|
cannotDeleteDefault:
|
|
"Impossible de supprimer l'equipe par defaut ou une equipe avec des membres",
|
|
tableHeaderTeamName: "Nom de l'equipe",
|
|
tableHeaderMembers: "Membres",
|
|
emptyState: "Aucune equipe trouvee.",
|
|
renameSaveButton: "Enregistrer",
|
|
renameCancelButton: "Annuler",
|
|
renameAction: "Renommer",
|
|
deleteAction: "Supprimer",
|
|
totalMembers: "Nombre total de membres",
|
|
nameRequired: "Le nom de l'equipe est requis",
|
|
nameTooLong: "Le nom de l'equipe doit contenir 50 caracteres ou moins",
|
|
duplicateName: "Une equipe avec ce nom existe deja",
|
|
},
|
|
roles: {
|
|
heading: "Roles",
|
|
description:
|
|
"Gerez les roles et leurs permissions. Les roles predefinies ne peuvent pas etre modifies.",
|
|
createButton: "Creer un role personnalise",
|
|
newRoleHeading: "Nouveau role",
|
|
roleNamePlaceholder: "Nom du role",
|
|
descriptionPlaceholder: "Description (optionnel)",
|
|
permissionsLabel: "Permissions",
|
|
createSubmitButton: "Creer",
|
|
cancelButton: "Annuler",
|
|
createSuccess: "Role cree avec succes",
|
|
createFailed: "Echec de la creation du role",
|
|
duplicateRoleError: "Un role avec ce nom existe deja",
|
|
editHeading: "Modifier le role : {name}",
|
|
editSaveButton: "Enregistrer",
|
|
editCancelButton: "Annuler",
|
|
updateSuccess: "Role mis a jour",
|
|
updateFailed: "Echec de la mise a jour du role",
|
|
deleteConfirm: 'Supprimer le role "{name}" ? {count} utilisateur(s) devront etre reassignes.',
|
|
deleteConfirmSimple: 'Supprimer le role "{name}" ?',
|
|
deleteSuccess: 'Role "{name}" supprime',
|
|
deleteFailed: "Echec de la suppression du role",
|
|
emptyState: "Aucun role trouve.",
|
|
builtInBadge: "Predefini",
|
|
userCountBadge: "{count} utilisateur(s)",
|
|
editRoleTitle: "Modifier le role",
|
|
deleteRoleTitle: "Supprimer le role",
|
|
permGroup: {
|
|
tools: "Outils",
|
|
files: "Fichiers",
|
|
apiKeys: "Cles API",
|
|
pipelines: "Pipelines",
|
|
settings: "Parametres",
|
|
users: "Utilisateurs",
|
|
teams: "Equipes",
|
|
system: "Systeme",
|
|
},
|
|
},
|
|
auditLog: {
|
|
heading: "Journal d'audit",
|
|
allActionsFilter: "Toutes les actions",
|
|
emptyState: "Aucune entree dans le journal d'audit.",
|
|
tableHeaderTime: "Heure",
|
|
tableHeaderUser: "Utilisateur",
|
|
tableHeaderAction: "Action",
|
|
tableHeaderTarget: "Cible",
|
|
paginationInfo: "Page {page} sur {totalPages} ({total} entrees)",
|
|
previousButton: "Precedent",
|
|
nextButton: "Suivant",
|
|
justNow: "a l'instant",
|
|
minutesAgo: "il y a {mins}min",
|
|
hoursAgo: "il y a {hrs}h",
|
|
daysAgo: "il y a {days}j",
|
|
},
|
|
apiKeys: {
|
|
heading: "Cles API",
|
|
description: "Gerez les cles API pour l'acces programmatique a SnapOtter.",
|
|
keyNamePlaceholder: "Nom de la cle (optionnel)",
|
|
generateButton: "Generer une cle API",
|
|
removeScopingLabel: "Supprimer la restriction de permissions",
|
|
restrictPermissionsLabel: "Restreindre les permissions (optionnel)",
|
|
expiresLabel: "Expire :",
|
|
clearButton: "Effacer",
|
|
copyTitle: "Copier",
|
|
keyWarning: "Conservez cette cle en lieu sur. Elle ne sera plus affichee.",
|
|
existingKeysHeading: "Cles existantes",
|
|
createdPrefix: "Creee le {date}",
|
|
scopedPrefix: "Portee :",
|
|
expiresPrefix: "Expire le {date}",
|
|
deleteKeyTitle: "Supprimer la cle",
|
|
deleteConfirm:
|
|
"Supprimer cette cle API ? Les integrations qui l'utilisent cesseront de fonctionner.",
|
|
emptyState: "Aucune cle API pour le moment. Generez-en une pour commencer.",
|
|
},
|
|
tools: {
|
|
heading: "Outils",
|
|
description:
|
|
"Activez ou desactivez les outils individuellement. Les outils desactives sont masques pour tous les utilisateurs.",
|
|
restartBanner: "Un redemarrage est necessaire pour appliquer les modifications.",
|
|
searchPlaceholder: "Rechercher des outils...",
|
|
noSearchResults: "Aucun outil ne correspond a votre recherche.",
|
|
loadFailedError:
|
|
"Echec du chargement des parametres d'outils. L'enregistrement est desactive pour eviter toute perte de donnees.",
|
|
saveButton: "Enregistrer les parametres d'outils",
|
|
disabledCount: "{count} outil(s) desactive(s)",
|
|
},
|
|
experimental: {
|
|
label: "Activer les outils experimentaux",
|
|
description: "Affiche les outils encore en developpement. Ils peuvent etre instables.",
|
|
},
|
|
fileManagement: {
|
|
title: "Gestion des fichiers",
|
|
maxAge: "Age maximal des fichiers (heures)",
|
|
maxAgeDescription: "Duree de conservation des fichiers traites avant nettoyage automatique",
|
|
startupCleanup: "Nettoyage au demarrage",
|
|
startupCleanupDescription: "Nettoie les anciens fichiers temporaires au demarrage du serveur",
|
|
},
|
|
analytics: {
|
|
heading: "Analytique produit",
|
|
description: "Partagez des donnees d'utilisation anonymes pour aider a ameliorer SnapOtter.",
|
|
privacyNote: "Vos images ne quittent jamais votre machine.",
|
|
disabledByAdmin: "L'analytique produit a ete desactivee par l'administrateur du serveur.",
|
|
enabledLabel: "Analytique activee",
|
|
disabledLabel: "Analytique desactivee",
|
|
learnMore: "En savoir plus",
|
|
},
|
|
aiFeatures: {
|
|
title: "AI Features",
|
|
description: "Manage AI model bundles for advanced image processing.",
|
|
installAll: "Install All",
|
|
diskUsage: "Disk usage:",
|
|
installed: "Installed",
|
|
notInstalled: "Not installed",
|
|
queued: "Queued",
|
|
install: "Install",
|
|
repair: "Repair",
|
|
uninstall: "Uninstall",
|
|
installing: "Installing...",
|
|
},
|
|
about: {
|
|
heading: "A propos",
|
|
appName: "SnapOtter",
|
|
appDescription:
|
|
"Une suite de traitement d'images auto-hebergee, axee sur la confidentialite, avec 53 outils. Redimensionnez, compressez, convertissez, ajoutez des filigranes et automatisez vos flux de travail sans envoyer de donnees vers le cloud.",
|
|
versionLabel: "Version :",
|
|
linksHeading: "Liens",
|
|
githubLink: "Depot GitHub",
|
|
docsLink: "Documentation",
|
|
apiRefLink: "Reference API (Swagger)",
|
|
licenseLabel: "License:",
|
|
licenseDescription:
|
|
"SnapOtter is open-source software licensed under the GNU Affero General Public License v3 (AGPLv3).",
|
|
},
|
|
},
|
|
auth: {
|
|
login: "Connexion",
|
|
logout: "Se deconnecter",
|
|
username: "Nom d'utilisateur",
|
|
password: "Mot de passe",
|
|
loginButton: "Se connecter",
|
|
loggingIn: "Connexion en cours...",
|
|
invalidCredentials: "Nom d'utilisateur ou mot de passe invalide",
|
|
connectionError: "Erreur de connexion",
|
|
signInWith: "Se connecter avec {provider}",
|
|
signInWithSso: "Se connecter avec SSO",
|
|
or: "ou",
|
|
methodLocal: "Local",
|
|
methodOidc: "OIDC",
|
|
methodBoth: "Local + OIDC",
|
|
oidcAuthFailed: "L'authentification a echoue. Veuillez reessayer.",
|
|
oidcProviderUnreachable:
|
|
"Impossible de joindre le fournisseur d'identite. Veuillez reessayer plus tard.",
|
|
oidcSessionExpired: "La session de connexion a expire. Veuillez reessayer.",
|
|
oidcUserNotAuthorized:
|
|
"Votre compte n'est pas autorise a acceder a cette application. Contactez votre administrateur.",
|
|
oidcUserLimitReached: "Limite d'utilisateurs atteinte. Contactez votre administrateur.",
|
|
oidcGenericError: "Erreur d'authentification. Veuillez reessayer.",
|
|
passwordManagedByProvider:
|
|
"Les modifications de mot de passe sont gerees par votre fournisseur d'identite.",
|
|
enterUsername: "Saisissez votre nom d'utilisateur",
|
|
enterPassword: "Saisissez votre mot de passe",
|
|
heroTitle: "Vos images. Restent les votres.",
|
|
heroSubtitle: "Tous les outils image dont vous avez besoin.",
|
|
rotatingPhrases: [
|
|
"Aucune inscription. Aucun compte.",
|
|
"Aucun envoi vers le cloud. Jamais.",
|
|
"Traitement 100% local.",
|
|
"Gratuit. Pour toujours.",
|
|
"Sans limites. Sans plafonds caches.",
|
|
"Fonctionne entierement hors ligne.",
|
|
"Traitement par lot illimite.",
|
|
"53 outils image.",
|
|
"15 modeles AI. Votre materiel.",
|
|
"Ultra rapide. Propulse par Sharp.",
|
|
"Pret pour les reseaux isoles.",
|
|
"Un seul conteneur Docker.",
|
|
"Open source. Toujours.",
|
|
"Chaque pixel reste sur votre materiel.",
|
|
"Votre serveur. Vos regles.",
|
|
"Se deploie en un seul docker pull.",
|
|
"L'alternative auto-hebergee.",
|
|
"Redimensionnez, compressez, convertissez. Localement.",
|
|
"Editeur d'images gratuit. Sans filigrane.",
|
|
"Traitement d'images par lot. Illimite.",
|
|
"Supprimez les arriere-plans hors ligne.",
|
|
"Alternative auto-hebergee a Canva.",
|
|
"Aucune cle API necessaire.",
|
|
"Conforme au RGPD par conception.",
|
|
"Fonctionne sans internet.",
|
|
],
|
|
},
|
|
changePassword: {
|
|
title: "Changez votre mot de passe",
|
|
description:
|
|
"Vous devez definir un nouveau mot de passe avant de continuer. Votre mot de passe doit contenir au moins 8 caracteres avec des majuscules, des minuscules et un chiffre.",
|
|
usernameLabel: "Nom d'utilisateur",
|
|
currentPasswordLabel: "Mot de passe actuel",
|
|
currentPasswordPlaceholder: "Saisissez le mot de passe actuel",
|
|
newPasswordLabel: "Nouveau mot de passe",
|
|
generateButton: "Generer un mot de passe fort",
|
|
newPasswordPlaceholder: "Au moins 8 caracteres",
|
|
confirmPasswordLabel: "Confirmer le nouveau mot de passe",
|
|
confirmPasswordPlaceholder: "Repetez le nouveau mot de passe",
|
|
passwordsMismatch: "Les mots de passe ne correspondent pas",
|
|
failedError: "Echec du changement de mot de passe",
|
|
connectionError: "Erreur de connexion",
|
|
changingButton: "Modification en cours...",
|
|
changeButton: "Changer le mot de passe",
|
|
sidebarTitle: "Presque fini",
|
|
sidebarDescription:
|
|
"Definissez un mot de passe fort pour securiser votre compte, puis vous serez pret.",
|
|
},
|
|
automate: {
|
|
title: "Automatiser",
|
|
invalidPipelineFile: "Ce n'est pas un fichier Pipeline SnapOtter valide",
|
|
newerVersion: "Ce Pipeline a ete cree avec une version plus recente de SnapOtter",
|
|
missingName: "Le fichier Pipeline n'a pas de nom",
|
|
noSteps: "Le fichier Pipeline n'a aucune etape",
|
|
importFailed: "Echec de l'importation",
|
|
couldNotRead: "Impossible de lire le fichier Pipeline",
|
|
fileCount: "{count} fichier",
|
|
fileCountPlural: "{count} fichiers",
|
|
importFromLibrary: "Importer depuis la bibliotheque",
|
|
addButton: "+ Ajouter",
|
|
libraryButton: "Bibliotheque",
|
|
clearButton: "Effacer",
|
|
processingFailed: "Echec du traitement pour ce fichier",
|
|
processingMultiple: "Traitement de {count} fichiers...",
|
|
processingPipeline: "Traitement du Pipeline...",
|
|
processButton: "Traiter",
|
|
processButtonMultiple: "Traiter ({count})",
|
|
processAllButton: "Tout traiter ({count})",
|
|
addTool: "Ajouter un outil",
|
|
toolPalette: "Palette d'outils",
|
|
clickToAdd: "Cliquez pour ajouter au Pipeline",
|
|
savedLabel: "Enregistre",
|
|
importButton: "Importer",
|
|
noSavedPipelines: "Aucun Pipeline enregistre",
|
|
stepCount: "({count} etape)",
|
|
stepCountPlural: "({count} etapes)",
|
|
exportPipeline: "Exporter le Pipeline",
|
|
deletePipeline: "Supprimer le Pipeline",
|
|
moreCount: "+{count} de plus",
|
|
pipelineBuilder: "Constructeur de Pipeline",
|
|
addToolsPrompt: "Ajoutez des outils depuis la palette pour commencer",
|
|
stepsConfigured: "{count} etape configuree",
|
|
stepsConfiguredPlural: "{count} etapes configurees",
|
|
noFilesLoaded: "Aucun fichier charge",
|
|
downloadZip: "Telecharger le ZIP",
|
|
saveButton: "Enregistrer",
|
|
pipelineNamePlaceholder: "Nom du Pipeline",
|
|
descriptionPlaceholder: "Description",
|
|
savingIndicator: "...",
|
|
cancelButton: "Annuler",
|
|
preview: "Apercu",
|
|
previousImage: "Image precedente",
|
|
nextImage: "Image suivante",
|
|
imageCounter: "{current} / {total}",
|
|
imageArea: "Zone d'image",
|
|
templateSocialMedia: "Pret pour les reseaux sociaux",
|
|
templatePrivacyClean: "Nettoyage de confidentialite",
|
|
templateWebOptimization: "Optimisation web",
|
|
templateProfilePicture: "Photo de profil",
|
|
templateWatermarkBatch: "Lot de filigranes",
|
|
createNew: "Creer une nouvelle automatisation",
|
|
savedAutomations: "Automatisations enregistrees",
|
|
templates: "Modeles",
|
|
addStep: "Ajouter une etape",
|
|
removeStep: "Supprimer",
|
|
moveUp: "Monter",
|
|
moveDown: "Descendre",
|
|
savePipeline: "Enregistrer le Pipeline",
|
|
runPipeline: "Traiter",
|
|
pipelineName: "Nom du Pipeline",
|
|
pipelineDescription: "Description (optionnel)",
|
|
noStepsPrompt: "Ajoutez des etapes pour construire votre automatisation",
|
|
noStepsHeading: "No steps yet",
|
|
searchToolsPlaceholder: "Search tools...",
|
|
step: "Etape",
|
|
},
|
|
nav: {
|
|
tools: "Outils",
|
|
reader: "Lecteur",
|
|
automate: "Automatiser",
|
|
editor: "Editeur",
|
|
files: "Fichiers",
|
|
help: "Aide",
|
|
settings: "Parametres",
|
|
grid: "Grille",
|
|
},
|
|
files: {
|
|
myFiles: "My Files",
|
|
recentTab: "Recent",
|
|
uploadTab: "Upload Files",
|
|
fileDetailsAriaLabel: "File Details",
|
|
fileDetailsHeading: "File Details",
|
|
searchPlaceholder: "Search files...",
|
|
selectedCount: "{count} selected",
|
|
fileCount: "{count} files",
|
|
fileCountSingular: "{count} file",
|
|
noFilesFound: "No files found",
|
|
selectFilePrompt: "Select a file to view details",
|
|
openFile: "Open File",
|
|
openInPipeline: "Open in Pipeline",
|
|
name: "Name",
|
|
format: "Format",
|
|
size: "Size",
|
|
dimensions: "Dimensions",
|
|
version: "Version",
|
|
toolsUsed: "Tools Used",
|
|
none: "None",
|
|
delete: "Delete",
|
|
pipeline: "Pipeline",
|
|
download: "Download",
|
|
},
|
|
dropzone: {
|
|
unsupportedFileType: "Ce type de fichier n'est pas pris en charge par cet outil",
|
|
urlFetchFailed: "Impossible de recuperer l'image depuis l'URL",
|
|
ariaLabel: "Zone de depot de fichiers",
|
|
dropPrompt: "Deposez vos images ici",
|
|
browseOrPaste: "cliquez n'importe ou pour parcourir, ou collez depuis le presse-papiers",
|
|
uploadButton: "Importer",
|
|
defaultFormats: "PNG, JPG, WebP, HEIC, RAW, PSD et plus de 65 formats",
|
|
orSeparator: "ou",
|
|
urlPlaceholder: "Collez l'URL de l'image...",
|
|
urlLoadingIndicator: "...",
|
|
addUrlButton: "Ajouter",
|
|
importMultipleUrls: "Importer plusieurs URLs...",
|
|
filesSelected: "{count} fichiers selectionnes",
|
|
},
|
|
reviewPanel: {
|
|
processedResultAlt: "Resultat traite",
|
|
sizeLabel: "Taille : {size}",
|
|
typeLabel: "Type : {type}",
|
|
processedLabel: "Traite : {time}",
|
|
undoButton: "Annuler",
|
|
downloadButton: "Telecharger",
|
|
openInEditor: "Ouvrir dans l'editeur",
|
|
reviewHeading: "Verification",
|
|
continueEditing: "Continuer l'edition",
|
|
},
|
|
features: {
|
|
notEnabledTitle: "Fonctionnalite non activee",
|
|
notEnabledDescription:
|
|
"Cette fonctionnalite n'est pas activee. Demandez a votre administrateur de l'activer dans les Parametres.",
|
|
requiresDownload: "Cette fonctionnalite necessite un telechargement supplementaire (~{size})",
|
|
retryButton: "Reessayer",
|
|
queued: "En file d'attente pour l'installation...",
|
|
enableButton: "Activer {name}",
|
|
lessThanMinute: "Moins d'une minute restante",
|
|
oneMinuteLeft: "~1 minute restante",
|
|
minutesLeft: "~{mins} minutes restantes",
|
|
progressMessages: [
|
|
"Presque fini... sans doute...",
|
|
"Les bonnes choses prennent du temps...",
|
|
"Toujours plus rapide que de regarder secher la peinture...",
|
|
"Votre patience est vraiment admirable...",
|
|
"Ca travaille dur dans les coulisses...",
|
|
"C'est la partie passionnante, faites-nous confiance...",
|
|
"Des operations importantes en arriere-plan...",
|
|
"Si vous lisez ceci, ca fonctionne...",
|
|
"Preparation de quelque chose de genial...",
|
|
"Ca vaut chaque seconde, promis...",
|
|
"Le suspense fait partie de l'experience...",
|
|
"On apprend de nouveaux tours a votre ordinateur...",
|
|
"Configuration de vos super-pouvoirs...",
|
|
"Vos images vous remercieront plus tard...",
|
|
"Chargement... mais avec du style...",
|
|
"Le moment ideal pour un cafe...",
|
|
"Rome ne s'est pas faite en un jour non plus...",
|
|
"Chut... un genie au travail...",
|
|
"Vos photos vont etre jalouses de ce qui arrive...",
|
|
"On rassemble l'equipe de choc...",
|
|
"Deballage de merveilles...",
|
|
"On a presque fini de penser a commencer... on plaisante...",
|
|
"Retournement de situation : ca fait vraiment quelque chose...",
|
|
"Prechauffage des moteurs creatifs...",
|
|
"Chargement de l'imagination...",
|
|
"Ce n'est pas un ecran de veille, promis...",
|
|
"Le grand art prend du temps a s'installer...",
|
|
"Votre futur vous vous remerciera...",
|
|
"Recuperation de fichiers tres intelligents...",
|
|
"Tenez bon, le meilleur reste a venir...",
|
|
],
|
|
},
|
|
help: {
|
|
heading: "Aide",
|
|
gettingStarted: {
|
|
heading: "Pour commencer",
|
|
description:
|
|
"Selectionnez un outil dans la barre laterale ou recherchez-en un. Importez une image en la faisant glisser sur la page ou en cliquant sur la zone d'import. Ajustez les parametres et telechargez votre resultat.",
|
|
},
|
|
keyboardShortcuts: {
|
|
heading: "Raccourcis clavier",
|
|
focusSearchBar: "Focus sur la barre de recherche",
|
|
goToTools: "Aller aux outils",
|
|
toggleTheme: "Changer de theme",
|
|
goToResize: "Aller a Redimensionner",
|
|
goToCrop: "Aller a Recadrer",
|
|
goToCompress: "Aller a Compresser",
|
|
goToConvert: "Aller a Convertir",
|
|
goToRemoveBackground: "Aller a Supprimer l'arriere-plan",
|
|
goToWatermarkText: "Aller au Filigrane texte",
|
|
goToStripMetadata: "Aller a Supprimer les metadonnees",
|
|
goToImageInfo: "Aller a Info image",
|
|
},
|
|
resources: {
|
|
heading: "Ressources",
|
|
githubLink: "Depot GitHub",
|
|
reportIssueLink: "Signaler un probleme",
|
|
docsLink: "Documentation",
|
|
apiRefLink: "Reference API (Swagger)",
|
|
},
|
|
versionLabel: "SnapOtter v{version}",
|
|
},
|
|
errors: {
|
|
generic: "Une erreur est survenue",
|
|
offline: "Vous etes hors ligne",
|
|
reconnecting: "Reconnexion au serveur...",
|
|
connected: "Connecte",
|
|
processingFailed: "Echec du traitement pour ce fichier",
|
|
timeout: "Delai d'attente depasse. Le serveur est peut-etre surcharge. Veuillez reessayer.",
|
|
networkError: "Erreur reseau. Verifiez votre connexion.",
|
|
invalidCredentials: "Nom d'utilisateur ou mot de passe invalide",
|
|
connectionError: "Erreur de connexion",
|
|
},
|
|
analytics: {
|
|
consentTitle: "Aidez a ameliorer SnapOtter",
|
|
consentDescription:
|
|
"Les statistiques d'utilisation anonymes nous aident a corriger les bugs et a creer les outils dont vous avez vraiment besoin. Vos images et fichiers restent sur votre machine.",
|
|
consentChangeable: "Vous pouvez desactiver cela a tout moment dans les Parametres.",
|
|
acceptButton: "Bien sur, ca me va",
|
|
declineButton: "Pas maintenant",
|
|
settingsTitle: "Analytique produit",
|
|
settingsDescription:
|
|
"Partagez des donnees d'utilisation anonymes pour aider a ameliorer SnapOtter.",
|
|
settingsPrivacy: "Vos images ne quittent jamais votre machine.",
|
|
settingsDisabledByAdmin:
|
|
"L'analytique produit a ete desactivee par l'administrateur du serveur.",
|
|
learnMore: "En savoir plus",
|
|
},
|
|
sidebar: {
|
|
tools: "Outils",
|
|
grid: "Grille",
|
|
automate: "Automatiser",
|
|
editor: "Editeur",
|
|
files: "Fichiers",
|
|
help: "Aide",
|
|
settings: "Parametres",
|
|
},
|
|
toolCard: {
|
|
addToFavourites: "Ajouter aux favoris",
|
|
},
|
|
appLayout: {
|
|
mobileNavTools: "Outils",
|
|
mobileNavAutomate: "Automatiser",
|
|
mobileNavEditor: "Editeur",
|
|
mobileNavFiles: "Fichiers",
|
|
mobileNavSettings: "Parametres",
|
|
},
|
|
a11y: {
|
|
skipToContent: "Skip to main content",
|
|
openSidebar: "Open sidebar",
|
|
closeSidebar: "Close sidebar",
|
|
closeSettings: "Close settings",
|
|
closeHelp: "Close help",
|
|
closeDialog: "Close dialog",
|
|
zoomIn: "Zoom in",
|
|
zoomOut: "Zoom out",
|
|
fitToView: "Fit to view",
|
|
actualSize: "Actual size",
|
|
previousImage: "Previous image",
|
|
nextImage: "Next image",
|
|
imageArea: "Image area",
|
|
imageViewer: "Image viewer",
|
|
fileDropZone: "File drop zone",
|
|
imageDropZone: "Image drop zone",
|
|
beforeAfterSlider: "Before/after comparison slider",
|
|
imageControls: "Image controls",
|
|
zoomControls: "Zoom controls",
|
|
dragToReorder: "Drag to reorder",
|
|
whiteBackground: "White background",
|
|
blackBackground: "Black background",
|
|
expandPanel: "Expand panel",
|
|
collapsePanel: "Collapse panel",
|
|
swapDimensions: "Swap dimensions",
|
|
applyCrop: "Apply crop",
|
|
cancelCrop: "Cancel crop",
|
|
fontFamily: "Font family",
|
|
textColor: "Text color",
|
|
flipHorizontal: "Flip horizontal",
|
|
flipVertical: "Flip vertical",
|
|
hexColorValue: "Hex color value",
|
|
backgroundColor: "Background color",
|
|
foregroundColor: "Foreground color",
|
|
swapColors: "Swap foreground and background colors",
|
|
resetColors: "Reset to default black and white",
|
|
foregroundHex: "Foreground color hex value",
|
|
undo: "Undo",
|
|
redo: "Redo",
|
|
layers: "Layers",
|
|
addLayer: "Add layer",
|
|
deleteLayer: "Delete layer",
|
|
cancelOperation: "Cancel operation",
|
|
fill: "Fill",
|
|
fileDetails: "File details",
|
|
language: "Language",
|
|
selected: "Selected",
|
|
deleteKey: "Delete key",
|
|
editRole: "Edit role",
|
|
deleteRole: "Delete role",
|
|
notInstalled: "Not installed",
|
|
queued: "Queued for install",
|
|
installing: "Installing",
|
|
imageNOfTotal: "Image {n} of {total}",
|
|
processingComplete: "Image processed successfully",
|
|
processingFailed: "Processing failed",
|
|
settingsDialog: "Settings",
|
|
helpDialog: "Help",
|
|
navigationMenu: "Navigation",
|
|
},
|
|
} as const;
|