diff --git a/.DS_Store b/.DS_Store
new file mode 100644
index 00000000..c3c40f2c
Binary files /dev/null and b/.DS_Store differ
diff --git a/src/.DS_Store b/src/.DS_Store
new file mode 100644
index 00000000..7b0d3672
Binary files /dev/null and b/src/.DS_Store differ
diff --git a/src/main/.DS_Store b/src/main/.DS_Store
new file mode 100644
index 00000000..53fb0515
Binary files /dev/null and b/src/main/.DS_Store differ
diff --git a/src/main/resources/.DS_Store b/src/main/resources/.DS_Store
new file mode 100644
index 00000000..2a43b86b
Binary files /dev/null and b/src/main/resources/.DS_Store differ
diff --git a/src/main/resources/messages_id_ID.properties b/src/main/resources/messages_id_ID.properties
new file mode 100644
index 00000000..120b9d19
--- /dev/null
+++ b/src/main/resources/messages_id_ID.properties
@@ -0,0 +1,895 @@
+###########
+# Generic #
+###########
+# the direction that the language is written (ltr = left to right, rtl = right to left)
+language.direction=ltr
+
+pdfPrompt=Pilih PDF
+multiPdfPrompt=Pilih PDF (2+)
+multiPdfDropPrompt=Pilih (atau seret & letakkan)) semua PDF yang Anda butuhkan
+imgPrompt=Pilih Gambar
+genericSubmit=Kirim
+processTimeWarning=Peringatan: Proses ini dapat memakan waktu hingga satu menit, tergantung pada ukuran file
+pageOrderPrompt=Urutan Halaman Khusus (Masukkan daftar nomor halaman yang dipisahkan dengan koma atau Fungsi seperti 2n + 1) :
+goToPage=Ke
+true=Benar
+false=Salah
+unknown=Tidak diketahui
+save=Simpan
+close=Tutup
+filesSelected=berkas dipilih
+noFavourites=Tidak ada favorit yang ditambahkan
+bored=Bosan Menunggu?
+alphabet=Abjad
+downloadPdf=Unduh PDF
+text=Teks
+font=Jenis huruf
+selectFillter=-- Pilih --
+pageNum=Nomor Halaman
+sizes.small=Kecil
+sizes.medium=Sedang
+sizes.large=Besar
+sizes.x-large=Sangat Besar
+error.pdfPassword=Dokumen PDF disandikan dan kata sandi tidak diberikan atau kata sandi salah
+delete=Hapus
+username=Nama pengguna
+password=Kata sandi
+welcome=Selamat Datang
+property=Properti
+black=Hitam
+white=Putih
+red=Merah
+green=Hijau
+blue=Biru
+custom=Kustom...
+
+changedCredsMessage=Kredensial berubah!!
+notAuthenticatedMessage=Pengguna tidak ter-autentikasi.
+userNotFoundMessage=Pengguna tidak ditemukan.
+incorrectPasswordMessage=Kata sandi saat ini salah.
+usernameExistsMessage=Nama pengguna baru sudah ada.
+
+
+
+#############
+# NAVBAR #
+#############
+navbar.convert=Konversi
+navbar.security=Keamanan
+navbar.other=Lain-lain
+navbar.darkmode=Mode Gelap
+navbar.pageOps=Operasi Halaman
+navbar.settings=Pengaturan
+
+#############
+# SETTINGS #
+#############
+settings.title=Pengaturan
+settings.update=Pembaruan tersedia
+settings.appVersion=Versi Aplikasi:
+settings.downloadOption.title=Pilih opsi unduhan (Untuk unduhan file tunggal non zip):
+settings.downloadOption.1=Buka di jendela yang sama
+settings.downloadOption.2=Buka di jendela baru
+settings.downloadOption.3=Unduh berkas
+settings.zipThreshold=Berkas zip ketika jumlah file yang diunduh melebihi
+settings.signOut=Keluar
+settings.accountSettings=Pengaturan Akun
+
+
+
+changeCreds.title=Ubah Kredensial
+changeCreds.header=Perbarui Detail Akun Anda
+changeCreds.changeUserAndPassword=Anda menggunakan kredensial masuk default. Masukkan kata sandi baru (dan nama pengguna jika diinginkan)
+changeCreds.newUsername=Nama Pengguna Baru
+changeCreds.oldPassword=Kata Sandi Saat Ini
+changeCreds.newPassword=Kata Sandi Baru
+changeCreds.confirmNewPassword=Konfirmasi Kata Sandi Baru
+changeCreds.submit=Kirim Perubahan
+
+
+
+account.title=Pengaturan Akun
+account.accountSettings=Pengaturan Akun
+account.adminSettings=Pengaturan Admin - Melihat dan Menambahkan Pengguna
+account.userControlSettings=Pengaturan Kontrol Pengguna
+account.changeUsername=Nama Pengguna Baru
+account.changeUsername=Ubah Nama Pengguna
+account.password=Konfirmasi Kata sandi
+account.oldPassword=Kata sandi lama
+account.newPassword=Kata Sandi Baru
+account.changePassword=Ubah Kata Sandi
+account.confirmNewPassword=Konfirmasi Kata Sandi Baru
+account.signOut=Keluar
+account.yourApiKey=API Key Anda
+account.syncTitle=Menyinkronkan pengaturan browser dengan Akun
+account.settingsCompare=Perbandingan Pengaturan:
+account.property=Properti
+account.webBrowserSettings=Pengaturan Peramban Web
+account.syncToBrowser=Sinkronisasi Akun -> Browser
+account.syncToAccount=Sinkronisasi Akun <- Browser
+
+
+adminUserSettings.title=Pengaturan Kontrol Pengguna
+adminUserSettings.header=Pengaturan Kontrol Admin
+adminUserSettings.admin=Admin
+adminUserSettings.user=Pengguna
+adminUserSettings.addUser=Tambahkan Pengguna Baru
+adminUserSettings.roles=Peran
+adminUserSettings.role=Peran
+adminUserSettings.actions=Tindakan
+adminUserSettings.apiUser=Pengguna API Terbatas
+adminUserSettings.webOnlyUser=Pengguna Khusus Web
+adminUserSettings.forceChange = Memaksa pengguna untuk mengubah nama pengguna/kata sandi saat masuk
+adminUserSettings.submit=Simpan Pengguna
+
+#############
+# 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.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
+showJS.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
+
+###########################
+# #
+# WEB PAGES #
+# #
+###########################
+#login
+login.title=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
+
+
+#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
+
+
+#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
+
+
+#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 Image
+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.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.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
+
+
+#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.document.1=Document 1
+compare.document.2=Document 2
+compare.submit=Compare
+
+
+#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 PDFs
+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.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.submit=Merge
+
+
+#pdfOrganiser
+pdfOrganiser.title=Page Organiser
+pdfOrganiser.header=PDF Page Organiser
+pdfOrganiser.submit=Rearrange Pages
+
+
+#multiTool
+multiTool.title=PDF Multi Tool
+multiTool.header=PDF Multi Tool
+
+#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
+
+
+#rotate
+rotate.title=Rotate PDF
+rotate.header=Rotate PDF
+rotate.selectAngle=Select rotation angle (in multiples of 90 degrees):
+rotate.submit=Rotate
+
+
+#merge
+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-8 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 and 6
+split.desc.6=Document #4: Page 7
+split.desc.7=Document #5: Page 8
+split.desc.8=Document #6: Page 9 and 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
+
+
+#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.title=Title:
+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
+
+
+#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 LibreOffice 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.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=Overlay Counts (for Fixed Repeat Mode)
+overlay-pdfs.counts.placeholder=Enter comma-separated counts (e.g., 2,3,1)
+overlay-pdfs.position.label=Select Overlay Position
+overlay-pdfs.position.foreground=Foreground
+overlay-pdfs.position.background=Background
+overlay-pdfs.submit=Submit
+
+
+#split-by-sections
+split-by-sections.title=Split PDF by Sections
+split-by-sections.header=Split PDF into Sections
+split-by-sections.horizontal.label=Horizontal Divisions
+split-by-sections.vertical.label=Vertical Divisions
+split-by-sections.horizontal.placeholder=Enter number of horizontal divisions
+split-by-sections.vertical.placeholder=Enter number of vertical divisions
+split-by-sections.submit=Split PDF
diff --git a/src/main/resources/static/.DS_Store b/src/main/resources/static/.DS_Store
new file mode 100644
index 00000000..a9c696b9
Binary files /dev/null and b/src/main/resources/static/.DS_Store differ
diff --git a/src/main/resources/static/images/.DS_Store b/src/main/resources/static/images/.DS_Store
new file mode 100644
index 00000000..4975d990
Binary files /dev/null and b/src/main/resources/static/images/.DS_Store differ
diff --git a/src/main/resources/static/images/flags/id.svg b/src/main/resources/static/images/flags/id.svg
new file mode 100644
index 00000000..3b7c8fcf
--- /dev/null
+++ b/src/main/resources/static/images/flags/id.svg
@@ -0,0 +1,4 @@
+
diff --git a/src/main/resources/templates/fragments/languages.html b/src/main/resources/templates/fragments/languages.html
index 1983c982..dadc9d9a 100644
--- a/src/main/resources/templates/fragments/languages.html
+++ b/src/main/resources/templates/fragments/languages.html
@@ -29,6 +29,9 @@
Français
+
+ Indonesia
+
Italiano