diff --git a/public/locales/da/common.json b/public/locales/da/common.json
new file mode 100644
index 0000000..f8e098d
--- /dev/null
+++ b/public/locales/da/common.json
@@ -0,0 +1,361 @@
+{
+ "nav": {
+ "home": "Hjem",
+ "about": "Om",
+ "contact": "Kontakt",
+ "licensing": "licensing",
+ "allTools": "Alle værktøjer",
+ "openMainMenu": "Åbn hovedmenu",
+ "language": "Sprog"
+ },
+ "donation": {
+ "message": "Elsker du BentoPDF? Hjælp os med at holde det gratis og open source!",
+ "button": "Donér"
+ },
+ "hero": {
+ "title": "Den",
+ "pdfToolkit": "PDF-værktøjskasse",
+ "builtForPrivacy": "bygget til privatliv",
+ "noSignups": "Ingen tilmeldinger",
+ "unlimitedUse": "Ubegrænset brug",
+ "worksOffline": "Virker offline",
+ "startUsing": "Start med at bruge det nu"
+ },
+ "usedBy": {
+ "title": "Bruges af virksomheder og personer der arbejder hos"
+ },
+ "features": {
+ "title": "Hvorfor vælge",
+ "bentoPdf": "BentoPDF?",
+ "noSignup": {
+ "title": "Ingen tilmelding",
+ "description": "Start med det samme, ingen konti eller e-mails."
+ },
+ "noUploads": {
+ "title": "Ingen uploads",
+ "description": "100% klientside – dine filer forlader aldrig din enhed."
+ },
+ "foreverFree": {
+ "title": "Altid gratis",
+ "description": "Alle værktøjer, ingen prøveperioder, ingen betalingsmure."
+ },
+ "noLimits": {
+ "title": "Ingen begrænsninger",
+ "description": "Brug det så meget du vil, ingen skjulte grænser."
+ },
+ "batchProcessing": {
+ "title": "Batchbehandling",
+ "description": "Håndter ubegrænsede PDF'er på én gang."
+ },
+ "lightningFast": {
+ "title": "Lynhurtigt",
+ "description": "Behandl PDF’er øjeblikkeligt, uden ventetid eller forsinkelser."
+ }
+ },
+ "tools": {
+ "title": "Kom i gang med",
+ "toolsLabel": "Værktøjer",
+ "subtitle": "Klik på et værktøj for at åbne fil-upload",
+ "searchPlaceholder": "Søg efter et værktøj (f.eks. 'split', 'organiser'...)",
+ "backToTools": "Tilbage til værktøjer",
+ "firstLoadNotice": "Første indlæsning tager et øjeblik, mens vi downloader konverteringsmotoren. Derefter vil alt indlæses øjeblikkeligt."
+ },
+ "upload": {
+ "clickToSelect": "Klik for at vælge en fil",
+ "orDragAndDrop": "eller træk og slip",
+ "pdfOrImages": "PDF’er eller billeder",
+ "filesNeverLeave": "Dine filer forlader aldrig din enhed.",
+ "addMore": "Tilføj flere filer",
+ "clearAll": "Ryd alle",
+ "clearFiles": "Ryd filer",
+ "hints": {
+ "singlePdf": "En enkelt PDF-fil",
+ "pdfFile": "PDF-fil",
+ "multiplePdfs2": "Flere PDF-filer (mindst 2)",
+ "bmpImages": "BMP-billeder",
+ "oneOrMorePdfs": "En eller flere PDF-filer",
+ "pdfDocuments": "PDF-dokumenter",
+ "oneOrMoreCsv": "En eller flere CSV-filer",
+ "multiplePdfsSupported": "Flere PDF-filer understøttet",
+ "singleOrMultiplePdfs": "Enkelt eller flere PDF-filer understøttet",
+ "singlePdfFile": "Enkelt PDF-fil",
+ "pdfWithForms": "PDF-fil med formularfelter",
+ "heicImages": "HEIC/HEIF-billeder",
+ "jpgImages": "JPG, JPEG, JP2, JPX-billeder",
+ "pdfsOrImages": "PDF’er eller billeder",
+ "oneOrMoreOdt": "En eller flere ODT-filer",
+ "singlePdfOnly": "Kun én PDF-fil",
+ "pdfFiles": "PDF-filer",
+ "multiplePdfs": "Flere PDF-filer",
+ "pngImages": "PNG-billeder",
+ "pdfFilesOneOrMore": "PDF-filer (en eller flere)",
+ "oneOrMoreRtf": "En eller flere RTF-filer",
+ "svgGraphics": "SVG-grafik",
+ "tiffImages": "TIFF-billeder",
+ "webpImages": "WebP-billeder"
+ }
+ },
+ "howItWorks": {
+ "title": "Sådan fungerer det",
+ "step1": "Klik eller træk og slip din fil for at starte",
+ "step2": "Klik på behandl-knappen for at starte",
+ "step3": "Gem din behandlede fil med det samme"
+ },
+ "relatedTools": {
+ "title": "Relaterede PDF-værktøjer"
+ },
+ "loader": {
+ "processing": "Behandler..."
+ },
+ "alert": {
+ "title": "Advarsel",
+ "ok": "OK"
+ },
+ "preview": {
+ "title": "Dokumentforhåndsvisning",
+ "downloadAsPdf": "Download som PDF",
+ "close": "Luk"
+ },
+ "settings": {
+ "title": "Indstillinger",
+ "shortcuts": "Genveje",
+ "preferences": "Præferencer",
+ "displayPreferences": "Visningspræferencer",
+ "searchShortcuts": "Søg efter genveje...",
+ "shortcutsInfo": "Tryk og hold taster nede for at sætte en genvej. Ændringer gemmes automatisk.",
+ "shortcutsWarning": "⚠️ Undgå almindelige browsergenveje (Cmd/Ctrl+W, Cmd/Ctrl+T, Cmd/Ctrl+N osv.), da de muligvis ikke fungerer stabilt.",
+ "import": "Importér",
+ "export": "Eksportér",
+ "resetToDefaults": "Nulstil til standard",
+ "fullWidthMode": "Fuld bredde-tilstand",
+ "fullWidthDescription": "Brug hele skærmbredden til alle værktøjer i stedet for en centreret container",
+ "settingsAutoSaved": "Indstillinger gemmes automatisk",
+ "clickToSet": "Klik for at vælge",
+ "pressKeys": "Tryk på taster...",
+ "warnings": {
+ "alreadyInUse": "Genvej bruges allerede",
+ "assignedTo": "er allerede tildelt:",
+ "chooseDifferent": "Vælg venligst en anden genvej.",
+ "reserved": "Advarsel om reserveret genvej",
+ "commonlyUsed": "bruges ofte til:",
+ "unreliable": "Denne genvej fungerer muligvis ikke stabilt eller kan konfliktere med browser/system.",
+ "useAnyway": "Vil du bruge den alligevel?",
+ "resetTitle": "Nulstil genveje",
+ "resetMessage": "Er du sikker på, at du vil nulstille alle genveje til standard?
Denne handling kan ikke fortrydes.",
+ "importSuccessTitle": "Import gennemført",
+ "importSuccessMessage": "Genveje importeret!",
+ "importFailTitle": "Import mislykkedes",
+ "importFailMessage": "Kunne ikke importere genveje. Ugyldigt filformat."
+ }
+ },
+ "warning": {
+ "title": "Advarsel",
+ "cancel": "Annuller",
+ "proceed": "Fortsæt"
+ },
+ "compliance": {
+ "title": "Dine data forlader aldrig din enhed",
+ "weKeep": "Vi holder",
+ "yourInfoSafe": "dine oplysninger sikre",
+ "byFollowingStandards": "ved at følge globale sikkerhedsstandarder.",
+ "processingLocal": "Al behandling foregår lokalt på din enhed.",
+ "gdpr": {
+ "title": "GDPR-overholdelse",
+ "description": "Beskytter persondata og privatliv for personer i EU."
+ },
+ "ccpa": {
+ "title": "CCPA-overholdelse",
+ "description": "Giver Californiens borgere rettigheder over deres personlige oplysninger."
+ },
+ "hipaa": {
+ "title": "HIPAA-overholdelse",
+ "description": "Fastlægger krav til håndtering af følsomme sundhedsoplysninger i USA."
+ }
+ },
+ "faq": {
+ "title": "Ofte stillede",
+ "questions": "Spørgsmål",
+ "sectionTitle": "Ofte stillede spørgsmål",
+ "isFree": {
+ "question": "Er BentoPDF virkelig gratis?",
+ "answer": "Ja, absolut. Alle værktøjer er 100% gratis at bruge, uden filgrænser, uden tilmeldinger og uden vandmærker."
+ },
+ "areFilesSecure": {
+ "question": "Er mine filer sikre? Hvor bliver de behandlet?",
+ "answer": "Dine filer er så sikre som muligt, fordi de aldrig forlader din computer. Alt behandles direkte i din browser."
+ },
+ "platforms": {
+ "question": "Virker det på Mac, Windows og mobil?",
+ "answer": "Ja! BentoPDF virker på alle moderne browsere, uanset styresystem."
+ },
+ "gdprCompliant": {
+ "question": "Er BentoPDF GDPR-kompatibel?",
+ "answer": "Ja. Da vi ikke indsamler eller behandler dine filer på vores servere, er dine data altid under din kontrol."
+ },
+ "dataStorage": {
+ "question": "Gemmer eller sporer I mine filer?",
+ "answer": "Nej. Vi gemmer eller sporer aldrig dine filer. Alt foregår i din browser."
+ },
+ "different": {
+ "question": "Hvad gør BentoPDF anderledes?",
+ "answer": "De fleste PDF-værktøjer uploader dine filer til en server. BentoPDF gør det hele lokalt i din browser."
+ },
+ "browserBased": {
+ "question": "Hvordan gør browserbaseret behandling mig sikker?",
+ "answer": "Dine filer forlader aldrig enheden, hvilket fjerner risikoen for datalæk, hacks eller uautoriseret adgang."
+ },
+ "analytics": {
+ "question": "Bruger I cookies eller analyseværktøjer?",
+ "answer": "Vi bruger kun Simple Analytics til anonyme besøgsdata. Ingen personlige oplysninger indsamles."
+ }
+ },
+ "testimonials": {
+ "title": "Hvad vores",
+ "users": "Brugere",
+ "say": "Siger"
+ },
+ "support": {
+ "title": "Kan du lide mit arbejde?",
+ "description": "BentoPDF er et passioneret projekt, bygget for at tilbyde et gratis og privat PDF-værktøj til alle.",
+ "buyMeCoffee": "Køb en kaffe til mig"
+ },
+ "footer": {
+ "copyright": "© 2026 BentoPDF. Alle rettigheder forbeholdes.",
+ "version": "Version",
+ "company": "Virksomhed",
+ "aboutUs": "Om os",
+ "faqLink": "FAQ",
+ "contactUs": "Kontakt os",
+ "legal": "Juridisk",
+ "termsAndConditions": "Terms and Conditions",
+ "privacyPolicy": "Privacy Policy",
+ "followUs": "Følg os"
+ },
+ "merge": {
+ "title": "Flet PDF'er",
+ "description": "Kombinér hele filer eller vælg specifikke sider til et nyt dokument.",
+ "fileMode": "Filtilstand",
+ "pageMode": "Sidetilstand",
+ "howItWorks": "Sådan fungerer det:",
+ "fileModeInstructions": [
+ "Klik og træk ikonet for at ændre rækkefølge.",
+ "I \"Sider\"-feltet kan du angive intervaller (fx \"1-3, 5\").",
+ "Lad feltet stå tomt for at inkludere alle sider."
+ ],
+ "pageModeInstructions": [
+ "Alle sider fra dine PDF’er vises nedenfor.",
+ "Træk og slip siderne for at lave den ønskede rækkefølge."
+ ],
+ "mergePdfs": "Flet PDF'er"
+ },
+ "common": {
+ "page": "Side",
+ "pages": "Sider",
+ "of": "af",
+ "download": "Download",
+ "cancel": "Annuller",
+ "save": "Gem",
+ "delete": "Slet",
+ "edit": "Rediger",
+ "add": "Tilføj",
+ "remove": "Fjern",
+ "loading": "Indlæser...",
+ "error": "Fejl",
+ "success": "Succes",
+ "file": "Fil",
+ "files": "Filer",
+ "close": "Luk"
+ },
+ "about": {
+ "hero": {
+ "title": "Vi mener PDF-værktøjer bør være",
+ "subtitle": "hurtige, private og gratis.",
+ "noCompromises": "Ingen kompromiser."
+ },
+ "mission": {
+ "title": "Vores mission",
+ "description": "At give den mest komplette PDF-værktøjskasse uden betaling og med fuldt fokus på privatliv."
+ },
+ "philosophy": {
+ "label": "Vores kernefilosofi",
+ "title": "Privatliv først. Altid.",
+ "description": "Alt sker lokalt i din browser. Dine dokumenter er 100% private."
+ },
+ "whyBentopdf": {
+ "title": "Hvorfor",
+ "speed": {
+ "title": "Bygget til hastighed",
+ "description": "Ingen ventetid på uploads eller downloads — alt behandles lokalt."
+ },
+ "free": {
+ "title": "Fuldstændig gratis",
+ "description": "Ingen abonnementer, ingen skjulte gebyrer, ingen premiumlås."
+ },
+ "noAccount": {
+ "title": "Ingen konto nødvendig",
+ "description": "Brug værktøjerne med det samme — helt uden login."
+ },
+ "openSource": {
+ "title": "Open source-ånd",
+ "description": "Bygget med gennemsigtighed og baseret på stærke open source-biblioteker."
+ }
+ },
+ "cta": {
+ "title": "Klar til at komme i gang?",
+ "description": "Prøv selv den hurtige og private PDF-oplevelse.",
+ "button": "Udforsk alle værktøjer"
+ }
+ },
+ "contact": {
+ "title": "Kontakt os",
+ "subtitle": "Vi vil gerne høre fra dig — spørgsmål, feedback eller ønsker er velkomne.",
+ "email": "Du kan kontakte os direkte på:"
+ },
+ "licensing": {
+ "title": "licensing til",
+ "subtitle": "Vælg den licens der passer til dine behov."
+ },
+ "multiTool": {
+ "uploadPdfs": "Upload PDF'er",
+ "upload": "Upload",
+ "addBlankPage": "Tilføj tom side",
+ "edit": "Rediger:",
+ "undo": "Fortryd",
+ "redo": "Gentag",
+ "reset": "Nulstil",
+ "selection": "Markering:",
+ "selectAll": "Vælg alle",
+ "deselectAll": "Fravælg alle",
+ "rotate": "Rotér:",
+ "rotateLeft": "Venstre",
+ "rotateRight": "Højre",
+ "transform": "Transformér:",
+ "duplicate": "Duplikér",
+ "split": "Opdel",
+ "clear": "Ryd:",
+ "delete": "Slet",
+ "download": "Download:",
+ "downloadSelected": "Download valgte",
+ "exportPdf": "Eksportér PDF",
+ "uploadPdfFiles": "Vælg PDF-filer",
+ "dragAndDrop": "Træk og slip PDF-filer her, eller klik for at vælge",
+ "selectFiles": "Vælg filer",
+ "renderingPages": "Renderer sider...",
+ "actions": {
+ "duplicatePage": "Duplikér denne side",
+ "deletePage": "Slet denne side",
+ "insertPdf": "Indsæt PDF efter denne side",
+ "toggleSplit": "Slå opdeling til/fra efter denne side"
+ },
+ "pleaseWait": "Vent venligst",
+ "pagesRendering": "Siderne bliver stadig renderet. Vent venligst...",
+ "noPagesSelected": "Ingen sider valgt",
+ "selectOnePage": "Vælg mindst én side for at downloade.",
+ "noPages": "Ingen sider",
+ "noPagesToExport": "Der er ingen sider at eksportere.",
+ "renderingTitle": "Renderer side-forhåndsvisninger",
+ "errorRendering": "Kunne ikke rendere side-miniaturer",
+ "error": "Fejl",
+ "failedToLoad": "Kunne ikke indlæses"
+ }
+}
diff --git a/public/locales/da/tools.json b/public/locales/da/tools.json
new file mode 100644
index 0000000..45e7ae0
--- /dev/null
+++ b/public/locales/da/tools.json
@@ -0,0 +1,592 @@
+{
+ "categories": {
+ "popularTools": "Populære værktøjer",
+ "editAnnotate": "Rediger og annotér",
+ "convertToPdf": "Konverter til PDF",
+ "convertFromPdf": "Konverter fra PDF",
+ "organizeManage": "Organisér og administrér",
+ "optimizeRepair": "Optimer og reparér",
+ "securePdf": "Sikre PDF"
+ },
+ "pdfMultiTool": {
+ "name": "PDF Multi-værktøj",
+ "subtitle": "Flet, opdel, organisér, slet, roter, tilføj tomme sider, udtræk og duplikér i én samlet grænseflade."
+ },
+ "mergePdf": {
+ "name": "Flet PDF",
+ "subtitle": "Kombinér flere PDF’er til én fil. Bevarer bogmærker."
+ },
+ "splitPdf": {
+ "name": "Opdel PDF",
+ "subtitle": "Udtræk et sideinterval til en ny PDF."
+ },
+ "compressPdf": {
+ "name": "Komprimér PDF",
+ "subtitle": "Reducer filstørrelsen på din PDF.",
+ "algorithmLabel": "Komprimeringsalgoritme",
+ "condense": "Kondenser (anbefalet)",
+ "photon": "Photon (til billedtunge PDF’er)",
+ "condenseInfo": "Kondenser bruger avanceret komprimering: fjerner overflødigt indhold, optimerer billeder, udvælger skrifttyper. Bedst til de fleste PDF’er.",
+ "photonInfo": "Photon konverterer sider til billeder. Bruges til billedtunge eller scannede PDF’er.",
+ "photonWarning": "Advarsel: Tekst bliver ikke valgbar, og links holder op med at virke.",
+ "levelLabel": "Komprimeringsniveau",
+ "light": "Let (bevar kvalitet)",
+ "balanced": "Balanceret (anbefalet)",
+ "aggressive": "Aggressiv (mindre filer)",
+ "extreme": "Ekstrem (maksimal komprimering)",
+ "grayscale": "Konverter til gråtoner",
+ "grayscaleHint": "Reducerer filstørrelsen ved at fjerne farveinformation",
+ "customSettings": "Brugerdefinerede indstillinger",
+ "customSettingsHint": "Finjustér komprimeringsparametre:",
+ "outputQuality": "Outputkvalitet",
+ "resizeImagesTo": "Skalér billeder til",
+ "onlyProcessAbove": "Behandl kun over",
+ "removeMetadata": "Fjern metadata",
+ "subsetFonts": "Delvis skrifttypeindlæsning (fjern ubrugte tegn)",
+ "removeThumbnails": "Fjern indlejrede miniaturer",
+ "compressButton": "Komprimér PDF"
+ },
+ "pdfEditor": {
+ "name": "PDF-editor",
+ "subtitle": "Annotér, fremhæv, redigér, kommentér, tilføj former/billeder, søg og vis PDF’er."
+ },
+ "jpgToPdf": {
+ "name": "JPG til PDF",
+ "subtitle": "Opret en PDF fra JPG, JPEG og JPEG2000 (JP2/JPX) billeder."
+ },
+ "signPdf": {
+ "name": "Underskriv PDF",
+ "subtitle": "Tegn, skriv eller upload din signatur."
+ },
+ "cropPdf": {
+ "name": "Beskær PDF",
+ "subtitle": "Trim margenerne på alle sider i din PDF."
+ },
+ "extractPages": {
+ "name": "Udtræk sider",
+ "subtitle": "Gem et udvalg af sider som nye filer."
+ },
+ "duplicateOrganize": {
+ "name": "Duplikér og organisér",
+ "subtitle": "Duplikér, omorganisér og slet sider."
+ },
+ "deletePages": {
+ "name": "Slet sider",
+ "subtitle": "Fjern specifikke sider fra dokumentet."
+ },
+ "editBookmarks": {
+ "name": "Redigér bogmærker",
+ "subtitle": "Tilføj, redigér, importér, slet og udtræk PDF-bogmærker."
+ },
+ "tableOfContents": {
+ "name": "Indholdsfortegnelse",
+ "subtitle": "Generér en indholdsfortegnelse ud fra PDF-bogmærker."
+ },
+ "pageNumbers": {
+ "name": "Sidetal",
+ "subtitle": "Indsæt sidetal i dokumentet."
+ },
+ "addWatermark": {
+ "name": "Tilføj vandmærke",
+ "subtitle": "Placer tekst eller et billede oven på dine PDF-sider."
+ },
+ "headerFooter": {
+ "name": "Sidehoved og sidefod",
+ "subtitle": "Tilføj tekst øverst og nederst på siderne."
+ },
+ "invertColors": {
+ "name": "Invertér farver",
+ "subtitle": "Lav en slags “dark mode”-version af din PDF."
+ },
+ "scannerEffect": {
+ "name": "Scannereffekt",
+ "subtitle": "Få din PDF til at ligne et scannet dokument.",
+ "scanSettings": "Scanneindstillinger",
+ "colorspace": "Farverum",
+ "gray": "Grå",
+ "border": "Kant",
+ "rotate": "Rotér",
+ "rotateVariance": "Rotationsvariation",
+ "brightness": "Lysstyrke",
+ "contrast": "Kontrast",
+ "blur": "Sløring",
+ "noise": "Støj",
+ "yellowish": "Gulskær",
+ "resolution": "Opløsning",
+ "processButton": "Anvend scannereffekt"
+ },
+ "adjustColors": {
+ "name": "Justér farver",
+ "subtitle": "Finjustér lysstyrke, kontrast, mætning og mere i din PDF.",
+ "colorSettings": "Farveindstillinger",
+ "brightness": "Lysstyrke",
+ "contrast": "Kontrast",
+ "saturation": "Mætning",
+ "hueShift": "Farvetonejustering",
+ "temperature": "Temperatur",
+ "tint": "Farvetone",
+ "gamma": "Gamma",
+ "sepia": "Sepia",
+ "processButton": "Anvend farvejusteringer"
+ },
+ "backgroundColor": {
+ "name": "Baggrundsfarve",
+ "subtitle": "Skift baggrundsfarven på din PDF."
+ },
+ "changeTextColor": {
+ "name": "Skift tekstfarve",
+ "subtitle": "Ændr tekstfarven i din PDF."
+ },
+ "addStamps": {
+ "name": "Tilføj stempler",
+ "subtitle": "Tilføj billedstempler til din PDF via annoteringsværktøjet.",
+ "usernameLabel": "Stempelbrugernavn",
+ "usernamePlaceholder": "Indtast dit navn (til stempler)",
+ "usernameHint": "Dette navn vises på de stempler du opretter."
+ },
+ "removeAnnotations": {
+ "name": "Fjern annotationer",
+ "subtitle": "Fjern kommentarer, markeringer og links."
+ },
+ "pdfFormFiller": {
+ "name": "PDF-formularudfylder",
+ "subtitle": "Udfyld formularer direkte i browseren. Understøtter også XFA-formularer."
+ },
+ "createPdfForm": {
+ "name": "Opret PDF-formular",
+ "subtitle": "Lav udfyldelige PDF-formularer med træk-og-slip tekstfelter."
+ },
+ "removeBlankPages": {
+ "name": "Fjern tomme sider",
+ "subtitle": "Find og fjern automatisk tomme sider."
+ },
+ "imageToPdf": {
+ "name": "Billeder til PDF",
+ "subtitle": "Konverter JPG, PNG, BMP, GIF, TIFF, PNM, PGM, PBM, PPM, PAM, JXR, JPX, JP2, PSD, SVG, HEIC og WebP til PDF."
+ },
+ "pngToPdf": {
+ "name": "PNG til PDF",
+ "subtitle": "Opret en PDF fra en eller flere PNG-billeder."
+ },
+ "webpToPdf": {
+ "name": "WebP til PDF",
+ "subtitle": "Opret en PDF fra en eller flere WebP-billeder."
+ },
+ "svgToPdf": {
+ "name": "SVG til PDF",
+ "subtitle": "Opret en PDF fra en eller flere SVG-billeder."
+ },
+ "bmpToPdf": {
+ "name": "BMP til PDF",
+ "subtitle": "Opret en PDF fra en eller flere BMP-billeder."
+ },
+ "heicToPdf": {
+ "name": "HEIC til PDF",
+ "subtitle": "Opret en PDF fra en eller flere HEIC-billeder."
+ },
+ "tiffToPdf": {
+ "name": "TIFF til PDF",
+ "subtitle": "Opret en PDF fra en eller flere TIFF-billeder."
+ },
+ "textToPdf": {
+ "name": "Tekst til PDF",
+ "subtitle": "Konverter en almindelig tekstfil til PDF."
+ },
+ "jsonToPdf": {
+ "name": "JSON til PDF",
+ "subtitle": "Konverter JSON-filer til PDF."
+ },
+ "pdfToJpg": {
+ "name": "PDF til JPG",
+ "subtitle": "Konverter hver PDF-side til en JPG-billedfil."
+ },
+ "pdfToPng": {
+ "name": "PDF til PNG",
+ "subtitle": "Konverter hver PDF-side til en PNG-billedfil."
+ },
+ "pdfToWebp": {
+ "name": "PDF til WebP",
+ "subtitle": "Konverter hver PDF-side til en WebP-billedfil."
+ },
+ "pdfToBmp": {
+ "name": "PDF til BMP",
+ "subtitle": "Konverter hver PDF-side til en BMP-billedfil."
+ },
+ "pdfToTiff": {
+ "name": "PDF til TIFF",
+ "subtitle": "Konverter hver PDF-side til en TIFF-billedfil."
+ },
+ "pdfToGreyscale": {
+ "name": "PDF til gråtoner",
+ "subtitle": "Konverter alle farver til sort/hvid."
+ },
+ "pdfToJson": {
+ "name": "PDF til JSON",
+ "subtitle": "Konverter PDF-filer til JSON-format."
+ },
+ "ocrPdf": {
+ "name": "OCR PDF",
+ "subtitle": "Gør PDF’en søgbar og kopierbar."
+ },
+ "alternateMix": {
+ "name": "Alternér og miks sider",
+ "subtitle": "Flet PDF’er ved at skifte mellem sider fra hver fil. Bevarer bogmærker."
+ },
+ "addAttachments": {
+ "name": "Tilføj vedhæftninger",
+ "subtitle": "Indlejr en eller flere filer i din PDF."
+ },
+ "extractAttachments": {
+ "name": "Udtræk vedhæftninger",
+ "subtitle": "Udtræk alle indlejrede filer som en ZIP."
+ },
+ "editAttachments": {
+ "name": "Redigér vedhæftninger",
+ "subtitle": "Se eller fjern vedhæftninger i din PDF."
+ },
+ "dividePages": {
+ "name": "Opdel sider",
+ "subtitle": "Opdel sider vandret eller lodret."
+ },
+ "addBlankPage": {
+ "name": "Tilføj tom side",
+ "subtitle": "Indsæt en tom side hvor som helst i din PDF."
+ },
+ "reversePages": {
+ "name": "Vend sider",
+ "subtitle": "Vend rækkefølgen på alle sider."
+ },
+ "rotatePdf": {
+ "name": "Roter PDF",
+ "subtitle": "Drej sider i intervaller på 90 grader."
+ },
+ "rotateCustom": {
+ "name": "Roter med brugerdefineret vinkel",
+ "subtitle": "Roter sider med en valgfri vinkel."
+ },
+ "nUpPdf": {
+ "name": "N-Up PDF",
+ "subtitle": "Arrangér flere sider på ét ark."
+ },
+ "combineToSinglePage": {
+ "name": "Kombinér til én side",
+ "subtitle": "Sy alle sider sammen til én lang rulle."
+ },
+ "viewMetadata": {
+ "name": "Vis metadata",
+ "subtitle": "Inspektér skjulte PDF-egenskaber."
+ },
+ "editMetadata": {
+ "name": "Redigér metadata",
+ "subtitle": "Redigér forfatter, titel og andre egenskaber."
+ },
+ "pdfsToZip": {
+ "name": "PDF’er til ZIP",
+ "subtitle": "Pak flere PDF-filer i et ZIP-arkiv."
+ },
+ "comparePdfs": {
+ "name": "Sammenlign PDF’er",
+ "subtitle": "Sammenlign to PDF’er side om side."
+ },
+ "posterizePdf": {
+ "name": "Posterisér PDF",
+ "subtitle": "Opdel en stor side i flere mindre sider."
+ },
+ "fixPageSize": {
+ "name": "Ret sidestørrelse",
+ "subtitle": "Standardisér alle sider til samme størrelse."
+ },
+ "linearizePdf": {
+ "name": "Lineariser PDF",
+ "subtitle": "Optimer PDF til hurtig visning på nettet."
+ },
+ "pageDimensions": {
+ "name": "Sidestørrelser",
+ "subtitle": "Analysér sidestørrelse, orientering og enheder."
+ },
+ "removeRestrictions": {
+ "name": "Fjern begrænsninger",
+ "subtitle": "Fjern adgangskoder og sikkerhedsbegrænsninger fra digitalt signerede PDF’er."
+ },
+ "repairPdf": {
+ "name": "Reparér PDF",
+ "subtitle": "Gendan data fra beskadigede eller korrupte PDF’er."
+ },
+ "encryptPdf": {
+ "name": "Kryptér PDF",
+ "subtitle": "Lås din PDF med en adgangskode."
+ },
+ "sanitizePdf": {
+ "name": "Rens PDF",
+ "subtitle": "Fjern metadata, annotationer, scripts og mere."
+ },
+ "decryptPdf": {
+ "name": "Dekryptér PDF",
+ "subtitle": "Fjern adgangskodebeskyttelse."
+ },
+ "flattenPdf": {
+ "name": "Flatten PDF",
+ "subtitle": "Gør formularfelter og annotationer ikke-redigerbare."
+ },
+ "removeMetadata": {
+ "name": "Fjern metadata",
+ "subtitle": "Fjern skjulte data fra PDF’en."
+ },
+ "changePermissions": {
+ "name": "Skift tilladelser",
+ "subtitle": "Konfigurer brugerrettigheder i PDF’en."
+ },
+ "odtToPdf": {
+ "name": "ODT til PDF",
+ "subtitle": "Konverter ODT-dokumenter til PDF. Understøtter flere filer.",
+ "acceptedFormats": "ODT-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "csvToPdf": {
+ "name": "CSV til PDF",
+ "subtitle": "Konverter CSV-regneark til PDF. Understøtter flere filer.",
+ "acceptedFormats": "CSV-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "rtfToPdf": {
+ "name": "RTF til PDF",
+ "subtitle": "Konverter RTF-dokumenter til PDF. Understøtter flere filer.",
+ "acceptedFormats": "RTF-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "wordToPdf": {
+ "name": "Word til PDF",
+ "subtitle": "Konverter Word-dokumenter (DOCX, DOC, ODT, RTF) til PDF.",
+ "acceptedFormats": "DOCX, DOC, ODT, RTF-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "excelToPdf": {
+ "name": "Excel til PDF",
+ "subtitle": "Konverter Excel-filer (XLSX, XLS, ODS, CSV) til PDF.",
+ "acceptedFormats": "XLSX, XLS, ODS, CSV-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "powerpointToPdf": {
+ "name": "PowerPoint til PDF",
+ "subtitle": "Konverter PowerPoint-presentationer (PPTX, PPT, ODP) til PDF.",
+ "acceptedFormats": "PPTX, PPT, ODP-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "markdownToPdf": {
+ "name": "Markdown til PDF",
+ "subtitle": "Skriv eller indsæt Markdown og eksportér som en flot formateret PDF.",
+ "paneMarkdown": "Markdown",
+ "panePreview": "Forhåndsvisning",
+ "btnUpload": "Upload",
+ "btnSyncScroll": "Synkron rulning",
+ "btnSettings": "Indstillinger",
+ "btnExportPdf": "Eksportér PDF",
+ "settingsTitle": "Markdown-indstillinger",
+ "settingsPreset": "Forudindstilling",
+ "presetDefault": "Standard (GFM-lignende)",
+ "presetCommonmark": "CommonMark (striks)",
+ "presetZero": "Minimal (ingen funktioner)",
+ "settingsOptions": "Markdown-muligheder",
+ "optAllowHtml": "Tillad HTML-tags",
+ "optBreaks": "Konverter linjeskift til
",
+ "optLinkify": "Lav automatisk URL’er om til links",
+ "optTypographer": "Typograf (smart anførselstegn m.m.)"
+ },
+ "pdfBooklet": {
+ "name": "PDF-hæfte",
+ "subtitle": "Arrangér sider til dobbeltsidet hæfteudskrivning. Fold og hæft for at skabe et hæfte.",
+ "howItWorks": "Sådan fungerer det:",
+ "step1": "Upload en PDF-fil.",
+ "step2": "Siderne bliver omarrangeret i hæfterækkefølge.",
+ "step3": "Udskriv dobbeltsidet, vend på kort kant, fold og hæft.",
+ "paperSize": "Papirstørrelse",
+ "orientation": "Retning",
+ "portrait": "Portræt",
+ "landscape": "Landskab",
+ "pagesPerSheet": "Sider pr. ark",
+ "createBooklet": "Opret hæfte",
+ "processing": "Behandler...",
+ "pageCount": "Sidetal bliver justeret til et multiplum af 4 om nødvendigt."
+ },
+ "xpsToPdf": {
+ "name": "XPS til PDF",
+ "subtitle": "Konverter XPS/OXPS-dokumenter til PDF. Understøtter flere filer.",
+ "acceptedFormats": "XPS, OXPS-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "mobiToPdf": {
+ "name": "MOBI til PDF",
+ "subtitle": "Konverter MOBI e-bøger til PDF. Understøtter flere filer.",
+ "acceptedFormats": "MOBI-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "epubToPdf": {
+ "name": "EPUB til PDF",
+ "subtitle": "Konverter EPUB e-bøger til PDF. Understøtter flere filer.",
+ "acceptedFormats": "EPUB-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "fb2ToPdf": {
+ "name": "FB2 til PDF",
+ "subtitle": "Konverter FictionBook (FB2) e-bøger til PDF. Understøtter flere filer.",
+ "acceptedFormats": "FB2-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "cbzToPdf": {
+ "name": "CBZ til PDF",
+ "subtitle": "Konverter tegneseriearkiver (CBZ/CBR) til PDF. Understøtter flere filer.",
+ "acceptedFormats": "CBZ, CBR-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "wpdToPdf": {
+ "name": "WPD til PDF",
+ "subtitle": "Konverter WordPerfect-dokumenter (WPD) til PDF.",
+ "acceptedFormats": "WPD-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "wpsToPdf": {
+ "name": "WPS til PDF",
+ "subtitle": "Konverter WPS Office-dokumenter til PDF.",
+ "acceptedFormats": "WPS-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "xmlToPdf": {
+ "name": "XML til PDF",
+ "subtitle": "Konverter XML-dokumenter til PDF. Understøtter flere filer.",
+ "acceptedFormats": "XML-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "pagesToPdf": {
+ "name": "Pages til PDF",
+ "subtitle": "Konverter Apple Pages-dokumenter til PDF.",
+ "acceptedFormats": "Pages-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "odgToPdf": {
+ "name": "ODG til PDF",
+ "subtitle": "Konverter OpenDocument Graphics (ODG) filer til PDF.",
+ "acceptedFormats": "ODG-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "odsToPdf": {
+ "name": "ODS til PDF",
+ "subtitle": "Konverter OpenDocument Spreadsheet (ODS) filer til PDF.",
+ "acceptedFormats": "ODS-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "odpToPdf": {
+ "name": "ODP til PDF",
+ "subtitle": "Konverter OpenDocument Presentation (ODP) filer til PDF.",
+ "acceptedFormats": "ODP-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "pubToPdf": {
+ "name": "PUB til PDF",
+ "subtitle": "Konverter Microsoft Publisher (PUB) filer til PDF.",
+ "acceptedFormats": "PUB-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "vsdToPdf": {
+ "name": "VSD til PDF",
+ "subtitle": "Konverter Microsoft Visio (VSD, VSDX) filer til PDF.",
+ "acceptedFormats": "VSD, VSDX-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "psdToPdf": {
+ "name": "PSD til PDF",
+ "subtitle": "Konverter Adobe Photoshop (PSD) filer til PDF.",
+ "acceptedFormats": "PSD-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "pdfToSvg": {
+ "name": "PDF til SVG",
+ "subtitle": "Konverter hver side i en PDF til en skalerbar vektorgrafik (SVG) med perfekt kvalitet i alle størrelser."
+ },
+ "extractTables": {
+ "name": "Udtræk PDF-tabeller",
+ "subtitle": "Udtræk tabeller fra PDF og eksportér som CSV, JSON eller Markdown."
+ },
+ "pdfToCsv": {
+ "name": "PDF til CSV",
+ "subtitle": "Udtræk tabeller fra PDF og konverter til CSV."
+ },
+ "pdfToExcel": {
+ "name": "PDF til Excel",
+ "subtitle": "Udtræk tabeller fra PDF og konverter til Excel (XLSX)."
+ },
+ "pdfToText": {
+ "name": "PDF til tekst",
+ "subtitle": "Udtræk tekst fra PDF og gem som almindelig tekst (.txt). Understøtter flere filer.",
+ "note": "Dette værktøj virker KUN med digitalt oprettede PDF’er. Brug OCR PDF til scannede dokumenter.",
+ "convertButton": "Udtræk tekst"
+ },
+ "digitalSignPdf": {
+ "name": "Digital signatur PDF",
+ "pageTitle": "Digital signatur PDF - Tilføj kryptografisk signatur | BentoPDF",
+ "subtitle": "Tilføj en digital signatur til din PDF med X.509-certifikater. Understøtter PKCS#12 (.pfx, .p12) og PEM. Din private nøgle forlader aldrig browseren.",
+ "certificateSection": "Certifikat",
+ "uploadCert": "Upload certifikat (.pfx, .p12)",
+ "certPassword": "Certifikatkodeord",
+ "certPasswordPlaceholder": "Indtast kodeord til certifikat",
+ "certInfo": "Certifikatinformation",
+ "certSubject": "Emne",
+ "certIssuer": "Udsteder",
+ "certValidity": "Gyldighed",
+ "signatureDetails": "Signaturdetaljer (valgfrit)",
+ "reason": "Årsag",
+ "reasonPlaceholder": "Fx: Jeg godkender dette dokument",
+ "location": "Lokation",
+ "locationPlaceholder": "Fx: København, Danmark",
+ "contactInfo": "Kontaktinfo",
+ "contactPlaceholder": "Fx: email@example.com",
+ "applySignature": "Anvend digital signatur",
+ "successMessage": "PDF signeret! Signaturen kan verificeres i enhver PDF-læser."
+ },
+ "validateSignaturePdf": {
+ "name": "Validér PDF-signatur",
+ "pageTitle": "Validér PDF-signatur - Verificér digitale signaturer | BentoPDF",
+ "subtitle": "Tjek digitale signaturer i dine PDF’er. Verificér certifikater, se underskriverdetaljer og bekræft dokumentintegritet."
+ },
+ "emailToPdf": {
+ "name": "Email til PDF",
+ "subtitle": "Konverter e-mailfiler (EML, MSG) til PDF. Understøtter Outlook-formater.",
+ "acceptedFormats": "EML, MSG-filer",
+ "convertButton": "Konverter til PDF"
+ },
+ "fontToOutline": {
+ "name": "Skrifttype til kontur",
+ "subtitle": "Konverter alle skrifttyper til vektorkonturer for ensartet visning."
+ },
+ "deskewPdf": {
+ "name": "Ret skæve sider",
+ "subtitle": "Ret automatisk skæve scannede sider med OpenCV."
+ },
+ "pdfToWord": {
+ "name": "PDF til Word",
+ "subtitle": "Konverter PDF-filer til redigerbare Word-dokumenter."
+ },
+ "extractImages": {
+ "name": "Udtræk billeder",
+ "subtitle": "Udtræk alle indlejrede billeder fra PDF-filer."
+ },
+ "pdfToMarkdown": {
+ "name": "PDF til Markdown",
+ "subtitle": "Konverter PDF-tekst og tabeller til Markdown."
+ },
+ "preparePdfForAi": {
+ "name": "Forbered PDF til AI",
+ "subtitle": "Udtræk PDF-indhold som LlamaIndex JSON til RAG/LLM workflows."
+ },
+ "pdfOcg": {
+ "name": "PDF OCG",
+ "subtitle": "Se, skift, tilføj og slet OCG-lag i din PDF."
+ },
+ "pdfToPdfa": {
+ "name": "PDF til PDF/A",
+ "subtitle": "Konverter PDF til PDF/A til langtidsarkivering."
+ },
+ "rasterizePdf": {
+ "name": "Rasterisér PDF",
+ "subtitle": "Konverter PDF til en billedbaseret PDF. Flatten lag og fjern valgbare tekster."
+ }
+}
diff --git a/src/js/i18n/i18n.ts b/src/js/i18n/i18n.ts
index 4d1c7a3..4bf8af2 100644
--- a/src/js/i18n/i18n.ts
+++ b/src/js/i18n/i18n.ts
@@ -16,6 +16,7 @@ export const supportedLanguages = [
'it',
'pt',
'nl',
+ 'da',
] as const;
export type SupportedLanguage = (typeof supportedLanguages)[number];
@@ -33,6 +34,7 @@ export const languageNames: Record = {
it: 'Italiano',
pt: 'Português',
nl: 'Nederlands',
+ da: 'Dansk',
};
export const getLanguageFromUrl = (): SupportedLanguage => {
@@ -48,7 +50,7 @@ export const getLanguageFromUrl = (): SupportedLanguage => {
}
const langMatch = path.match(
- /^\/(en|fr|es|de|zh|zh-TW|vi|tr|id|it|pt|nl|be)(?:\/|$)/
+ /^\/(en|fr|es|de|zh|zh-TW|vi|tr|id|it|pt|nl|be|da)(?:\/|$)/
);
if (
langMatch &&
@@ -211,7 +213,7 @@ export const rewriteLinks = (): void => {
}
const langPrefixRegex = new RegExp(
- `^(${basePath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')})?/?(en|fr|es|de|zh|zh-TW|vi|tr|id|it|pt|nl|be)(/|$)`
+ `^(${basePath.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')})?/?(en|fr|es|de|zh|zh-TW|vi|tr|id|it|pt|nl|be|da)(/|$)`
);
if (langPrefixRegex.test(href)) {
return;
diff --git a/vite.config.ts b/vite.config.ts
index a1f8c2f..8fd0b48 100644
--- a/vite.config.ts
+++ b/vite.config.ts
@@ -26,6 +26,7 @@ const SUPPORTED_LANGUAGES = [
'fr',
'pt',
'nl',
+ 'da',
] as const;
const LANG_REGEX = new RegExp(
`^/(${SUPPORTED_LANGUAGES.join('|')})(?:/(.*))?$`