diff --git a/src/main/resources/messages_da_DK.properties b/src/main/resources/messages_da_DK.properties
new file mode 100644
index 00000000..b89e26ef
--- /dev/null
+++ b/src/main/resources/messages_da_DK.properties
@@ -0,0 +1,1126 @@
+###########
+# Generic #
+###########
+# the direction that the language is written (ltr = left to right, rtl = right to left)
+language.direction=ltr
+
+pdfPrompt=Vælg PDF-fil(er)
+multiPdfPrompt=Vælg PDF-filerne (2+)
+multiPdfDropPrompt=Vælg (eller drag & drop) alle PDF-filerne du skal bruge
+imgPrompt=Vælg Billede(r)
+genericSubmit=Indsend
+processTimeWarning=Advarsel: Denne proces kan tage op til et helt minut, alt efter størrelsen på filen
+pageOrderPrompt=Custom Page Order (Enter a comma-separated list of page numbers or Functions like 2n+1) :
+pageSelectionPrompt=Custom Page Selection (Enter a comma-separated list of page numbers 1,5,6 or Functions like 2n+1) :
+goToPage=Gå
+true=Sandt
+false=Falsk
+unknown=Ukendt
+save=Gem
+saveToBrowser=Save to Browser
+close=Luk
+filesSelected=Filer valgt
+noFavourites=Ingen favoritter tilføjet
+downloadComplete=Download fuldført
+bored=Træt af at vente?
+alphabet=Alfabet
+downloadPdf=Download PDF
+text=Tekst
+font=Font
+selectFillter=-- Vælg --
+pageNum=Sidenummer
+sizes.small=Lille
+sizes.medium=Mellem
+sizes.large=Stor
+sizes.x-large=X-Stor
+error.pdfPassword=The PDF Document is passworded and either the password was not provided or was incorrect
+delete=Slet
+username=Brugernavn
+password=Adgangskode
+welcome=Velkommen
+property=Property
+black=Sort
+white=Hvis
+red=Rød
+green=Græn
+blue=Blå
+custom=Custom...
+WorkInProgess=Work in progress, May not work or be buggy, Please report any problems!
+poweredBy=Powered by
+yes=Ja
+no=Nej
+changedCredsMessage=Credentials changed!
+notAuthenticatedMessage=Bruger ikke autoriseret.
+userNotFoundMessage=Bruger ikke fundet.
+incorrectPasswordMessage=Nuværende adgangskode er forkert.
+usernameExistsMessage=Nyt brugernavn findes allerede.
+invalidUsernameMessage=Invalid username, username can only contain letters, numbers and the following special characters @._+- or must be a valid email address.
+confirmPasswordErrorMessage=New Password and Confirm New Password must match.
+deleteCurrentUserMessage=Cannot delete currently logged in user.
+deleteUsernameExistsMessage=The username does not exist and cannot be deleted.
+downgradeCurrentUserMessage=Cannot downgrade current user's role
+downgradeCurrentUserLongMessage=Cannot downgrade current user's role. Hence, current user will not be shown.
+userAlreadyExistsOAuthMessage=The user already exists as an OAuth2 user.
+userAlreadyExistsWebMessage=The user already exists as an web user.
+error=Fejl
+oops=Ups!
+help=Hjælp
+goHomepage=Gå til hovedsiden
+joinDiscord=Join our Discord server
+seeDockerHub=Se Docker Hub
+visitGithub=Besøg Github Repository
+donate=Donér
+color=Farve
+sponsor=Sponsor
+info=Info
+
+
+
+###############
+# Pipeline #
+###############
+pipeline.header=Pipeline Menu (Beta)
+pipeline.uploadButton=Upload Custom
+pipeline.configureButton=Configure
+pipeline.defaultOption=Custom
+pipeline.submitButton=Submit
+pipeline.help=Pipeline Help
+pipeline.scanHelp=Folder Scanning Help
+pipeline.deletePrompt=Are you sure you want to delete pipeline
+
+######################
+# Pipeline Options #
+######################
+pipelineOptions.header=Pipeline Configuration
+pipelineOptions.pipelineNameLabel=Pipeline Name
+pipelineOptions.saveSettings=Save Operation Settings
+pipelineOptions.pipelineNamePrompt=Enter pipeline name here
+pipelineOptions.selectOperation=Select Operation
+pipelineOptions.addOperationButton=Add operation
+pipelineOptions.pipelineHeader=Pipeline:
+pipelineOptions.saveButton=Download
+pipelineOptions.validateButton=Validate
+
+
+
+
+#############
+# NAVBAR #
+#############
+navbar.favorite=Favorites
+navbar.darkmode=Dark Mode
+navbar.language=Languages
+navbar.settings=Settings
+navbar.allTools=Tools
+navbar.multiTool=Multi Tools
+navbar.sections.organize=Organize
+navbar.sections.convertTo=Convert to PDF
+navbar.sections.convertFrom=Convert from PDF
+navbar.sections.security=Sign & Security
+navbar.sections.advance=Advanced
+navbar.sections.edit=View & Edit
+
+#############
+# SETTINGS #
+#############
+settings.title=Settings
+settings.update=Update available
+settings.updateAvailable={0} is the current installed version. A new version ({1}) is available.
+settings.appVersion=App Version:
+settings.downloadOption.title=Choose download option (For single file non zip downloads):
+settings.downloadOption.1=Open in same window
+settings.downloadOption.2=Open in new window
+settings.downloadOption.3=Download file
+settings.zipThreshold=Zip files when the number of downloaded files exceeds
+settings.signOut=Sign Out
+settings.accountSettings=Account Settings
+settings.bored.help=Enables easter egg game
+settings.cacheInputs.name=Save form inputs
+settings.cacheInputs.help=Enable to store previously used inputs for future runs
+
+changeCreds.title=Change Credentials
+changeCreds.header=Update Your Account Details
+changeCreds.changePassword=You are using default login credentials. Please enter a new password
+changeCreds.newUsername=New Username
+changeCreds.oldPassword=Current Password
+changeCreds.newPassword=New Password
+changeCreds.confirmNewPassword=Confirm New Password
+changeCreds.submit=Submit Changes
+
+
+
+account.title=Account Settings
+account.accountSettings=Account Settings
+account.adminSettings=Admin Settings - View and Add Users
+account.userControlSettings=User Control Settings
+account.changeUsername=Change Username
+account.newUsername=New Username
+account.password=Confirmation Password
+account.oldPassword=Old password
+account.newPassword=New Password
+account.changePassword=Change Password
+account.confirmNewPassword=Confirm New Password
+account.signOut=Sign Out
+account.yourApiKey=Your API Key
+account.syncTitle=Sync browser settings with Account
+account.settingsCompare=Settings Comparison:
+account.property=Property
+account.webBrowserSettings=Web Browser Setting
+account.syncToBrowser=Sync Account -> Browser
+account.syncToAccount=Sync Account <- Browser
+
+
+adminUserSettings.title=User Control Settings
+adminUserSettings.header=Admin User Control Settings
+adminUserSettings.admin=Admin
+adminUserSettings.user=User
+adminUserSettings.addUser=Add New User
+adminUserSettings.deleteUser=Delete User
+adminUserSettings.confirmDeleteUser=Should the user be deleted?
+adminUserSettings.usernameInfo=Username can only contain letters, numbers and the following special characters @._+- or must be a valid email address.
+adminUserSettings.roles=Roles
+adminUserSettings.role=Role
+adminUserSettings.actions=Actions
+adminUserSettings.apiUser=Limited API User
+adminUserSettings.extraApiUser=Additional Limited API User
+adminUserSettings.webOnlyUser=Web Only User
+adminUserSettings.demoUser=Demo User (No custom settings)
+adminUserSettings.internalApiUser=Internal API User
+adminUserSettings.forceChange=Force user to change password on login
+adminUserSettings.submit=Save User
+adminUserSettings.changeUserRole=Change User's Role
+adminUserSettings.authenticated=Authenticated
+
+
+database.title=Database Import/Export
+database.header=Database Import/Export
+database.fileName=File Name
+database.creationDate=Creation Date
+database.fileSize=File Size
+database.deleteBackupFile=Delete Backup File
+database.importBackupFile=Import Backup File
+database.downloadBackupFile=Download Backup File
+database.info_1=When importing data, it is crucial to ensure the correct structure. If you are unsure of what you are doing, seek advice and support from a professional. An error in the structure can cause application malfunctions, up to and including the complete inability to run the application.
+database.info_2=The file name does not matter when uploading. It will be renamed afterward to follow the format backup_user_yyyyMMddHHmm.sql, ensuring a consistent naming convention.
+database.submit=Import Backup
+database.importIntoDatabaseSuccessed=Import into database successed
+database.fileNotFound=File not found
+database.fileNullOrEmpty=File must not be null or empty
+database.failedImportFile=Failed to import file
+
+#############
+# HOME-PAGE #
+#############
+home.desc=Your locally hosted one-stop-shop for all your PDF needs.
+home.searchBar=Search for features...
+
+
+home.viewPdf.title=View PDF
+home.viewPdf.desc=View, annotate, add text or images
+viewPdf.tags=view,read,annotate,text,image
+
+home.multiTool.title=PDF Multi Tool
+home.multiTool.desc=Merge, Rotate, Rearrange, and Remove pages
+multiTool.tags=Multi Tool,Multi operation,UI,click drag,front end,client side,interactive,intractable,move
+
+home.merge.title=Merge
+home.merge.desc=Easily merge multiple PDFs into one.
+merge.tags=merge,Page operations,Back end,server side
+
+home.split.title=Split
+home.split.desc=Split PDFs into multiple documents
+split.tags=Page operations,divide,Multi Page,cut,server side
+
+home.rotate.title=Rotate
+home.rotate.desc=Easily rotate your PDFs.
+rotate.tags=server side
+
+
+home.imageToPdf.title=Image to PDF
+home.imageToPdf.desc=Convert a image (PNG, JPEG, GIF) to PDF.
+imageToPdf.tags=conversion,img,jpg,picture,photo
+
+home.pdfToImage.title=PDF to Image
+home.pdfToImage.desc=Convert a PDF to a image. (PNG, JPEG, GIF)
+pdfToImage.tags=conversion,img,jpg,picture,photo
+
+home.pdfOrganiser.title=Organise
+home.pdfOrganiser.desc=Remove/Rearrange pages in any order
+pdfOrganiser.tags=duplex,even,odd,sort,move
+
+
+home.addImage.title=Add image
+home.addImage.desc=Adds a image onto a set location on the PDF
+addImage.tags=img,jpg,picture,photo
+
+home.watermark.title=Add Watermark
+home.watermark.desc=Add a custom watermark to your PDF document.
+watermark.tags=Text,repeating,label,own,copyright,trademark,img,jpg,picture,photo
+
+home.permissions.title=Change Permissions
+home.permissions.desc=Change the permissions of your PDF document
+permissions.tags=read,write,edit,print
+
+
+home.removePages.title=Remove
+home.removePages.desc=Delete unwanted pages from your PDF document.
+removePages.tags=Remove pages,delete pages
+
+home.addPassword.title=Add Password
+home.addPassword.desc=Encrypt your PDF document with a password.
+addPassword.tags=secure,security
+
+home.removePassword.title=Remove Password
+home.removePassword.desc=Remove password protection from your PDF document.
+removePassword.tags=secure,Decrypt,security,unpassword,delete password
+
+home.compressPdfs.title=Compress
+home.compressPdfs.desc=Compress PDFs to reduce their file size.
+compressPdfs.tags=squish,small,tiny
+
+
+home.changeMetadata.title=Change Metadata
+home.changeMetadata.desc=Change/Remove/Add metadata from a PDF document
+changeMetadata.tags==Title,author,date,creation,time,publisher,producer,stats
+
+home.fileToPDF.title=Convert file to PDF
+home.fileToPDF.desc=Convert nearly any file to PDF (DOCX, PNG, XLS, PPT, TXT and more)
+fileToPDF.tags=transformation,format,document,picture,slide,text,conversion,office,docs,word,excel,powerpoint
+
+home.ocr.title=OCR / Cleanup scans
+home.ocr.desc=Cleanup scans and detects text from images within a PDF and re-adds it as text.
+ocr.tags=recognition,text,image,scan,read,identify,detection,editable
+
+
+home.extractImages.title=Extract Images
+home.extractImages.desc=Extracts all images from a PDF and saves them to zip
+extractImages.tags=picture,photo,save,archive,zip,capture,grab
+
+home.pdfToPDFA.title=PDF to PDF/A
+home.pdfToPDFA.desc=Convert PDF to PDF/A for long-term storage
+pdfToPDFA.tags=archive,long-term,standard,conversion,storage,preservation
+
+home.PDFToWord.title=PDF to Word
+home.PDFToWord.desc=Convert PDF to Word formats (DOC, DOCX and ODT)
+PDFToWord.tags=doc,docx,odt,word,transformation,format,conversion,office,microsoft,docfile
+
+home.PDFToPresentation.title=PDF to Presentation
+home.PDFToPresentation.desc=Convert PDF to Presentation formats (PPT, PPTX and ODP)
+PDFToPresentation.tags=slides,show,office,microsoft
+
+home.PDFToText.title=PDF to RTF (Text)
+home.PDFToText.desc=Convert PDF to Text or RTF format
+PDFToText.tags=richformat,richtextformat,rich text format
+
+home.PDFToHTML.title=PDF to HTML
+home.PDFToHTML.desc=Convert PDF to HTML format
+PDFToHTML.tags=web content,browser friendly
+
+
+home.PDFToXML.title=PDF to XML
+home.PDFToXML.desc=Convert PDF to XML format
+PDFToXML.tags=data-extraction,structured-content,interop,transformation,convert
+
+home.ScannerImageSplit.title=Detect/Split Scanned photos
+home.ScannerImageSplit.desc=Splits multiple photos from within a photo/PDF
+ScannerImageSplit.tags=separate,auto-detect,scans,multi-photo,organize
+
+home.sign.title=Sign
+home.sign.desc=Adds signature to PDF by drawing, text or image
+sign.tags=authorize,initials,drawn-signature,text-sign,image-signature
+
+home.flatten.title=Flatten
+home.flatten.desc=Remove all interactive elements and forms from a PDF
+flatten.tags=static,deactivate,non-interactive,streamline
+
+home.repair.title=Repair
+home.repair.desc=Tries to repair a corrupt/broken PDF
+repair.tags=fix,restore,correction,recover
+
+home.removeBlanks.title=Remove Blank pages
+home.removeBlanks.desc=Detects and removes blank pages from a document
+removeBlanks.tags=cleanup,streamline,non-content,organize
+
+home.removeAnnotations.title=Remove Annotations
+home.removeAnnotations.desc=Removes all comments/annotations from a PDF
+removeAnnotations.tags=comments,highlight,notes,markup,remove
+
+home.compare.title=Compare
+home.compare.desc=Compares and shows the differences between 2 PDF Documents
+compare.tags=differentiate,contrast,changes,analysis
+
+home.certSign.title=Sign with Certificate
+home.certSign.desc=Signs a PDF with a Certificate/Key (PEM/P12)
+certSign.tags=authenticate,PEM,P12,official,encrypt
+
+home.removeCertSign.title=Remove Certificate Sign
+home.removeCertSign.desc=Remove certificate signature from PDF
+removeCertSign.tags=authenticate,PEM,P12,official,decrypt
+
+home.pageLayout.title=Multi-Page Layout
+home.pageLayout.desc=Merge multiple pages of a PDF document into a single page
+pageLayout.tags=merge,composite,single-view,organize
+
+home.scalePages.title=Adjust page size/scale
+home.scalePages.desc=Change the size/scale of a page and/or its contents.
+scalePages.tags=resize,modify,dimension,adapt
+
+home.pipeline.title=Pipeline (Advanced)
+home.pipeline.desc=Run multiple actions on PDFs by defining pipeline scripts
+pipeline.tags=automate,sequence,scripted,batch-process
+
+home.add-page-numbers.title=Add Page Numbers
+home.add-page-numbers.desc=Add Page numbers throughout a document in a set location
+add-page-numbers.tags=paginate,label,organize,index
+
+home.auto-rename.title=Auto Rename PDF File
+home.auto-rename.desc=Auto renames a PDF file based on its detected header
+auto-rename.tags=auto-detect,header-based,organize,relabel
+
+home.adjust-contrast.title=Adjust Colors/Contrast
+home.adjust-contrast.desc=Adjust Contrast, Saturation and Brightness of a PDF
+adjust-contrast.tags=color-correction,tune,modify,enhance
+
+home.crop.title=Crop PDF
+home.crop.desc=Crop a PDF to reduce its size (maintains text!)
+crop.tags=trim,shrink,edit,shape
+
+home.autoSplitPDF.title=Auto Split Pages
+home.autoSplitPDF.desc=Auto Split Scanned PDF with physical scanned page splitter QR Code
+autoSplitPDF.tags=QR-based,separate,scan-segment,organize
+
+home.sanitizePdf.title=Sanitize
+home.sanitizePdf.desc=Remove scripts and other elements from PDF files
+sanitizePdf.tags=clean,secure,safe,remove-threats
+
+home.URLToPDF.title=URL/Website To PDF
+home.URLToPDF.desc=Converts any http(s)URL to PDF
+URLToPDF.tags=web-capture,save-page,web-to-doc,archive
+
+home.HTMLToPDF.title=HTML to PDF
+home.HTMLToPDF.desc=Converts any HTML file or zip to PDF
+HTMLToPDF.tags=markup,web-content,transformation,convert
+
+
+home.MarkdownToPDF.title=Markdown to PDF
+home.MarkdownToPDF.desc=Converts any Markdown file to PDF
+MarkdownToPDF.tags=markup,web-content,transformation,convert
+
+
+home.getPdfInfo.title=Get ALL Info on PDF
+home.getPdfInfo.desc=Grabs any and all information possible on PDFs
+getPdfInfo.tags=infomation,data,stats,statistics
+
+
+home.extractPage.title=Extract page(s)
+home.extractPage.desc=Extracts select pages from PDF
+extractPage.tags=extract
+
+
+home.PdfToSinglePage.title=PDF to Single Large Page
+home.PdfToSinglePage.desc=Merges all PDF pages into one large single page
+PdfToSinglePage.tags=single page
+
+
+home.showJS.title=Show Javascript
+home.showJS.desc=Searches and displays any JS injected into a PDF
+showJS.tags=JS
+
+home.autoRedact.title=Auto Redact
+home.autoRedact.desc=Auto Redacts(Blacks out) text in a PDF based on input text
+autoRedact.tags=Redact,Hide,black out,black,marker,hidden
+
+home.tableExtraxt.title=PDF to CSV
+home.tableExtraxt.desc=Extracts Tables from a PDF converting it to CSV
+tableExtraxt.tags=CSV,Table Extraction,extract,convert
+
+
+home.autoSizeSplitPDF.title=Auto Split by Size/Count
+home.autoSizeSplitPDF.desc=Split a single PDF into multiple documents based on size, page count, or document count
+autoSizeSplitPDF.tags=pdf,split,document,organization
+
+
+home.overlay-pdfs.title=Overlay PDFs
+home.overlay-pdfs.desc=Overlays PDFs on-top of another PDF
+overlay-pdfs.tags=Overlay
+
+home.split-by-sections.title=Split PDF by Sections
+home.split-by-sections.desc=Divide each page of a PDF into smaller horizontal and vertical sections
+split-by-sections.tags=Section Split, Divide, Customize
+
+home.AddStampRequest.title=Add Stamp to PDF
+home.AddStampRequest.desc=Add text or add image stamps at set locations
+AddStampRequest.tags=Stamp, Add image, center image, Watermark, PDF, Embed, Customize
+
+
+home.PDFToBook.title=PDF to Book
+home.PDFToBook.desc=Converts PDF to Book/Comic formats using calibre
+PDFToBook.tags=Book,Comic,Calibre,Convert,manga,amazon,kindle,epub,mobi,azw3,docx,rtf,txt,html,lit,fb2,pdb,lrf
+
+home.BookToPDF.title=Book to PDF
+home.BookToPDF.desc=Converts Books/Comics formats to PDF using calibre
+BookToPDF.tags=Book,Comic,Calibre,Convert,manga,amazon,kindle,epub,mobi,azw3,docx,rtf,txt,html,lit,fb2,pdb,lrf
+
+
+###########################
+# #
+# WEB PAGES #
+# #
+###########################
+#login
+login.title=Sign in
+login.header=Sign in
+login.signin=Sign in
+login.rememberme=Remember me
+login.invalid=Invalid username or password.
+login.locked=Your account has been locked.
+login.signinTitle=Please sign in
+login.ssoSignIn=Login via Single Sign-on
+login.oauth2AutoCreateDisabled=OAUTH2 Auto-Create User Disabled
+login.oauth2RequestNotFound=Authorization request not found
+login.oauth2InvalidUserInfoResponse=Invalid User Info Response
+login.oauth2invalidRequest=Invalid Request
+login.oauth2AccessDenied=Access Denied
+login.oauth2InvalidTokenResponse=Invalid Token Response
+login.oauth2InvalidIdToken=Invalid Id Token
+
+
+#auto-redact
+autoRedact.title=Auto Redact
+autoRedact.header=Auto Redact
+autoRedact.colorLabel=Colour
+autoRedact.textsToRedactLabel=Text to Redact (line-separated)
+autoRedact.textsToRedactPlaceholder=e.g. \nConfidential \nTop-Secret
+autoRedact.useRegexLabel=Use Regex
+autoRedact.wholeWordSearchLabel=Whole Word Search
+autoRedact.customPaddingLabel=Custom Extra Padding
+autoRedact.convertPDFToImageLabel=Convert PDF to PDF-Image (Used to remove text behind the box)
+autoRedact.submitButton=Submit
+
+
+#showJS
+showJS.title=Show Javascript
+showJS.header=Show Javascript
+showJS.downloadJS=Download Javascript
+showJS.submit=Show
+
+
+#pdfToSinglePage
+pdfToSinglePage.title=PDF To Single Page
+pdfToSinglePage.header=PDF To Single Page
+pdfToSinglePage.submit=Convert To Single Page
+
+
+#pageExtracter
+pageExtracter.title=Extract Pages
+pageExtracter.header=Extract Pages
+pageExtracter.submit=Extract
+pageExtracter.placeholder=(e.g. 1,2,8 or 4,7,12-16 or 2n-1)
+
+
+#getPdfInfo
+getPdfInfo.title=Get Info on PDF
+getPdfInfo.header=Get Info on PDF
+getPdfInfo.submit=Get Info
+getPdfInfo.downloadJson=Download JSON
+
+
+#markdown-to-pdf
+MarkdownToPDF.title=Markdown To PDF
+MarkdownToPDF.header=Markdown To PDF
+MarkdownToPDF.submit=Convert
+MarkdownToPDF.help=Work in progress
+MarkdownToPDF.credit=Uses WeasyPrint
+
+
+
+#url-to-pdf
+URLToPDF.title=URL To PDF
+URLToPDF.header=URL To PDF
+URLToPDF.submit=Convert
+URLToPDF.credit=Uses WeasyPrint
+
+
+#html-to-pdf
+HTMLToPDF.title=HTML To PDF
+HTMLToPDF.header=HTML To PDF
+HTMLToPDF.help=Accepts HTML files and ZIPs containing html/css/images etc required
+HTMLToPDF.submit=Convert
+HTMLToPDF.credit=Uses WeasyPrint
+HTMLToPDF.zoom=Zoom level for displaying the website.
+HTMLToPDF.pageWidth=Width of the page in centimeters. (Blank to default)
+HTMLToPDF.pageHeight=Height of the page in centimeters. (Blank to default)
+HTMLToPDF.marginTop=Top margin of the page in millimeters. (Blank to default)
+HTMLToPDF.marginBottom=Bottom margin of the page in millimeters. (Blank to default)
+HTMLToPDF.marginLeft=Left margin of the page in millimeters. (Blank to default)
+HTMLToPDF.marginRight=Right margin of the page in millimeters. (Blank to default)
+HTMLToPDF.printBackground=Render the background of websites.
+HTMLToPDF.defaultHeader=Enable Default Header (Name and page number)
+HTMLToPDF.cssMediaType=Change the CSS media type of the page.
+HTMLToPDF.none=None
+HTMLToPDF.print=Print
+HTMLToPDF.screen=Screen
+
+
+#AddStampRequest
+AddStampRequest.header=Stamp PDF
+AddStampRequest.title=Stamp PDF
+AddStampRequest.stampType=Stamp Type
+AddStampRequest.stampText=Stamp Text
+AddStampRequest.stampImage=Stamp Image
+AddStampRequest.alphabet=Alphabet
+AddStampRequest.fontSize=Font/Image Size
+AddStampRequest.rotation=Rotation
+AddStampRequest.opacity=Opacity
+AddStampRequest.position=Position
+AddStampRequest.overrideX=Override X Coordinate
+AddStampRequest.overrideY=Override Y Coordinate
+AddStampRequest.customMargin=Custom Margin
+AddStampRequest.customColor=Custom Text Color
+AddStampRequest.submit=Submit
+
+
+#sanitizePDF
+sanitizePDF.title=Sanitize PDF
+sanitizePDF.header=Sanitize a PDF file
+sanitizePDF.selectText.1=Remove JavaScript actions
+sanitizePDF.selectText.2=Remove embedded files
+sanitizePDF.selectText.3=Remove metadata
+sanitizePDF.selectText.4=Remove links
+sanitizePDF.selectText.5=Remove fonts
+sanitizePDF.submit=Sanitize PDF
+
+
+#addPageNumbers
+addPageNumbers.title=Add Page Numbers
+addPageNumbers.header=Add Page Numbers
+addPageNumbers.selectText.1=Select PDF file:
+addPageNumbers.selectText.2=Margin Size
+addPageNumbers.selectText.3=Position
+addPageNumbers.selectText.4=Starting Number
+addPageNumbers.selectText.5=Pages to Number
+addPageNumbers.selectText.6=Custom Text
+addPageNumbers.customTextDesc=Custom Text
+addPageNumbers.numberPagesDesc=Which pages to number, default 'all', also accepts 1-5 or 2,5,9 etc
+addPageNumbers.customNumberDesc=Defaults to {n}, also accepts 'Page {n} of {total}', 'Text-{n}', '{filename}-{n}
+addPageNumbers.submit=Add Page Numbers
+
+
+#auto-rename
+auto-rename.title=Auto Rename
+auto-rename.header=Auto Rename PDF
+auto-rename.submit=Auto Rename
+
+
+#adjustContrast
+adjustContrast.title=Adjust Contrast
+adjustContrast.header=Adjust Contrast
+adjustContrast.contrast=Contrast:
+adjustContrast.brightness=Brightness:
+adjustContrast.saturation=Saturation:
+adjustContrast.download=Download
+
+
+#crop
+crop.title=Crop
+crop.header=Crop PDF
+crop.submit=Submit
+
+
+#autoSplitPDF
+autoSplitPDF.title=Auto Split PDF
+autoSplitPDF.header=Auto Split PDF
+autoSplitPDF.description=Print, Insert, Scan, upload, and let us auto-separate your documents. No manual work sorting needed.
+autoSplitPDF.selectText.1=Print out some divider sheets from below (Black and white is fine).
+autoSplitPDF.selectText.2=Scan all your documents at once by inserting the divider sheet between them.
+autoSplitPDF.selectText.3=Upload the single large scanned PDF file and let Stirling PDF handle the rest.
+autoSplitPDF.selectText.4=Divider pages are automatically detected and removed, guaranteeing a neat final document.
+autoSplitPDF.formPrompt=Submit PDF containing Stirling-PDF Page dividers:
+autoSplitPDF.duplexMode=Duplex Mode (Front and back scanning)
+autoSplitPDF.dividerDownload1=Download 'Auto Splitter Divider (minimal).pdf'
+autoSplitPDF.dividerDownload2=Download 'Auto Splitter Divider (with instructions).pdf'
+autoSplitPDF.submit=Submit
+
+
+#pipeline
+pipeline.title=Pipeline
+
+
+#pageLayout
+pageLayout.title=Multi Page Layout
+pageLayout.header=Multi Page Layout
+pageLayout.pagesPerSheet=Pages per sheet:
+pageLayout.addBorder=Add Borders
+pageLayout.submit=Submit
+
+
+#scalePages
+scalePages.title=Adjust page-scale
+scalePages.header=Adjust page-scale
+scalePages.pageSize=Size of a page of the document.
+scalePages.scaleFactor=Zoom level (crop) of a page.
+scalePages.submit=Submit
+
+
+#certSign
+certSign.title=Certificate Signing
+certSign.header=Sign a PDF with your certificate (Work in progress)
+certSign.selectPDF=Select a PDF File for Signing:
+certSign.jksNote=Note: If your certificate type is not listed below, please convert it to a Java Keystore (.jks) file using the keytool command line tool. Then, choose the .jks file option below.
+certSign.selectKey=Select Your Private Key File (PKCS#8 format, could be .pem or .der):
+certSign.selectCert=Select Your Certificate File (X.509 format, could be .pem or .der):
+certSign.selectP12=Select Your PKCS#12 Keystore File (.p12 or .pfx) (Optional, If provided, it should contain your private key and certificate):
+certSign.selectJKS=Select Your Java Keystore File (.jks or .keystore):
+certSign.certType=Certificate Type
+certSign.password=Enter Your Keystore or Private Key Password (If Any):
+certSign.showSig=Show Signature
+certSign.reason=Reason
+certSign.location=Location
+certSign.name=Name
+certSign.submit=Sign PDF
+
+
+#removeCertSign
+removeCertSign.title=Remove Certificate Signature
+removeCertSign.header=Remove the digital certificate from the PDF
+removeCertSign.selectPDF=Select a PDF file:
+removeCertSign.submit=Remove Signature
+
+
+#removeBlanks
+removeBlanks.title=Remove Blanks
+removeBlanks.header=Remove Blank Pages
+removeBlanks.threshold=Pixel Whiteness Threshold:
+removeBlanks.thresholdDesc=Threshold for determining how white a white pixel must be to be classed as 'White'. 0 = Black, 255 pure white.
+removeBlanks.whitePercent=White Percent (%):
+removeBlanks.whitePercentDesc=Percent of page that must be 'white' pixels to be removed
+removeBlanks.submit=Remove Blanks
+
+
+#removeAnnotations
+removeAnnotations.title=Remove Annotations
+removeAnnotations.header=Remove Annotations
+removeAnnotations.submit=Remove
+
+
+#compare
+compare.title=Compare
+compare.header=Compare PDFs
+compare.highlightColor.1=Highlight Color 1:
+compare.highlightColor.2=Highlight Color 2:
+compare.document.1=Document 1
+compare.document.2=Document 2
+compare.submit=Compare
+
+#BookToPDF
+BookToPDF.title=Books and Comics to PDF
+BookToPDF.header=Book to PDF
+BookToPDF.credit=Uses Calibre
+BookToPDF.submit=Convert
+
+#PDFToBook
+PDFToBook.title=PDF to Book
+PDFToBook.header=PDF to Book
+PDFToBook.selectText.1=Format
+PDFToBook.credit=Uses Calibre
+PDFToBook.submit=Convert
+
+#sign
+sign.title=Sign
+sign.header=Sign PDFs
+sign.upload=Upload Image
+sign.draw=Draw Signature
+sign.text=Text Input
+sign.clear=Clear
+sign.add=Add
+
+
+#repair
+repair.title=Repair
+repair.header=Repair PDFs
+repair.submit=Repair
+
+
+#flatten
+flatten.title=Flatten
+flatten.header=Flatten PDF
+flatten.flattenOnlyForms=Flatten only forms
+flatten.submit=Flatten
+
+
+#ScannerImageSplit
+ScannerImageSplit.selectText.1=Angle Threshold:
+ScannerImageSplit.selectText.2=Sets the minimum absolute angle required for the image to be rotated (default: 10).
+ScannerImageSplit.selectText.3=Tolerance:
+ScannerImageSplit.selectText.4=Determines the range of color variation around the estimated background color (default: 30).
+ScannerImageSplit.selectText.5=Minimum Area:
+ScannerImageSplit.selectText.6=Sets the minimum area threshold for a photo (default: 10000).
+ScannerImageSplit.selectText.7=Minimum Contour Area:
+ScannerImageSplit.selectText.8=Sets the minimum contour area threshold for a photo
+ScannerImageSplit.selectText.9=Border Size:
+ScannerImageSplit.selectText.10=Sets the size of the border added and removed to prevent white borders in the output (default: 1).
+
+
+#OCR
+ocr.title=OCR / Scan Cleanup
+ocr.header=Cleanup Scans / OCR (Optical Character Recognition)
+ocr.selectText.1=Select languages that are to be detected within the PDF (Ones listed are the ones currently detected):
+ocr.selectText.2=Produce text file containing OCR text alongside the OCR'ed PDF
+ocr.selectText.3=Correct pages were scanned at a skewed angle by rotating them back into place
+ocr.selectText.4=Clean page so its less likely that OCR will find text in background noise. (No output change)
+ocr.selectText.5=Clean page so its less likely that OCR will find text in background noise, maintains cleanup in output.
+ocr.selectText.6=Ignores pages that have interactive text on them, only OCRs pages that are images
+ocr.selectText.7=Force OCR, will OCR Every page removing all original text elements
+ocr.selectText.8=Normal (Will error if PDF contains text)
+ocr.selectText.9=Additional Settings
+ocr.selectText.10=OCR Mode
+ocr.selectText.11=Remove images after OCR (Removes ALL images, only useful if part of conversion step)
+ocr.selectText.12=Render Type (Advanced)
+ocr.help=Please read this documentation on how to use this for other languages and/or use not in docker
+ocr.credit=This service uses OCRmyPDF and Tesseract for OCR.
+ocr.submit=Process PDF with OCR
+
+
+#extractImages
+extractImages.title=Extract Images
+extractImages.header=Extract Images
+extractImages.selectText=Select image format to convert extracted images to
+extractImages.submit=Extract
+
+
+#File to PDF
+fileToPDF.title=File to PDF
+fileToPDF.header=Convert any file to PDF
+fileToPDF.credit=This service uses LibreOffice and Unoconv for file conversion.
+fileToPDF.supportedFileTypesInfo=Supported File types
+fileToPDF.supportedFileTypes=Supported file types should include the below however for a full updated list of supported formats, please refer to the LibreOffice documentation
+fileToPDF.submit=Convert to PDF
+
+
+#compress
+compress.title=Compress
+compress.header=Compress PDF
+compress.credit=This service uses Ghostscript for PDF Compress/Optimisation.
+compress.selectText.1=Manual Mode - From 1 to 4
+compress.selectText.2=Optimization level:
+compress.selectText.3=4 (Terrible for text images)
+compress.selectText.4=Auto mode - Auto adjusts quality to get PDF to exact size
+compress.selectText.5=Expected PDF Size (e.g. 25MB, 10.8MB, 25KB)
+compress.submit=Compress
+
+
+#Add image
+addImage.title=Add Image
+addImage.header=Add image to PDF
+addImage.everyPage=Every Page?
+addImage.upload=Add image
+addImage.submit=Add image
+
+
+#merge
+merge.title=Merge
+merge.header=Merge multiple PDFs (2+)
+merge.sortByName=Sort by name
+merge.sortByDate=Sort by date
+merge.removeCertSign=Remove digital signature in the merged file?
+merge.submit=Merge
+
+
+#pdfOrganiser
+pdfOrganiser.title=Page Organiser
+pdfOrganiser.header=PDF Page Organiser
+pdfOrganiser.submit=Rearrange Pages
+pdfOrganiser.mode=Mode
+pdfOrganiser.mode.1=Custom Page Order
+pdfOrganiser.mode.2=Reverse Order
+pdfOrganiser.mode.3=Duplex Sort
+pdfOrganiser.mode.4=Booklet Sort
+pdfOrganiser.mode.5=Side Stitch Booklet Sort
+pdfOrganiser.mode.6=Odd-Even Split
+pdfOrganiser.mode.7=Remove First
+pdfOrganiser.mode.8=Remove Last
+pdfOrganiser.mode.9=Remove First and Last
+pdfOrganiser.mode.10=Odd-Even Merge
+pdfOrganiser.placeholder=(e.g. 1,3,2 or 4-8,2,10-12 or 2n-1)
+
+
+#multiTool
+multiTool.title=PDF Multi Tool
+multiTool.header=PDF Multi Tool
+multiTool.uploadPrompts=File Name
+
+#view pdf
+viewPdf.title=View PDF
+viewPdf.header=View PDF
+
+#pageRemover
+pageRemover.title=Page Remover
+pageRemover.header=PDF Page remover
+pageRemover.pagesToDelete=Pages to delete (Enter a comma-separated list of page numbers) :
+pageRemover.submit=Delete Pages
+pageRemover.placeholder=(e.g. 1,2,6 or 1-10,15-30)
+
+
+#rotate
+rotate.title=Rotate PDF
+rotate.header=Rotate PDF
+rotate.selectAngle=Select rotation angle (in multiples of 90 degrees):
+rotate.submit=Rotate
+
+
+#split-pdfs
+split.title=Split PDF
+split.header=Split PDF
+split.desc.1=The numbers you select are the page number you wish to do a split on
+split.desc.2=As such selecting 1,3,7-9 would split a 10 page document into 6 separate PDFS with:
+split.desc.3=Document #1: Page 1
+split.desc.4=Document #2: Page 2 and 3
+split.desc.5=Document #3: Page 4, 5, 6 and 7
+split.desc.6=Document #4: Page 8
+split.desc.7=Document #5: Page 9
+split.desc.8=Document #6: Page 10
+split.splitPages=Enter pages to split on:
+split.submit=Split
+
+
+#merge
+imageToPDF.title=Image to PDF
+imageToPDF.header=Image to PDF
+imageToPDF.submit=Convert
+imageToPDF.selectLabel=Image Fit Options
+imageToPDF.fillPage=Fill Page
+imageToPDF.fitDocumentToImage=Fit Page to Image
+imageToPDF.maintainAspectRatio=Maintain Aspect Ratios
+imageToPDF.selectText.2=Auto rotate PDF
+imageToPDF.selectText.3=Multi file logic (Only enabled if working with multiple images)
+imageToPDF.selectText.4=Merge into single PDF
+imageToPDF.selectText.5=Convert to separate PDFs
+
+
+#pdfToImage
+pdfToImage.title=PDF to Image
+pdfToImage.header=PDF to Image
+pdfToImage.selectText=Image Format
+pdfToImage.singleOrMultiple=Page to Image result type
+pdfToImage.single=Single Big Image Combing all pages
+pdfToImage.multi=Multiple Images, one image per page
+pdfToImage.colorType=Colour type
+pdfToImage.color=Colour
+pdfToImage.grey=Greyscale
+pdfToImage.blackwhite=Black and White (May lose data!)
+pdfToImage.submit=Convert
+
+
+#addPassword
+addPassword.title=Add Password
+addPassword.header=Add password (Encrypt)
+addPassword.selectText.1=Select PDF to encrypt
+addPassword.selectText.2=User Password
+addPassword.selectText.3=Encryption Key Length
+addPassword.selectText.4=Higher values are stronger, but lower values have better compatibility.
+addPassword.selectText.5=Permissions to set (Recommended to be used along with Owner password)
+addPassword.selectText.6=Prevent assembly of document
+addPassword.selectText.7=Prevent content extraction
+addPassword.selectText.8=Prevent extraction for accessibility
+addPassword.selectText.9=Prevent filling in form
+addPassword.selectText.10=Prevent modification
+addPassword.selectText.11=Prevent annotation modification
+addPassword.selectText.12=Prevent printing
+addPassword.selectText.13=Prevent printing different formats
+addPassword.selectText.14=Owner Password
+addPassword.selectText.15=Restricts what can be done with the document once it is opened (Not supported by all readers)
+addPassword.selectText.16=Restricts the opening of the document itself
+addPassword.submit=Encrypt
+
+
+#watermark
+watermark.title=Add Watermark
+watermark.header=Add Watermark
+watermark.selectText.1=Select PDF to add watermark to:
+watermark.selectText.2=Watermark Text:
+watermark.selectText.3=Font Size:
+watermark.selectText.4=Rotation (0-360):
+watermark.selectText.5=widthSpacer (Space between each watermark horizontally):
+watermark.selectText.6=heightSpacer (Space between each watermark vertically):
+watermark.selectText.7=Opacity (0% - 100%):
+watermark.selectText.8=Watermark Type:
+watermark.selectText.9=Watermark Image:
+watermark.submit=Add Watermark
+watermark.type.1=Text
+watermark.type.2=Image
+
+
+#Change permissions
+permissions.title=Change Permissions
+permissions.header=Change Permissions
+permissions.warning=Warning to have these permissions be unchangeable it is recommended to set them with a password via the add-password page
+permissions.selectText.1=Select PDF to change permissions
+permissions.selectText.2=Permissions to set
+permissions.selectText.3=Prevent assembly of document
+permissions.selectText.4=Prevent content extraction
+permissions.selectText.5=Prevent extraction for accessibility
+permissions.selectText.6=Prevent filling in form
+permissions.selectText.7=Prevent modification
+permissions.selectText.8=Prevent annotation modification
+permissions.selectText.9=Prevent printing
+permissions.selectText.10=Prevent printing different formats
+permissions.submit=Change
+
+
+#remove password
+removePassword.title=Remove password
+removePassword.header=Remove password (Decrypt)
+removePassword.selectText.1=Select PDF to Decrypt
+removePassword.selectText.2=Password
+removePassword.submit=Remove
+
+
+#changeMetadata
+changeMetadata.title=Change Metadata
+changeMetadata.header=Change Metadata
+changeMetadata.selectText.1=Please edit the variables you wish to change
+changeMetadata.selectText.2=Delete all metadata
+changeMetadata.selectText.3=Show Custom Metadata:
+changeMetadata.author=Author:
+changeMetadata.creationDate=Creation Date (yyyy/MM/dd HH:mm:ss):
+changeMetadata.creator=Creator:
+changeMetadata.keywords=Keywords:
+changeMetadata.modDate=Modification Date (yyyy/MM/dd HH:mm:ss):
+changeMetadata.producer=Producer:
+changeMetadata.subject=Subject:
+changeMetadata.trapped=Trapped:
+changeMetadata.selectText.4=Other Metadata:
+changeMetadata.selectText.5=Add Custom Metadata Entry
+changeMetadata.submit=Change
+
+
+#pdfToPDFA
+pdfToPDFA.title=PDF To PDF/A
+pdfToPDFA.header=PDF To PDF/A
+pdfToPDFA.credit=This service uses OCRmyPDF for PDF/A conversion
+pdfToPDFA.submit=Convert
+pdfToPDFA.tip=Currently does not work for multiple inputs at once
+pdfToPDFA.outputFormat=Output format
+pdfToPDFA.pdfWithDigitalSignature=The PDF contains a digital signature. This will be removed in the next step.
+
+
+#PDFToWord
+PDFToWord.title=PDF to Word
+PDFToWord.header=PDF to Word
+PDFToWord.selectText.1=Output file format
+PDFToWord.credit=This service uses LibreOffice for file conversion.
+PDFToWord.submit=Convert
+
+
+#PDFToPresentation
+PDFToPresentation.title=PDF to Presentation
+PDFToPresentation.header=PDF to Presentation
+PDFToPresentation.selectText.1=Output file format
+PDFToPresentation.credit=This service uses LibreOffice for file conversion.
+PDFToPresentation.submit=Convert
+
+
+#PDFToText
+PDFToText.title=PDF to RTF (Text)
+PDFToText.header=PDF to RTF (Text)
+PDFToText.selectText.1=Output file format
+PDFToText.credit=This service uses LibreOffice for file conversion.
+PDFToText.submit=Convert
+
+
+#PDFToHTML
+PDFToHTML.title=PDF to HTML
+PDFToHTML.header=PDF to HTML
+PDFToHTML.credit=This service uses pdftohtml for file conversion.
+PDFToHTML.submit=Convert
+
+
+#PDFToXML
+PDFToXML.title=PDF to XML
+PDFToXML.header=PDF to XML
+PDFToXML.credit=This service uses LibreOffice for file conversion.
+PDFToXML.submit=Convert
+
+#PDFToCSV
+PDFToCSV.title=PDF to CSV
+PDFToCSV.header=PDF to CSV
+PDFToCSV.prompt=Choose page to extract table
+PDFToCSV.submit=Extract
+
+#split-by-size-or-count
+split-by-size-or-count.title=Split PDF by Size or Count
+split-by-size-or-count.header=Split PDF by Size or Count
+split-by-size-or-count.type.label=Select Split Type
+split-by-size-or-count.type.size=By Size
+split-by-size-or-count.type.pageCount=By Page Count
+split-by-size-or-count.type.docCount=By Document Count
+split-by-size-or-count.value.label=Enter Value
+split-by-size-or-count.value.placeholder=Enter size (e.g., 2MB or 3KB) or count (e.g., 5)
+split-by-size-or-count.submit=Submit
+
+
+#overlay-pdfs
+overlay-pdfs.header=Overlay PDF Files
+overlay-pdfs.baseFile.label=Select Base PDF File
+overlay-pdfs.overlayFiles.label=Select Overlay PDF Files
+overlay-pdfs.mode.label=Select Overlay Mode
+overlay-pdfs.mode.sequential=Sequential Overlay
+overlay-pdfs.mode.interleaved=Interleaved Overlay
+overlay-pdfs.mode.fixedRepeat=Fixed Repeat Overlay
+overlay-pdfs.counts.label=Antal overlejringer (for Fixed Repeat Mode)
+overlay-pdfs.counts.placeholder=Indtast kommaseparerede tællinger (f.eks. 2,3,1)
+overlay-pdfs.position.label=Vælg overlejringsposition
+overlay-pdfs.position.foreground=Forgrund
+overlay-pdfs.position.background=Baggrund
+overlay-pdfs.submit=Indsend
+
+
+#split-by-sections
+split-by-sections.title=Del PDF i Sektioner
+split-by-sections.header=Del PDF ind i Sektioner
+split-by-sections.horizontal.label=Horisontal Deling
+split-by-sections.vertical.label=Vertikal Deling
+split-by-sections.horizontal.placeholder=Indtast antal horisontale delinger
+split-by-sections.vertical.placeholder=Indtast antal af vertikale delinger
+split-by-sections.submit=Del PDF
+split-by-sections.merge=Slå sammen til én PDF
+
+
+#printFile
+printFile.title=Udskriv Fil
+printFile.header=Udskriv Fil til Printer
+printFile.selectText.1=Vælg Fil som skal Udskrives
+printFile.selectText.2=Indtast printernavn
+printFile.submit=Udskriv
+
+
+#licenses
+licenses.nav=Licenser
+licenses.title=Trejdepartslicenser
+licenses.header=Trejdepartslicenser
+licenses.module=Modul
+licenses.version=Version
+licenses.license=License
+
+#survey
+survey.nav=Survey
+survey.title=Stirling-PDF Survey
+survey.description=Stirling-PDF has no tracking so we want to hear from our users to improve Stirling-PDF!
+survey.please=Please consider taking our survey!
+survey.disabled=(Survey popup will be disabled in following updates but available at foot of page)
+survey.button=Take Survey
+survey.dontShowAgain=Don't show again
+
+
+#error
+error.sorry=Beklager fejlen!
+error.needHelp=Brug for hjælp / Fundet et problem?
+error.contactTip=Hvis du stadig har problemer, skal du endelig tage kontakt til os, for at få hjælp. Du kan oprette en ticket på vores Github-side eller tage kontakt til os via Discord:
+error.404.head=404 - Siden ikke fundet | Ups, vi er viklet helt ind i kode!
+error.404.1=Vi kan ikke finde siden du leder efter.
+error.404.2=Noget gik galt
+error.github=Indsend en ticket på GitHub
+error.showStack=Vis Stack Trace
+error.copyStack=Kopier Stack Trace
+error.githubSubmit=GitHub - Indsend en ticket
+error.discordSubmit=Discord - Indsend Support post
diff --git a/src/main/resources/static/images/flags/dk.svg b/src/main/resources/static/images/flags/dk.svg
new file mode 100644
index 00000000..563277f8
--- /dev/null
+++ b/src/main/resources/static/images/flags/dk.svg
@@ -0,0 +1,5 @@
+
diff --git a/src/main/resources/templates/fragments/languages.html b/src/main/resources/templates/fragments/languages.html
index e5babada..e625adf7 100644
--- a/src/main/resources/templates/fragments/languages.html
+++ b/src/main/resources/templates/fragments/languages.html
@@ -4,6 +4,7 @@
Català 简体中文 繁體中文
+ Dansk Deutsch English (GB) English (US)