mirror of
https://github.com/snapotter-hq/SnapOtter.git
synced 2026-08-03 07:46:42 +02:00
3458 lines
121 KiB
TypeScript
3458 lines
121 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",
|
|
adjustments: "Reglages",
|
|
enhance: "Enhance & AI",
|
|
watermark: "Filigrane et superposition",
|
|
layout: "Mise en page et composition",
|
|
utilities: "Utilitaires",
|
|
optimization: "Optimisation",
|
|
format: "Format et conversion",
|
|
"video-edit": "Video",
|
|
"video-convert": "Convert",
|
|
"video-effects": "Effects & Compose",
|
|
"video-subtitles": "Subtitles",
|
|
"video-metadata": "Metadata",
|
|
"audio-edit": "Edit",
|
|
"audio-convert": "Convert",
|
|
"audio-effects": "Effects & Compose",
|
|
"audio-metadata": "Metadata",
|
|
"pdf-organize": "Organize",
|
|
"pdf-edit": "Edit & Annotate",
|
|
"pdf-security": "Security",
|
|
"pdf-optimize": "Optimize",
|
|
"doc-convert": "Convert",
|
|
data: "Data Files",
|
|
archives: "Archives",
|
|
},
|
|
modalities: {
|
|
image: "Image",
|
|
video: "Video",
|
|
audio: "Audio",
|
|
documentsAndFiles: "Documents & Files",
|
|
},
|
|
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",
|
|
},
|
|
"ocr-pdf": {
|
|
name: "OCR de PDF",
|
|
description: "Extrayez du texte de documents PDF avec OCR alimente par l'IA",
|
|
},
|
|
"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",
|
|
},
|
|
"transcribe-audio": {
|
|
name: "Transcrire l'audio",
|
|
description: "Convertir la parole en texte avec la transcription par IA",
|
|
},
|
|
"auto-subtitles": {
|
|
name: "Sous-titres automatiques",
|
|
description: "Generer des fichiers de sous-titres a partir des pistes audio video",
|
|
},
|
|
"transparency-fixer": {
|
|
name: "Correcteur de transparence PNG",
|
|
description: "Corrigez les PNG a fausse transparence en un clic",
|
|
},
|
|
"background-replace": {
|
|
name: "Remplacement du fond",
|
|
description: "Remplacer le fond par une couleur unie",
|
|
},
|
|
"blur-background": {
|
|
name: "Flou d'arriere-plan",
|
|
description: "Flouter le fond en gardant le sujet net",
|
|
},
|
|
"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",
|
|
},
|
|
"circle-crop": {
|
|
name: "Circle Crop",
|
|
description: "Crop image to a centered circle with transparent corners",
|
|
},
|
|
duotone: {
|
|
name: "Duotone",
|
|
description: "Apply a two-color duotone effect with custom shadow and highlight colors",
|
|
},
|
|
"image-pad": {
|
|
name: "Image Pad",
|
|
description: "Pad image to a target aspect ratio with a solid color background",
|
|
},
|
|
pixelate: {
|
|
name: "Pixelate",
|
|
description: "Apply a pixelation effect to the full image or a specific region",
|
|
},
|
|
vignette: {
|
|
name: "Vignette",
|
|
description: "Add a vignette effect with adjustable strength and color",
|
|
},
|
|
"gif-webp": {
|
|
name: "GIF/WebP Converter",
|
|
description: "Convert animated GIF to WebP and vice versa, preserving all frames",
|
|
},
|
|
histogram: {
|
|
name: "Histogram",
|
|
description: "Generate an RGB histogram chart from an image",
|
|
},
|
|
"lqip-placeholder": {
|
|
name: "LQIP Placeholder",
|
|
description: "Generate a tiny low-quality image placeholder with base64 data URI",
|
|
},
|
|
"sprite-sheet": {
|
|
name: "Sprite Sheet",
|
|
description: "Combine multiple images into a single sprite sheet grid",
|
|
},
|
|
"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",
|
|
},
|
|
"barcode-generate": {
|
|
name: "Barcode Generator",
|
|
description: "Generate barcodes in Code 128, EAN-13, UPC-A, Code 39, ITF-14, and Data Matrix",
|
|
},
|
|
"chart-maker": {
|
|
name: "Chart Maker",
|
|
description: "Create bar, line, or pie charts from CSV or JSON data",
|
|
},
|
|
"convert-video": {
|
|
name: "Convert Video",
|
|
description: "Convert videos between MP4, MOV, and WebM",
|
|
},
|
|
"compress-video": {
|
|
name: "Compress Video",
|
|
description: "Shrink video file size with quality control",
|
|
},
|
|
"trim-video": {
|
|
name: "Trim Video",
|
|
description: "Cut a clip out of a video",
|
|
},
|
|
"mute-video": {
|
|
name: "Mute Video",
|
|
description: "Remove the audio track from a video",
|
|
},
|
|
"video-to-gif": {
|
|
name: "Video to GIF",
|
|
description: "Turn a video clip into an animated GIF",
|
|
},
|
|
"resize-video": {
|
|
name: "Resize Video",
|
|
description: "Scale a video to a new resolution or preset size",
|
|
},
|
|
"crop-video": {
|
|
name: "Crop Video",
|
|
description: "Crop a region out of a video",
|
|
},
|
|
"rotate-video": {
|
|
name: "Rotate Video",
|
|
description: "Rotate or flip a video",
|
|
},
|
|
"change-fps": {
|
|
name: "Change FPS",
|
|
description: "Change the frame rate of a video",
|
|
},
|
|
"video-color": {
|
|
name: "Video Color",
|
|
description: "Adjust brightness, contrast, saturation, and gamma",
|
|
},
|
|
"video-speed": {
|
|
name: "Video Speed",
|
|
description: "Speed up or slow down a video",
|
|
},
|
|
"reverse-video": {
|
|
name: "Reverse Video",
|
|
description: "Play a video clip backwards",
|
|
},
|
|
"video-loudnorm": {
|
|
name: "Normalize Audio",
|
|
description: "Normalize video audio volume to broadcast standard",
|
|
},
|
|
"aspect-pad": {
|
|
name: "Aspect Pad",
|
|
description: "Add solid-color bars to fit a target aspect ratio",
|
|
},
|
|
"blur-pad": {
|
|
name: "Blur Pad",
|
|
description: "Fill bars with a blurred copy of the video",
|
|
},
|
|
"watermark-video": {
|
|
name: "Watermark Video",
|
|
description: "Burn a text watermark onto video frames",
|
|
},
|
|
"stabilize-video": {
|
|
name: "Stabilize Video",
|
|
description: "Reduce camera shake with two-pass stabilization",
|
|
},
|
|
"gif-to-video": {
|
|
name: "GIF to Video",
|
|
description: "Convert an animated GIF into an MP4 or WebM video",
|
|
},
|
|
"video-to-webp": {
|
|
name: "Video to WebP",
|
|
description: "Convert a video clip into an animated WebP image",
|
|
},
|
|
"video-to-frames": {
|
|
name: "Video to Frames",
|
|
description: "Extract frames from a video as a ZIP of images",
|
|
},
|
|
"merge-videos": {
|
|
name: "Merge Videos",
|
|
description: "Join multiple video clips into one file",
|
|
},
|
|
"replace-audio": {
|
|
name: "Replace Audio",
|
|
description: "Swap the audio track of a video with another file",
|
|
},
|
|
"burn-subtitles": {
|
|
name: "Burn Subtitles",
|
|
description: "Permanently render subtitles onto video frames",
|
|
},
|
|
"embed-subtitles": {
|
|
name: "Embed Subtitles",
|
|
description: "Mux a subtitle track into the video container",
|
|
},
|
|
"extract-subtitles": {
|
|
name: "Extract Subtitles",
|
|
description: "Pull the subtitle track out of a video as an SRT file",
|
|
},
|
|
"images-to-video": {
|
|
name: "Images to Video",
|
|
description: "Turn a set of images into a slideshow video",
|
|
},
|
|
"video-metadata": {
|
|
name: "Clean Video Metadata",
|
|
description: "Strip metadata from a video and report what was found",
|
|
},
|
|
"convert-audio": {
|
|
name: "Convert Audio",
|
|
description: "Convert audio between MP3, WAV, OGG, and more",
|
|
},
|
|
"trim-audio": {
|
|
name: "Trim Audio",
|
|
description: "Cut a section out of an audio file",
|
|
},
|
|
"extract-audio": {
|
|
name: "Extract Audio",
|
|
description: "Pull the audio track out of a video",
|
|
},
|
|
"volume-adjust": {
|
|
name: "Volume Adjust",
|
|
description: "Increase or decrease audio volume by a fixed gain",
|
|
},
|
|
"normalize-audio": {
|
|
name: "Normalize Audio",
|
|
description: "Even out loudness to broadcast standard levels",
|
|
},
|
|
"fade-audio": {
|
|
name: "Fade Audio",
|
|
description: "Add fade-in and fade-out effects to audio",
|
|
},
|
|
"reverse-audio": {
|
|
name: "Reverse Audio",
|
|
description: "Play audio backwards",
|
|
},
|
|
"audio-speed": {
|
|
name: "Audio Speed",
|
|
description: "Speed up or slow down audio playback",
|
|
},
|
|
"pitch-shift": {
|
|
name: "Pitch Shift",
|
|
description: "Raise or lower pitch by semitones without changing speed",
|
|
},
|
|
"audio-channels": {
|
|
name: "Audio Channels",
|
|
description: "Convert between mono, stereo, or swap left and right channels",
|
|
},
|
|
"silence-removal": {
|
|
name: "Silence Removal",
|
|
description: "Strip silent sections from audio",
|
|
},
|
|
"noise-reduction": {
|
|
name: "Noise Reduction",
|
|
description: "Reduce background noise with FFT-based denoising",
|
|
},
|
|
"merge-audio": {
|
|
name: "Merge Audio",
|
|
description: "Combine multiple audio files into one",
|
|
},
|
|
"split-audio": {
|
|
name: "Split Audio",
|
|
description: "Split audio by time, equal parts, or silence detection",
|
|
},
|
|
"ringtone-maker": {
|
|
name: "Ringtone Maker",
|
|
description: "Create a ringtone clip from any audio file",
|
|
},
|
|
"waveform-image": {
|
|
name: "Waveform Image",
|
|
description: "Generate a waveform visualization as a PNG image",
|
|
},
|
|
"audio-metadata": {
|
|
name: "Audio Metadata",
|
|
description: "View, edit, or strip audio tags (ID3)",
|
|
},
|
|
"merge-pdf": {
|
|
name: "Merge PDFs",
|
|
description: "Combine multiple PDFs into one",
|
|
},
|
|
"split-pdf": {
|
|
name: "Split PDF",
|
|
description: "Extract pages or split into parts",
|
|
},
|
|
"compress-pdf": {
|
|
name: "Compress PDF",
|
|
description: "Shrink PDF file size",
|
|
},
|
|
"rotate-pdf": {
|
|
name: "Rotate PDF",
|
|
description: "Rotate pages in a PDF",
|
|
},
|
|
"convert-document": {
|
|
name: "Convert Document",
|
|
description: "Convert between Word, OpenDocument, RTF, and plain text formats",
|
|
},
|
|
"convert-presentation": {
|
|
name: "Convert Presentation",
|
|
description: "Convert between PowerPoint and OpenDocument presentation formats",
|
|
},
|
|
"convert-spreadsheet": {
|
|
name: "Convert Spreadsheet",
|
|
description:
|
|
"Convert between Excel, OpenDocument, and CSV formats. Multi-sheet workbooks export the first sheet to CSV.",
|
|
},
|
|
"excel-to-pdf": {
|
|
name: "Excel to PDF",
|
|
description: "Convert spreadsheets to PDF. Wide sheets may paginate across multiple pages.",
|
|
},
|
|
"word-to-pdf": {
|
|
name: "Word to PDF",
|
|
description: "Convert Word documents to PDF",
|
|
},
|
|
"extract-pages": {
|
|
name: "Extract Pages",
|
|
description: "Pull selected pages into a new PDF",
|
|
},
|
|
"remove-pages": {
|
|
name: "Remove Pages",
|
|
description: "Delete specific pages from a PDF",
|
|
},
|
|
"organize-pdf": {
|
|
name: "Organize PDF",
|
|
description: "Reorder pages with an explicit page order",
|
|
},
|
|
"protect-pdf": {
|
|
name: "Protect PDF",
|
|
description: "Add password protection (AES-256 encryption)",
|
|
},
|
|
"unlock-pdf": {
|
|
name: "Unlock PDF",
|
|
description: "Remove password protection from a PDF",
|
|
},
|
|
"repair-pdf": {
|
|
name: "Repair PDF",
|
|
description: "Attempt to repair a damaged or corrupted PDF",
|
|
},
|
|
"linearize-pdf": {
|
|
name: "Web-Optimize PDF",
|
|
description: "Linearize a PDF for fast web viewing",
|
|
},
|
|
"grayscale-pdf": {
|
|
name: "Grayscale PDF",
|
|
description: "Convert all colors to grayscale",
|
|
},
|
|
"pdfa-convert": {
|
|
name: "PDF/A Convert",
|
|
description: "Convert to archival PDF/A-2",
|
|
},
|
|
"crop-pdf": {
|
|
name: "Crop PDF",
|
|
description: "Crop all pages with a uniform margin",
|
|
},
|
|
"nup-pdf": {
|
|
name: "N-up PDF",
|
|
description: "Arrange multiple pages per sheet",
|
|
},
|
|
"booklet-pdf": {
|
|
name: "Booklet PDF",
|
|
description: "Arrange pages for folding into a booklet",
|
|
},
|
|
"watermark-pdf": {
|
|
name: "Watermark PDF",
|
|
description: "Add a text watermark to every page",
|
|
},
|
|
"pdf-page-numbers": {
|
|
name: "PDF Page Numbers",
|
|
description: "Add page numbers to every page",
|
|
},
|
|
"flatten-pdf": {
|
|
name: "Flatten PDF",
|
|
description: "Bake forms and annotations into page content",
|
|
},
|
|
"redact-pdf": {
|
|
name: "Redact PDF",
|
|
description: "Permanently remove text occurrences (verified true redaction)",
|
|
},
|
|
"pdf-to-text": {
|
|
name: "PDF to Text",
|
|
description: "Extract plain text from a PDF",
|
|
},
|
|
"pdf-to-word": {
|
|
name: "PDF to Word",
|
|
description: "Best for text-based PDFs; scanned pages need OCR",
|
|
},
|
|
"pdf-metadata": {
|
|
name: "PDF Metadata",
|
|
description: "Read and write PDF document metadata",
|
|
},
|
|
"powerpoint-to-pdf": {
|
|
name: "PowerPoint to PDF",
|
|
description: "Convert presentations to PDF",
|
|
},
|
|
"html-to-pdf": {
|
|
name: "HTML to PDF",
|
|
description: "Convert an HTML file to PDF. Remote resources are disabled for privacy.",
|
|
},
|
|
"markdown-to-docx": {
|
|
name: "Markdown to Word",
|
|
description: "Convert a Markdown file to a Word document (DOCX)",
|
|
},
|
|
"markdown-to-html": {
|
|
name: "Markdown to HTML",
|
|
description:
|
|
"Convert a Markdown file to a standalone HTML page. Remote images in the source are left as-is in the output.",
|
|
},
|
|
"markdown-to-pdf": {
|
|
name: "Markdown to PDF",
|
|
description:
|
|
"Convert a Markdown file to a styled PDF. Remote resources are disabled for privacy.",
|
|
},
|
|
"epub-convert": {
|
|
name: "Convert EPUB",
|
|
description:
|
|
"Convert an EPUB to PDF, DOCX, HTML, or Markdown. Remote resources inside the book are not fetched.",
|
|
},
|
|
"to-epub": {
|
|
name: "Convert to EPUB",
|
|
description: "Convert Word, Markdown, HTML, or plain text files to EPUB",
|
|
},
|
|
"csv-excel": {
|
|
name: "CSV to Excel",
|
|
description: "Convert between CSV and Excel (XLSX), both directions",
|
|
},
|
|
"csv-json": {
|
|
name: "CSV to JSON",
|
|
description: "Convert between CSV and JSON, both directions",
|
|
},
|
|
"json-xml": {
|
|
name: "JSON to XML",
|
|
description: "Convert between JSON and XML, both directions",
|
|
},
|
|
"split-csv": {
|
|
name: "Split CSV",
|
|
description: "Split a CSV into smaller files by row count",
|
|
},
|
|
"merge-csvs": {
|
|
name: "Merge CSVs",
|
|
description: "Combine multiple CSV or TSV files with matching columns into one",
|
|
},
|
|
"yaml-json": {
|
|
name: "YAML / JSON",
|
|
description: "Convert between YAML and JSON, both directions",
|
|
},
|
|
"xml-to-csv": {
|
|
name: "XML to CSV",
|
|
description: "Extract repeating elements from XML into a CSV table",
|
|
},
|
|
"create-zip": {
|
|
name: "Create ZIP",
|
|
description: "Bundle multiple files into a single ZIP archive",
|
|
},
|
|
"extract-zip": {
|
|
name: "Extract ZIP",
|
|
description:
|
|
"Safely extract files from a ZIP archive with bomb protection. Single-file archives return the file directly.",
|
|
},
|
|
pipeline: {
|
|
name: "Constructeur de Pipeline",
|
|
description: "Enchainez plusieurs outils dans un flux de travail",
|
|
},
|
|
processing: { canceled: "Processing canceled" },
|
|
mediaPlayer: {
|
|
unsupported: "Your browser does not support this media format.",
|
|
},
|
|
documentView: {
|
|
loadFailed: "Failed to load document.",
|
|
previousPage: "Previous page",
|
|
nextPage: "Next page",
|
|
},
|
|
},
|
|
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",
|
|
},
|
|
"ocr-pdf": {
|
|
quality: "Qualite",
|
|
language: "Langue",
|
|
autoDetect: "Detection automatique",
|
|
pages: "Pages",
|
|
pagesPlaceholder: "all, 1-3, 5",
|
|
pagesHint: "Entrez des numeros de pages ou des plages (ex. 1-3, 5, 8-10). Max 50 pages.",
|
|
submit: "Extraire le texte",
|
|
submitBatch: "Extraire le texte ({count} fichiers)",
|
|
progressLabel: "Extraction du texte du PDF",
|
|
},
|
|
"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.",
|
|
},
|
|
"transcribe-audio": {
|
|
language: "Langue",
|
|
autoDetect: "Detection automatique",
|
|
outputFormat: "Format de sortie",
|
|
plainText: "Texte brut",
|
|
submit: "Transcrire",
|
|
submitBatch: "Transcrire ({count} fichiers)",
|
|
progressLabel: "Transcription de l'audio",
|
|
},
|
|
"auto-subtitles": {
|
|
language: "Langue",
|
|
autoDetect: "Detection automatique",
|
|
format: "Format des sous-titres",
|
|
submit: "Generer les sous-titres",
|
|
submitBatch: "Generer les sous-titres ({count} fichiers)",
|
|
progressLabel: "Generation des sous-titres",
|
|
},
|
|
"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",
|
|
},
|
|
"background-replace": {
|
|
color: "Couleur de fond",
|
|
submit: "Remplacer le fond",
|
|
submitBatch: "Remplacer le fond ({count} fichiers)",
|
|
progressLabel: "Remplacement du fond",
|
|
},
|
|
"blur-background": {
|
|
intensity: "Intensite du flou",
|
|
submit: "Flouter le fond",
|
|
submitBatch: "Flouter le fond ({count} fichiers)",
|
|
progressLabel: "Floutage du fond",
|
|
},
|
|
"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",
|
|
},
|
|
"circle-crop": {
|
|
submit: "Circle Crop",
|
|
submitBatch: "Circle Crop ({count} files)",
|
|
progressLabel: "Cropping to circle",
|
|
},
|
|
duotone: {
|
|
shadow: "Shadow Color",
|
|
highlight: "Highlight Color",
|
|
submit: "Apply Duotone",
|
|
submitBatch: "Apply Duotone ({count} files)",
|
|
progressLabel: "Applying duotone",
|
|
},
|
|
"image-pad": {
|
|
target: "Target Ratio",
|
|
color: "Background Color",
|
|
submit: "Pad Image",
|
|
submitBatch: "Pad Image ({count} files)",
|
|
progressLabel: "Padding image",
|
|
},
|
|
pixelate: {
|
|
blockSize: "Block Size",
|
|
submit: "Pixelate",
|
|
submitBatch: "Pixelate ({count} files)",
|
|
progressLabel: "Pixelating",
|
|
},
|
|
vignette: {
|
|
strength: "Strength",
|
|
color: "Vignette Color",
|
|
submit: "Apply Vignette",
|
|
submitBatch: "Apply Vignette ({count} files)",
|
|
progressLabel: "Applying vignette",
|
|
},
|
|
"gif-webp": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting animation",
|
|
},
|
|
histogram: {
|
|
submit: "Generate Histogram",
|
|
submitBatch: "Generate Histogram ({count} files)",
|
|
progressLabel: "Generating histogram",
|
|
},
|
|
"lqip-placeholder": {
|
|
width: "Width",
|
|
blur: "Blur",
|
|
submit: "Generate Placeholder",
|
|
submitBatch: "Generate Placeholder ({count} files)",
|
|
progressLabel: "Generating placeholder",
|
|
},
|
|
"sprite-sheet": {
|
|
columns: "Columns",
|
|
padding: "Padding",
|
|
background: "Background Color",
|
|
submit: "Create Sprite Sheet",
|
|
submitBatch: "Create Sprite Sheet",
|
|
progressLabel: "Creating sprite sheet",
|
|
},
|
|
"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()",
|
|
},
|
|
"barcode-generate": {
|
|
text: "Text",
|
|
type: "Barcode Type",
|
|
scale: "Scale",
|
|
includeText: "Include Text",
|
|
submit: "Generate Barcode",
|
|
download: "Download Barcode",
|
|
},
|
|
"chart-maker": {
|
|
kind: "Chart Type",
|
|
title: "Title",
|
|
width: "Width",
|
|
height: "Height",
|
|
submit: "Create Chart",
|
|
submitBatch: "Create Chart ({count} files)",
|
|
progressLabel: "Creating chart",
|
|
},
|
|
"enhance-faces-standalone": {
|
|
model: "Modele",
|
|
fast: "Rapide",
|
|
balanced: "Equilibre",
|
|
best: "Optimal",
|
|
},
|
|
"convert-video": {
|
|
format: "Output format",
|
|
quality: "Quality",
|
|
high: "High",
|
|
balanced: "Balanced",
|
|
small: "Smallest",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"compress-video": {
|
|
quality: "Compression",
|
|
light: "Light",
|
|
balanced: "Balanced",
|
|
strong: "Strong",
|
|
resolution: "Resolution",
|
|
original: "Original",
|
|
submit: "Compress",
|
|
submitBatch: "Compress ({count} files)",
|
|
progressLabel: "Compressing",
|
|
},
|
|
"trim-video": {
|
|
start: "Start (seconds)",
|
|
end: "End (seconds)",
|
|
precise: "Frame-accurate (re-encodes)",
|
|
submit: "Trim",
|
|
submitBatch: "Trim ({count} files)",
|
|
progressLabel: "Trimming",
|
|
},
|
|
"mute-video": {
|
|
submit: "Remove audio",
|
|
submitBatch: "Remove audio ({count} files)",
|
|
progressLabel: "Muting",
|
|
},
|
|
"video-to-gif": {
|
|
fps: "Frames per second",
|
|
width: "Width (px)",
|
|
start: "Start (seconds)",
|
|
duration: "Duration (seconds)",
|
|
submit: "Create GIF",
|
|
submitBatch: "Create GIFs ({count} files)",
|
|
progressLabel: "Creating GIF",
|
|
},
|
|
"resize-video": {
|
|
preset: "Preset",
|
|
width: "Width (px)",
|
|
height: "Height (px)",
|
|
hint: "Leave one dimension empty to keep aspect ratio",
|
|
submit: "Resize",
|
|
submitBatch: "Resize ({count} files)",
|
|
progressLabel: "Resizing",
|
|
},
|
|
"crop-video": {
|
|
width: "Width (px)",
|
|
height: "Height (px)",
|
|
x: "X offset",
|
|
y: "Y offset",
|
|
submit: "Crop",
|
|
submitBatch: "Crop ({count} files)",
|
|
progressLabel: "Cropping",
|
|
},
|
|
"rotate-video": {
|
|
transform: "Transform",
|
|
cw90: "Rotate 90 clockwise",
|
|
ccw90: "Rotate 90 counter-clockwise",
|
|
rotate180: "Rotate 180",
|
|
hflip: "Flip horizontal",
|
|
vflip: "Flip vertical",
|
|
submit: "Rotate",
|
|
submitBatch: "Rotate ({count} files)",
|
|
progressLabel: "Rotating",
|
|
},
|
|
"change-fps": {
|
|
fps: "Frames per second",
|
|
submit: "Change FPS",
|
|
submitBatch: "Change FPS ({count} files)",
|
|
progressLabel: "Changing FPS",
|
|
},
|
|
"video-color": {
|
|
brightness: "Brightness",
|
|
contrast: "Contrast",
|
|
saturation: "Saturation",
|
|
gamma: "Gamma",
|
|
submit: "Apply",
|
|
submitBatch: "Apply ({count} files)",
|
|
progressLabel: "Adjusting color",
|
|
},
|
|
"video-speed": {
|
|
factor: "Speed factor",
|
|
keepPitch: "Keep original pitch",
|
|
submit: "Change speed",
|
|
submitBatch: "Change speed ({count} files)",
|
|
progressLabel: "Changing speed",
|
|
},
|
|
"reverse-video": {
|
|
hint: "Limited to clips up to 5 minutes",
|
|
submit: "Reverse",
|
|
submitBatch: "Reverse ({count} files)",
|
|
progressLabel: "Reversing",
|
|
},
|
|
"video-loudnorm": {
|
|
hint: "Normalizes audio to EBU R128 broadcast standard",
|
|
submit: "Normalize",
|
|
submitBatch: "Normalize ({count} files)",
|
|
progressLabel: "Normalizing",
|
|
},
|
|
"aspect-pad": {
|
|
target: "Target ratio",
|
|
color: "Background color",
|
|
colorHint: "Hex color, e.g. #000000",
|
|
submit: "Pad",
|
|
submitBatch: "Pad ({count} files)",
|
|
progressLabel: "Padding",
|
|
},
|
|
"blur-pad": {
|
|
target: "Target ratio",
|
|
blur: "Blur strength",
|
|
submit: "Pad",
|
|
submitBatch: "Pad ({count} files)",
|
|
progressLabel: "Padding",
|
|
},
|
|
"watermark-video": {
|
|
text: "Watermark text",
|
|
position: "Position",
|
|
fontSize: "Font size",
|
|
opacity: "Opacity",
|
|
color: "Color",
|
|
colorHint: "Hex color, e.g. #ffffff",
|
|
submit: "Watermark",
|
|
submitBatch: "Watermark ({count} files)",
|
|
progressLabel: "Watermarking",
|
|
},
|
|
"stabilize-video": {
|
|
smoothing: "Smoothing",
|
|
hint: "Runs two passes and takes longer than most tools",
|
|
submit: "Stabilize",
|
|
submitBatch: "Stabilize ({count} files)",
|
|
progressLabel: "Stabilizing",
|
|
},
|
|
"gif-to-video": {
|
|
format: "Output format",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"video-to-webp": {
|
|
fps: "Frames per second",
|
|
width: "Width (px)",
|
|
quality: "Quality",
|
|
loop: "Loop animation",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"video-to-frames": {
|
|
mode: "Extraction mode",
|
|
modeAll: "All frames",
|
|
modeNth: "Every Nth frame",
|
|
modeTimestamps: "Specific timestamps",
|
|
n: "Take every Nth frame",
|
|
timestamps: "Timestamps (seconds)",
|
|
timestampsHint: "Comma-separated, e.g. 0.5, 2, 4.5",
|
|
format: "Image format",
|
|
submit: "Extract Frames",
|
|
submitBatch: "Extract Frames ({count} files)",
|
|
progressLabel: "Extracting frames",
|
|
},
|
|
"merge-videos": {
|
|
hint: "Files are joined in upload order",
|
|
submit: "Merge",
|
|
submitBatch: "Merge ({count} files)",
|
|
progressLabel: "Merging",
|
|
},
|
|
"replace-audio": {
|
|
hint: "Upload the video first, then the audio",
|
|
submit: "Replace Audio",
|
|
submitBatch: "Replace Audio ({count} files)",
|
|
progressLabel: "Replacing audio",
|
|
},
|
|
"burn-subtitles": {
|
|
fontSize: "Font size",
|
|
hint: "Upload a video and a subtitle file (.srt or .vtt)",
|
|
submit: "Burn Subtitles",
|
|
submitBatch: "Burn Subtitles ({count} files)",
|
|
progressLabel: "Burning subtitles",
|
|
},
|
|
"embed-subtitles": {
|
|
language: "Language code",
|
|
languageHint: "Three-letter ISO 639-2 code, e.g. eng, spa, fra",
|
|
submit: "Embed Subtitles",
|
|
submitBatch: "Embed Subtitles ({count} files)",
|
|
progressLabel: "Embedding subtitles",
|
|
},
|
|
"extract-subtitles": {
|
|
submit: "Extract Subtitles",
|
|
submitBatch: "Extract Subtitles ({count} files)",
|
|
progressLabel: "Extracting subtitles",
|
|
},
|
|
"images-to-video": {
|
|
secondsPerImage: "Seconds per image",
|
|
resolution: "Resolution",
|
|
fps: "Frames per second",
|
|
submit: "Create Video",
|
|
submitBatch: "Create Video ({count} files)",
|
|
progressLabel: "Creating slideshow",
|
|
},
|
|
"video-metadata": {
|
|
hint: "Metadata report appears in the result",
|
|
submit: "Strip Metadata",
|
|
submitBatch: "Strip Metadata ({count} files)",
|
|
progressLabel: "Stripping metadata",
|
|
},
|
|
"convert-audio": {
|
|
format: "Output format",
|
|
bitrate: "Bitrate (kbps)",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"trim-audio": {
|
|
start: "Start (seconds)",
|
|
end: "End (seconds)",
|
|
submit: "Trim",
|
|
submitBatch: "Trim ({count} files)",
|
|
progressLabel: "Trimming",
|
|
},
|
|
"extract-audio": {
|
|
format: "Output format",
|
|
submit: "Extract",
|
|
submitBatch: "Extract ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
"volume-adjust": {
|
|
"gain-db": "Gain (dB)",
|
|
submit: "Adjust Volume",
|
|
submitBatch: "Adjust Volume ({count} files)",
|
|
progressLabel: "Adjusting volume",
|
|
},
|
|
"normalize-audio": {
|
|
hint: "EBU R128 loudness normalization",
|
|
submit: "Normalize",
|
|
submitBatch: "Normalize ({count} files)",
|
|
progressLabel: "Normalizing",
|
|
},
|
|
"fade-audio": {
|
|
"fade-in-s": "Fade in (seconds)",
|
|
"fade-out-s": "Fade out (seconds)",
|
|
submit: "Apply Fade",
|
|
submitBatch: "Apply Fade ({count} files)",
|
|
progressLabel: "Applying fade",
|
|
},
|
|
"reverse-audio": {
|
|
submit: "Reverse",
|
|
submitBatch: "Reverse ({count} files)",
|
|
progressLabel: "Reversing",
|
|
},
|
|
"audio-speed": {
|
|
factor: "Speed factor",
|
|
submit: "Change Speed",
|
|
submitBatch: "Change Speed ({count} files)",
|
|
progressLabel: "Changing speed",
|
|
},
|
|
"pitch-shift": {
|
|
semitones: "Semitones",
|
|
hint: "0 semitones is not allowed",
|
|
submit: "Shift Pitch",
|
|
submitBatch: "Shift Pitch ({count} files)",
|
|
progressLabel: "Shifting pitch",
|
|
},
|
|
"audio-channels": {
|
|
mode: "Channel mode",
|
|
"stereo-to-mono": "Stereo to mono",
|
|
"mono-to-stereo": "Mono to stereo",
|
|
swap: "Swap left/right",
|
|
submit: "Convert Channels",
|
|
submitBatch: "Convert Channels ({count} files)",
|
|
progressLabel: "Converting channels",
|
|
},
|
|
"silence-removal": {
|
|
"threshold-db": "Silence threshold (dB)",
|
|
"min-silence-s": "Minimum silence duration (seconds)",
|
|
submit: "Remove Silence",
|
|
submitBatch: "Remove Silence ({count} files)",
|
|
progressLabel: "Removing silence",
|
|
},
|
|
"noise-reduction": {
|
|
strength: "Strength",
|
|
light: "Light",
|
|
medium: "Medium",
|
|
strong: "Strong",
|
|
submit: "Reduce Noise",
|
|
submitBatch: "Reduce Noise ({count} files)",
|
|
progressLabel: "Reducing noise",
|
|
},
|
|
"merge-audio": {
|
|
format: "Output format",
|
|
mp3: "MP3",
|
|
wav: "WAV",
|
|
flac: "FLAC",
|
|
m4a: "M4A",
|
|
"order-hint": "Files will be joined in upload order",
|
|
submit: "Merge Audio",
|
|
submitBatch: "Merge Audio ({count} files)",
|
|
progressLabel: "Merging audio",
|
|
},
|
|
"split-audio": {
|
|
mode: "Split mode",
|
|
time: "By time",
|
|
parts: "Equal parts",
|
|
silence: "By silence",
|
|
"segment-s": "Segment length (seconds)",
|
|
"num-parts": "Number of parts",
|
|
"threshold-db": "Silence threshold (dB)",
|
|
"min-silence-s": "Minimum silence duration (seconds)",
|
|
submit: "Split Audio",
|
|
submitBatch: "Split Audio ({count} files)",
|
|
progressLabel: "Splitting audio",
|
|
},
|
|
"ringtone-maker": {
|
|
"start-s": "Start time (seconds)",
|
|
"duration-s": "Duration (seconds)",
|
|
"max-hint": "Maximum 30 seconds",
|
|
submit: "Create Ringtone",
|
|
submitBatch: "Create Ringtone ({count} files)",
|
|
progressLabel: "Creating ringtone",
|
|
},
|
|
"waveform-image": {
|
|
width: "Width (px)",
|
|
height: "Height (px)",
|
|
color: "Waveform color",
|
|
submit: "Generate Waveform",
|
|
submitBatch: "Generate Waveform ({count} files)",
|
|
progressLabel: "Generating waveform",
|
|
},
|
|
"audio-metadata": {
|
|
strip: "Strip all metadata",
|
|
title: "Title",
|
|
artist: "Artist",
|
|
album: "Album",
|
|
submit: "Apply Metadata",
|
|
submitBatch: "Apply Metadata ({count} files)",
|
|
progressLabel: "Applying metadata",
|
|
},
|
|
"merge-pdf": {
|
|
addFiles: "Add PDFs to merge",
|
|
needTwo: "At least two PDFs are required",
|
|
orderHint: "{count} PDFs will merge in this order",
|
|
submit: "Merge",
|
|
submitBatch: "Merge ({count} files)",
|
|
progressLabel: "Merging",
|
|
},
|
|
"split-pdf": {
|
|
mode: "Split mode",
|
|
range: "Page range",
|
|
rangeHint: "e.g. 1-3, 5, 7-z",
|
|
everyN: "Pages per part",
|
|
submit: "Split",
|
|
submitBatch: "Split ({count} files)",
|
|
progressLabel: "Splitting",
|
|
},
|
|
"compress-pdf": {
|
|
preset: "Quality preset",
|
|
screen: "Screen (smallest)",
|
|
ebook: "Ebook (balanced)",
|
|
printer: "Printer (best quality)",
|
|
submit: "Compress",
|
|
submitBatch: "Compress ({count} files)",
|
|
progressLabel: "Compressing",
|
|
},
|
|
"rotate-pdf": {
|
|
angle: "Rotation angle",
|
|
range: "Page range",
|
|
rangeHint: "e.g. 1-3, 5, 1-z (all pages)",
|
|
submit: "Rotate",
|
|
submitBatch: "Rotate ({count} files)",
|
|
progressLabel: "Rotating",
|
|
},
|
|
"convert-document": {
|
|
format: "Output format",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"convert-presentation": {
|
|
format: "Output format",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"convert-spreadsheet": {
|
|
format: "Output format",
|
|
hint: "Multi-sheet workbooks export the first sheet to CSV.",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"excel-to-pdf": {
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"powerpoint-to-pdf": {
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"word-to-pdf": {
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"extract-pages": {
|
|
range: "Page range",
|
|
rangeHint: "e.g. 1-3, 5, 7-z",
|
|
submit: "Extract",
|
|
submitBatch: "Extract ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
"remove-pages": {
|
|
pages: "Pages to remove",
|
|
pagesHint: "e.g. 2, 4-6, z (last page)",
|
|
submit: "Remove",
|
|
submitBatch: "Remove ({count} files)",
|
|
progressLabel: "Removing",
|
|
},
|
|
"organize-pdf": {
|
|
order: "Page order",
|
|
orderHint: "e.g. 3,1,2 or 1-z (identity)",
|
|
submit: "Reorder",
|
|
submitBatch: "Reorder ({count} files)",
|
|
progressLabel: "Reordering",
|
|
},
|
|
"protect-pdf": {
|
|
userPassword: "User password",
|
|
ownerPassword: "Owner password (optional)",
|
|
ownerPasswordHint: "Defaults to user password if empty",
|
|
submit: "Protect",
|
|
submitBatch: "Protect ({count} files)",
|
|
progressLabel: "Encrypting",
|
|
},
|
|
"unlock-pdf": {
|
|
password: "Password",
|
|
submit: "Unlock",
|
|
submitBatch: "Unlock ({count} files)",
|
|
progressLabel: "Decrypting",
|
|
},
|
|
"repair-pdf": {
|
|
submit: "Repair",
|
|
submitBatch: "Repair ({count} files)",
|
|
progressLabel: "Repairing",
|
|
},
|
|
"linearize-pdf": {
|
|
submit: "Optimize",
|
|
submitBatch: "Optimize ({count} files)",
|
|
progressLabel: "Linearizing",
|
|
},
|
|
"grayscale-pdf": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"pdfa-convert": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"crop-pdf": {
|
|
margin: "Margin (points)",
|
|
submit: "Crop",
|
|
submitBatch: "Crop ({count} files)",
|
|
progressLabel: "Cropping",
|
|
},
|
|
"nup-pdf": {
|
|
perSheet: "Pages per sheet",
|
|
submit: "Arrange",
|
|
submitBatch: "Arrange ({count} files)",
|
|
progressLabel: "Arranging",
|
|
},
|
|
"booklet-pdf": {
|
|
perSheet: "Pages per sheet",
|
|
submit: "Create Booklet",
|
|
submitBatch: "Create Booklet ({count} files)",
|
|
progressLabel: "Creating booklet",
|
|
},
|
|
"watermark-pdf": {
|
|
text: "Watermark text",
|
|
position: "Position",
|
|
fontSize: "Font size",
|
|
opacity: "Opacity",
|
|
rotation: "Rotation",
|
|
submit: "Watermark",
|
|
submitBatch: "Watermark ({count} files)",
|
|
progressLabel: "Watermarking",
|
|
},
|
|
"pdf-page-numbers": {
|
|
position: "Position",
|
|
fontSize: "Font size",
|
|
submit: "Add Numbers",
|
|
submitBatch: "Add Numbers ({count} files)",
|
|
progressLabel: "Numbering",
|
|
},
|
|
"flatten-pdf": {
|
|
submit: "Flatten",
|
|
submitBatch: "Flatten ({count} files)",
|
|
progressLabel: "Flattening",
|
|
},
|
|
"redact-pdf": {
|
|
terms: "Terms to redact",
|
|
termsHint: "One term per line (max 50)",
|
|
caseSensitive: "Case sensitive",
|
|
submit: "Redact",
|
|
submitBatch: "Redact ({count} files)",
|
|
progressLabel: "Redacting",
|
|
},
|
|
"pdf-to-text": {
|
|
submit: "Extract Text",
|
|
submitBatch: "Extract Text ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
"pdf-to-word": {
|
|
hint: "Best for text-based PDFs; scanned pages need OCR",
|
|
submit: "Convert to Word",
|
|
submitBatch: "Convert to Word ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"pdf-metadata": {
|
|
title: "Title",
|
|
author: "Author",
|
|
subject: "Subject",
|
|
keywords: "Keywords",
|
|
submit: "Set Metadata",
|
|
submitBatch: "Set Metadata ({count} files)",
|
|
progressLabel: "Setting metadata",
|
|
},
|
|
"html-to-pdf": {
|
|
hint: "Remote resources are disabled for privacy.",
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert to PDF ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"markdown-to-docx": {
|
|
submit: "Convert to DOCX",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"markdown-to-html": {
|
|
hint: "Remote images in the source are left as-is in the output.",
|
|
submit: "Convert to HTML",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"markdown-to-pdf": {
|
|
hint: "Remote resources are disabled for privacy.",
|
|
submit: "Convert to PDF",
|
|
submitBatch: "Convert to PDF ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"epub-convert": {
|
|
format: "Output format",
|
|
hint: "Remote resources inside the book are not fetched.",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"to-epub": {
|
|
submit: "Convert to EPUB",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"csv-excel": {
|
|
sheet: "Worksheet number",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"csv-json": {
|
|
pretty: "Pretty print",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"json-xml": {
|
|
pretty: "Pretty print",
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"split-csv": {
|
|
rowsPerFile: "Rows per file",
|
|
keepHeader: "Keep header in each file",
|
|
submit: "Split",
|
|
submitBatch: "Split ({count} files)",
|
|
progressLabel: "Splitting",
|
|
},
|
|
"merge-csvs": {
|
|
submit: "Merge",
|
|
submitBatch: "Merge ({count} files)",
|
|
progressLabel: "Merging",
|
|
},
|
|
"yaml-json": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"xml-to-csv": {
|
|
submit: "Convert",
|
|
submitBatch: "Convert ({count} files)",
|
|
progressLabel: "Converting",
|
|
},
|
|
"create-zip": {
|
|
submit: "Create ZIP",
|
|
submitBatch: "Create ZIP ({count} files)",
|
|
progressLabel: "Zipping",
|
|
},
|
|
"extract-zip": {
|
|
submit: "Extract",
|
|
submitBatch: "Extract ({count} files)",
|
|
progressLabel: "Extracting",
|
|
},
|
|
},
|
|
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",
|
|
disabledByAdmin: "This tool has been disabled by your administrator",
|
|
browseOtherTools: "Browse other tools",
|
|
privacyNote: "Files are processed on your server and never leave your network",
|
|
andMore: "and {count} more",
|
|
adjustSettings: "Adjust settings",
|
|
startOver: "Start over with a new file",
|
|
backToTools: "Back to Tools",
|
|
original: "Original",
|
|
processed: "Processed",
|
|
saved: "Saved",
|
|
noChange: "no change",
|
|
download: "Download",
|
|
},
|
|
homePage: {
|
|
generatingPreview: "Generation de l'apercu...",
|
|
loadingPreview: "Chargement de l'apercu...",
|
|
changeFile: "Changer de fichier",
|
|
quickActions: "Actions rapides",
|
|
allTools: "Tous les outils",
|
|
searchPlaceholder: "Search {count} tools...",
|
|
recent: "Recent",
|
|
popular: "Popular",
|
|
browseByCategory: "Browse by Category",
|
|
gettingStarted: "Getting Started",
|
|
noToolsMatch: "No tools match '{query}'",
|
|
clearSearch: "Clear search",
|
|
all: "All",
|
|
documents: "Documents",
|
|
data: "Data",
|
|
toolCount: "{count} tools",
|
|
},
|
|
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",
|
|
usage: "Usage",
|
|
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",
|
|
supportBundleButton: "Download Support Bundle",
|
|
supportBundleDescription:
|
|
"Download a diagnostic zip with redacted config, logs, and job data for troubleshooting.",
|
|
supportBundleFailed: "Failed to download support bundle.",
|
|
},
|
|
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.",
|
|
adminHeading: "Admin Security Settings",
|
|
adminDescription: "Enterprise security policy settings. These apply to all users.",
|
|
sessionIdleTimeout: "Session Idle Timeout (minutes)",
|
|
sessionIdleTimeoutDesc: "Automatically log out idle sessions. 0 = disabled.",
|
|
maxSessionsPerUser: "Max Sessions Per User",
|
|
maxSessionsPerUserDesc: "Limit concurrent sessions per user. 0 = unlimited.",
|
|
mfaPolicy: "MFA Policy",
|
|
mfaPolicyDesc: "Require multi-factor authentication for users.",
|
|
mfaPolicyOptional: "Optional",
|
|
mfaPolicyAdminsOnly: "Required for admins",
|
|
mfaPolicyRequired: "Required for all users",
|
|
ssoEnforcement: "SSO Enforcement",
|
|
ssoEnforcementDesc: "Require SSO login for all non-break-glass users.",
|
|
ssoBreakGlassUsername: "Break Glass Admin Username",
|
|
ssoBreakGlassUsernameDesc:
|
|
"This admin can still log in with local credentials when SSO is enforced.",
|
|
passwordMinLength: "Minimum Password Length",
|
|
passwordMinLengthDesc: "Minimum number of characters required for passwords.",
|
|
passwordRequireUppercase: "Require Uppercase",
|
|
passwordRequireUppercaseDesc: "Require at least one uppercase letter.",
|
|
passwordRequireNumber: "Require Number",
|
|
passwordRequireNumberDesc: "Require at least one number.",
|
|
passwordRequireSpecial: "Require Special Character",
|
|
passwordRequireSpecialDesc: "Require at least one special character.",
|
|
passwordPolicyHeading: "Password Policy",
|
|
securitySettingsSaved: "Security settings saved",
|
|
securitySettingsFailed: "Failed to save security settings",
|
|
},
|
|
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",
|
|
teamStorageQuota: "Storage Quota (MB)",
|
|
teamStorageQuotaDesc: "Maximum storage for this team in MB. Leave empty for no limit.",
|
|
teamRetentionHours: "Retention (hours)",
|
|
teamRetentionHoursDesc:
|
|
"Processing file retention for this team. Leave empty to use global default.",
|
|
quotaSaved: "Team settings saved",
|
|
},
|
|
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",
|
|
},
|
|
usage: {
|
|
heading: "Usage",
|
|
description: "Local usage statistics from jobs and file storage.",
|
|
periodLabel: "Period",
|
|
days7: "7 days",
|
|
days30: "30 days",
|
|
days90: "90 days",
|
|
jobsPerDayHeading: "Jobs per day",
|
|
topToolsHeading: "Top tools",
|
|
perUserHeading: "Per-user volume",
|
|
durationsHeading: "Duration percentiles",
|
|
noData: "No data for this period.",
|
|
dayColumn: "Day",
|
|
totalColumn: "Total",
|
|
completedColumn: "Completed",
|
|
failedColumn: "Failed",
|
|
toolColumn: "Tool",
|
|
runsColumn: "Runs",
|
|
userColumn: "User",
|
|
bytesInColumn: "Bytes in",
|
|
poolColumn: "Pool",
|
|
p50Column: "p50",
|
|
p95Column: "p95",
|
|
storageHeading: "Library storage",
|
|
storageFiles: "{count} files",
|
|
unknownUser: "(unknown)",
|
|
storageByTeam: "Storage by Team",
|
|
teamColumn: "Team",
|
|
storageColumn: "Storage",
|
|
usersColumn: "Users",
|
|
},
|
|
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",
|
|
},
|
|
dataRetention: {
|
|
title: "Data Retention",
|
|
fileMaxAgeHours: "Processing file retention (hours)",
|
|
fileMaxAgeHoursDesc: "How long to keep uploaded and processed files. Default: 72 hours.",
|
|
jobsRetentionDays: "Job record retention (days)",
|
|
jobsRetentionDaysDesc: "How long to keep job metadata. 0 = keep forever. Default: 30 days.",
|
|
auditRetentionDays: "Audit log retention (days)",
|
|
auditRetentionDaysDesc:
|
|
"How long to keep audit log entries. 0 = keep forever. Default: forever.",
|
|
},
|
|
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...",
|
|
importBundle: "Import Bundle",
|
|
importDescription: "Upload a .tar.gz bundle archive exported from another installation.",
|
|
importButton: "Import from file",
|
|
importing: "Importing...",
|
|
importSuccess: "Bundle imported successfully.",
|
|
importError: "Bundle import failed: {error}",
|
|
},
|
|
about: {
|
|
heading: "A propos",
|
|
appName: "SnapOtter",
|
|
appDescription:
|
|
"Une suite de traitement d'images auto-hebergee, axee sur la confidentialite, avec 70+ 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.",
|
|
samlAuthFailed: "SAML authentication failed. Please try again.",
|
|
samlUserNotAuthorized:
|
|
"Your account is not authorized to access this application. Contact your administrator.",
|
|
samlUserLimitReached: "User limit reached. Contact your administrator.",
|
|
ssoEnforcedLocalRestricted: "Local login is restricted to authorized administrators.",
|
|
mfaRequired: "Enter your authentication code",
|
|
mfaRecoveryHint: "You can also use a recovery code",
|
|
verify: "Verify",
|
|
verifying: "Verifying...",
|
|
mfaInvalidCode: "Invalid code. Please try again.",
|
|
mfaEnrollmentRequired:
|
|
"Your organization requires multi-factor authentication. Please set up MFA in your account settings.",
|
|
methodSaml: "SAML",
|
|
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.",
|
|
"70+ 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",
|
|
dropToAdd: "Deposer pour ajouter des fichiers",
|
|
dropToReplace: "Deposer pour remplacer le fichier",
|
|
},
|
|
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}",
|
|
repairRequired: "Repair Required",
|
|
repairDescription: "Some model files are missing or corrupted. Repair will re-download them.",
|
|
repairButton: "Repair {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;
|