Merge pull request #745 from Stirling-Tools/v2-wip-rollup-backend-test

fix: use rollup to resolve locale imports
This commit is contained in:
Eric 2024-01-27 12:06:42 -05:00 committed by GitHub
commit 9a721f8658
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with 1283 additions and 1820 deletions

View File

@ -12,22 +12,16 @@ import NavBar from "./components/NavBar";
import "bootstrap/dist/css/bootstrap.min.css";
import { Container } from "react-bootstrap";
import i18n from "i18next";
import { useTranslation, initReactI18next } from "react-i18next";
import LanguageDetector from "i18next-browser-languagedetector";
import ar from "./locales/ar.json";
import en from "./locales/en.json";
import i18n, { options } from "@stirling-pdf/shared-operations/src/i18next.config";
i18n.use(LanguageDetector)
.use(initReactI18next).init(options) // passes i18n down to react-i18next
import "./general.css";
i18n
.use(LanguageDetector)
.use(initReactI18next) // passes i18n down to react-i18next
.init({
fallbackLng: "en",
resources: { ar,en },
});
export default function App() {
return (

View File

@ -7,6 +7,7 @@ function generateSublist() {
const { i18n } = useTranslation();
const out: JSX.Element[] = [];
const languages = i18n.options.resources;
for (const key in languages) {
const lang: any = languages[key].translation;
const staticKey = key;

View File

@ -1,853 +0,0 @@
{
"translation": {
"language": {
"name":"العربية",
"flag": "🇸🇦",
"direction": "rtl"
},
"pdfPrompt": "اختر PDF",
"multiPdfPrompt": "اختر ملفات PDF (2+)",
"multiPdfDropPrompt": "حدد (أو اسحب وأفلت) جميع ملفات PDF التي تحتاجها",
"imgPrompt": "اختر صورة",
"genericSubmit": "إرسال",
"processTimeWarning": "تحذير: يمكن أن تستغرق هذه العملية ما يصل إلى دقيقة حسب حجم الملف",
"pageOrderPrompt": "ترتيب الصفحات (أدخل قائمة بأرقام الصفحات مفصولة بفواصل):",
"goToPage": "اذهب",
"true": "\u0635\u062D\u064A\u062D",
"false": "\u062E\u0637\u0623",
"unknown": "\u063A\u064A\u0631 \u0645\u0639\u0631\u0648\u0641",
"save": "\u062D\u0641\u0638",
"close": "\u0625\u063A\u0644\u0627\u0642",
"filesSelected": "الملفات المحددة",
"noFavourites": "لم تتم إضافة أي مفضلات",
"bored": "الانتظار بالملل؟",
"alphabet": "\u0627\u0644\u0623\u0628\u062C\u062F\u064A\u0629",
"downloadPdf": "تنزيل PDF",
"text": "نص",
"font": "الخط",
"selectFillter": "- حدد -",
"pageNum": "رقم الصفحة",
"sizes": {
"small": "Small",
"medium": "Medium",
"large": "Large",
"x-large": "X-Large"
},
"error": {
"pdfPassword": "The PDF Document is passworded and either the password was not provided or was incorrect"
},
"delete": "Delete",
"username": "Username",
"password": "Password",
"welcome": "Welcome",
"property": "Property",
"black": "Black",
"white": "White",
"red": "Red",
"green": "Green",
"blue": "Blue",
"custom": "Custom...",
"changedCredsMessage": "Credentials changed!",
"notAuthenticatedMessage": "User not authenticated.",
"userNotFoundMessage": "User not found.",
"incorrectPasswordMessage": "Current password is incorrect.",
"usernameExistsMessage": "New Username already exists.",
"navbar": {
"convert": "تحويل",
"security": "الأمان",
"other": "أخرى",
"darkmode": "الوضع الداكن",
"pageOps": "عمليات الصفحة",
"settings": "\u0625\u0639\u062F\u0627\u062F\u0627\u062A"
},
"settings": {
"title": "\u0627\u0644\u0625\u0639\u062F\u0627\u062F\u0627\u062A",
"update": "\u0627\u0644\u062A\u062D\u062F\u064A\u062B \u0645\u062A\u0627\u062D",
"appVersion": "\u0625\u0635\u062F\u0627\u0631 \u0627\u0644\u062A\u0637\u0628\u064A\u0642:",
"downloadOption": {
"1": "\u0641\u062A\u062D \u0641\u064A \u0646\u0641\u0633 \u0627\u0644\u0646\u0627\u0641\u0630\u0629",
"2": "\u0641\u062A\u062D \u0641\u064A \u0646\u0627\u0641\u0630\u0629 \u062C\u062F\u064A\u062F\u0629",
"3": "\u062A\u0646\u0632\u064A\u0644 \u0627\u0644\u0645\u0644\u0641",
"title": "\u062A\u062D\u062F\u064A\u062F \u062E\u064A\u0627\u0631 \u0627\u0644\u062A\u0646\u0632\u064A\u0644 (\u0644\u0644\u062A\u0646\u0632\u064A\u0644\u0627\u062A \u0630\u0627\u062A \u0627\u0644\u0645\u0644\u0641 \u0627\u0644\u0648\u0627\u062D\u062F \u063A\u064A\u0631 \u0627\u0644\u0645\u0636\u063A\u0648\u0637):"
},
"zipThreshold": "\u0645\u0644\u0641\u0627\u062A \u0645\u0636\u063A\u0648\u0637\u0629 \u0639\u0646\u062F \u062A\u062C\u0627\u0648\u0632 \u0639\u062F\u062F \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0645 \u062A\u0646\u0632\u064A\u0644\u0647\u0627",
"signOut": "Sign Out",
"accountSettings": "Account Settings"
},
"changeCreds": {
"title": "Change Credentials",
"header": "Update Your Account Details",
"changeUserAndPassword": "You are using default login credentials. Please enter a new password (and username if wanted)",
"newUsername": "New Username",
"oldPassword": "Current Password",
"newPassword": "New Password",
"confirmNewPassword": "Confirm New Password",
"submit": "Submit Changes"
},
"account": {
"title": "Account Settings",
"accountSettings": "Account Settings",
"adminSettings": "Admin Settings - View and Add Users",
"userControlSettings": "User Control Settings",
"changeUsername": "Change Username",
"password": "Confirmation Password",
"oldPassword": "Old password",
"newPassword": "New Password",
"changePassword": "Change Password",
"confirmNewPassword": "Confirm New Password",
"signOut": "Sign Out",
"yourApiKey": "Your API Key",
"syncTitle": "Sync browser settings with Account",
"settingsCompare": "Settings Comparison:",
"property": "Property",
"webBrowserSettings": "Web Browser Setting",
"syncToBrowser": "Sync Account -> Browser",
"syncToAccount": "Sync Account <- Browser"
},
"adminUserSettings": {
"title": "User Control Settings",
"header": "Admin User Control Settings",
"admin": "Admin",
"user": "User",
"addUser": "Add New User",
"roles": "Roles",
"role": "Role",
"actions": "Actions",
"apiUser": "Limited API User",
"webOnlyUser": "Web Only User",
"forceChange": "Force user to change username/password on login",
"submit": "Save User"
},
"home": {
"desc": "متجرك الشامل المستضاف محليًا لجميع احتياجات PDF الخاصة بك.",
"searchBar": "Search for features...",
"viewPdf": {
"title": "View PDF",
"desc": "View, annotate, add text or images"
},
"multiTool": {
"title": "أداة متعددة PDF",
"desc": "دمج الصفحات وتدويرها وإعادة ترتيبها وإزالتها"
},
"merge": {
"title": "دمج ملفات",
"desc": "دمج ملفات PDF متعددة في ملف واحد بسهولة."
},
"split": {
"title": "انقسام ملفات",
"desc": "تقسيم ملفات PDF إلى مستندات متعددة"
},
"rotate": {
"title": "تدوير ملفات",
"desc": "قم بتدوير ملفات PDF الخاصة بك بسهولة."
},
"imageToPdf": {
"title": "صورة إلى PDF",
"desc": "تحويل الصور (PNG ، JPEG ، GIF) إلى PDF."
},
"pdfToImage": {
"title": "تحويل PDF إلى صورة",
"desc": "تحويل ملف PDF إلى صورة. (PNG ، JPEG ، GIF)"
},
"pdfOrganiser": {
"title": "منظم",
"desc": "إزالة / إعادة ترتيب الصفحات بأي ترتيب"
},
"addImage": {
"title": "إضافة صورة إلى ملف PDF",
"desc": "إضافة صورة إلى موقع معين في PDF (العمل قيد التقدم)"
},
"watermark": {
"title": "إضافة علامة مائية",
"desc": "أضف علامة مائية مخصصة إلى مستند PDF الخاص بك."
},
"permissions": {
"title": "تغيير الأذونات",
"desc": "قم بتغيير أذونات مستند PDF الخاص بك"
},
"removePages": {
"title": "إزالة الصفحات",
"desc": "حذف الصفحات غير المرغوب فيها من مستند PDF الخاص بك."
},
"addPassword": {
"title": "إضافة كلمة مرور",
"desc": "تشفير مستند PDF الخاص بك بكلمة مرور."
},
"removePassword": {
"title": "إزالة كلمة المرور",
"desc": "إزالة الحماية بكلمة مرور من مستند PDF الخاص بك."
},
"compressPdfs": {
"title": "ضغط ملفات",
"desc": "ضغط ملفات PDF لتقليل حجم الملف."
},
"changeMetadata": {
"title": "\u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0648\u0635\u0641\u064A\u0629",
"desc": "\u062A\u063A\u064A\u064A\u0631 / \u0625\u0632\u0627\u0644\u0629 / \u0625\u0636\u0627\u0641\u0629 \u0628\u064A\u0627\u0646\u0627\u062A \u0623\u0648\u0644\u064A\u0629 \u0645\u0646 \u0645\u0633\u062A\u0646\u062F PDF"
},
"fileToPDF": {
"title": "\u062A\u062D\u0648\u064A\u0644 \u0627\u0644\u0645\u0644\u0641 \u0625\u0644\u0649 PDF",
"desc": "\u062A\u062D\u0648\u064A\u0644 \u0623\u064A \u0645\u0644\u0641 \u062A\u0642\u0631\u064A\u0628\u0627 \u0625\u0644\u0649 PDF (DOCX \u0648PNG \u0648XLS \u0648PPT \u0648TXT \u0648\u0627\u0644\u0645\u0632\u064A\u062F)"
},
"ocr": {
"title": "\u062A\u0634\u063A\u064A\u0644 OCR \u0639\u0644\u0649 PDF \u0648 / \u0623\u0648 \u0645\u0633\u062D \u0636\u0648\u0626\u064A",
"desc": "\u064A\u0642\u0648\u0645 \u0628\u0631\u0646\u0627\u0645\u062C \u0627\u0644\u062A\u0646\u0638\u064A\u0641 \u0628\u0645\u0633\u062D \u0648\u0627\u0643\u062A\u0634\u0627\u0641 \u0627\u0644\u0646\u0635 \u0645\u0646 \u0627\u0644\u0635\u0648\u0631 \u062F\u0627\u062E\u0644 \u0645\u0644\u0641 PDF \u0648\u064A\u0639\u064A\u062F \u0625\u0636\u0627\u0641\u062A\u0647 \u0643\u0646\u0635"
},
"extractImages": {
"title": "\u0627\u0633\u062A\u062E\u0631\u0627\u062C \u0627\u0644\u0635\u0648\u0631",
"desc": "\u064A\u0633\u062A\u062E\u0631\u062C \u062C\u0645\u064A\u0639 \u0627\u0644\u0635\u0648\u0631 \u0645\u0646 \u0645\u0644\u0641 PDF \u0648\u064A\u062D\u0641\u0638\u0647\u0627 \u0641\u064A \u0627\u0644\u0631\u0645\u0632 \u0627\u0644\u0628\u0631\u064A\u062F\u064A"
},
"pdfToPDFA": {
"title": "\u062A\u062D\u0648\u064A\u0644 \u0645\u0644\u0641\u0627\u062A PDF \u0625\u0644\u0649 PDF / A",
"desc": "\u062A\u062D\u0648\u064A\u0644 PDF \u0625\u0644\u0649 PDF / A \u0644\u0644\u062A\u062E\u0632\u064A\u0646 \u0637\u0648\u064A\u0644 \u0627\u0644\u0645\u062F\u0649"
},
"PDFToWord": {
"title": "تحويل PDF إلى Word",
"desc": "تحويل PDF إلى تنسيقات Word (DOC و DOCX و ODT)"
},
"PDFToPresentation": {
"title": "PDF للعرض التقديمي",
"desc": "تحويل PDF إلى تنسيقات عرض تقديمي (PPT و PPTX و ODP)"
},
"PDFToText": {
"title": "تحويل PDF إلى نص / RTF",
"desc": "تحويل PDF إلى تنسيق نص أو RTF"
},
"PDFToHTML": {
"title": "تحويل PDF إلى HTML",
"desc": "تحويل PDF إلى تنسيق HTML"
},
"PDFToXML": {
"title": "تحويل PDF إلى XML",
"desc": "تحويل PDF إلى تنسيق XML"
},
"ScannerImageSplit": {
"title": "كشف / انقسام الصور الممسوحة ضوئيًا",
"desc": "تقسيم عدة صور من داخل صورة / ملف PDF"
},
"sign": {
"title": "تسجيل الدخول",
"desc": "إضافة التوقيع إلى PDF عن طريق الرسم أو النص أو الصورة"
},
"flatten": {
"title": "تسطيح",
"desc": "قم بإزالة كافة العناصر والنماذج التفاعلية من ملف PDF"
},
"repair": {
"title": "إصلاح",
"desc": "يحاول إصلاح ملف PDF تالف / معطل"
},
"removeBlanks": {
"title": "إزالة الصفحات الفارغة",
"desc": "يكتشف ويزيل الصفحات الفارغة من المستند"
},
"compare": {
"title": "قارن",
"desc": "يقارن ويظهر الاختلافات بين 2 من مستندات PDF"
},
"certSign": {
"title": "Sign with Certificate",
"desc": "Signs a PDF with a Certificate/Key (PEM/P12)"
},
"pageLayout": {
"title": "Multi-Page Layout",
"desc": "Merge multiple pages of a PDF document into a single page"
},
"scalePages": {
"title": "Adjust page size/scale",
"desc": "Change the size/scale of page and/or its contents."
},
"pipeline": {
"title": "Pipeline (Advanced)",
"desc": "Run multiple actions on PDFs by defining pipeline scripts"
},
"add-page-numbers": {
"title": "Add Page Numbers",
"desc": "Add Page numbers throughout a document in a set location"
},
"auto-rename": {
"title": "Auto Rename PDF File",
"desc": "Auto renames a PDF file based on its detected header"
},
"adjust-contrast": {
"title": "Adjust Colors/Contrast",
"desc": "Adjust Contrast, Saturation and Brightness of a PDF"
},
"crop": {
"title": "Crop PDF",
"desc": "Crop a PDF to reduce its size (maintains text!)"
},
"autoSplitPDF": {
"title": "Auto Split Pages",
"desc": "Auto Split Scanned PDF with physical scanned page splitter QR Code"
},
"sanitizePdf": {
"title": "Sanitize",
"desc": "Remove scripts and other elements from PDF files"
},
"URLToPDF": {
"title": "URL/Website To PDF",
"desc": "Converts any http(s)URL to PDF"
},
"HTMLToPDF": {
"title": "HTML to PDF",
"desc": "Converts any HTML file or zip to PDF"
},
"MarkdownToPDF": {
"title": "Markdown to PDF",
"desc": "Converts any Markdown file to PDF"
},
"getPdfInfo": {
"title": "Get ALL Info on PDF",
"desc": "Grabs any and all information possible on PDFs"
},
"extractPage": {
"title": "Extract page(s)",
"desc": "Extracts select pages from PDF"
},
"PdfToSinglePage": {
"title": "PDF to Single Large Page",
"desc": "Merges all PDF pages into one large single page"
},
"showJS": {
"title": "Show Javascript",
"desc": "Searches and displays any JS injected into a PDF"
},
"autoRedact": {
"title": "Auto Redact",
"desc": "Auto Redacts(Blacks out) text in a PDF based on input text"
}
},
"viewPdf": {
"tags": "view,read,annotate,text,image",
"title": "View PDF",
"header": "View PDF"
},
"multiTool": {
"tags": "Multi Tool,Multi operation,UI,click drag,front end,client side",
"title": "أداة متعددة PDF",
"header": "أداة متعددة PDF"
},
"merge": {
"tags": "merge,Page operations,Back end,server side",
"title": "دمج",
"header": "دمج ملفات PDF متعددة (2+)",
"sortByName": "Sort by name",
"sortByDate": "Sort by date",
"submit": "دمج"
},
"split": {
"tags": "Page operations,divide,Multi Page,cut,server side",
"title": "انقسام PDF",
"header": "تقسيم PDF",
"desc": {
"1": "الأرقام التي تحددها هي رقم الصفحة التي تريد تقسيمها",
"2": "على هذا النحو ، سيؤدي تحديد 1،3،7-8 إلى تقسيم مستند من 10 صفحات إلى 6 PDFS منفصلة مع:",
"3": "المستند رقم 1: الصفحة 1",
"4": "المستند رقم 2: الصفحتان 2 و 3",
"5": "المستند رقم 3: الصفحة 4 و 5 و 6",
"6": "المستند رقم 4: الصفحة 7",
"7": "المستند رقم 5: الصفحة 8",
"8": "المستند رقم 6: الصفحتان 9 و 10"
},
"splitPages": "أدخل الصفحات المراد تقسيمها:",
"submit": "Split"
},
"rotate": {
"tags": "server side",
"title": "تدوير PDF",
"header": "تدوير PDF",
"selectAngle": "حدد زاوية الدوران (بمضاعفات 90 درجة):",
"submit": "استدارة"
},
"imageToPdf": {
"tags": "conversion,img,jpg,picture,photo"
},
"pdfToImage": {
"tags": "conversion,img,jpg,picture,photo",
"title": "تحويل PDF إلى صورة",
"header": "تحويل PDF إلى صورة",
"selectText": "تنسيق الصورة",
"singleOrMultiple": "\u0646\u0648\u0639 \u0646\u062A\u064A\u062C\u0629 \u0627\u0644\u0635\u0648\u0631\u0629",
"single": "\u0635\u0648\u0631\u0629 \u0648\u0627\u062D\u062F\u0629 \u0643\u0628\u064A\u0631\u0629",
"multi": "\u0635\u0648\u0631 \u0645\u062A\u0639\u062F\u062F\u0629",
"colorType": "\u0646\u0648\u0639 \u0627\u0644\u0644\u0648\u0646",
"color": "\u0627\u0644\u0644\u0648\u0646",
"grey": "\u062A\u062F\u0631\u062C \u0627\u0644\u0631\u0645\u0627\u062F\u064A",
"blackwhite": "\u0623\u0628\u064A\u0636 \u0648\u0623\u0633\u0648\u062F (\u0642\u062F \u064A\u0641\u0642\u062F \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A!)",
"submit": "تحول"
},
"pdfOrganiser": {
"tags": "duplex,even,odd,sort,move",
"title": "منظم الصفحة",
"header": "منظم صفحات PDF",
"submit": "إعادة ترتيب الصفحات"
},
"addImage": {
"tags": "img,jpg,picture,photo",
"title": "إضافة صورة",
"header": "إضافة صورة إلى PDF",
"everyPage": "كل صفحة؟",
"upload": "إضافة صورة",
"submit": "إضافة صورة"
},
"watermark": {
"tags": "Text,repeating,label,own,copyright,trademark,img,jpg,picture,photo",
"title": "إضافة علامة مائية",
"header": "إضافة علامة مائية",
"selectText": {
"1": "حدد PDF لإضافة العلامة المائية إلى:",
"2": "نص العلامة المائية:",
"3": "حجم الخط:",
"4": "دوران (0-360):",
"5": "widthSpacer (مسافة بين كل علامة مائية أفقيًا):",
"6": "heightSpacer (مسافة بين كل علامة مائية عموديًا):",
"7": "\u0627\u0644\u062A\u0639\u062A\u064A\u0645 (0\u066A - 100\u066A):",
"8": "Watermark Type:",
"9": "Watermark Image:"
},
"submit": "إضافة علامة مائية"
},
"permissions": {
"tags": "read,write,edit,print",
"title": "تغيير الأذونات",
"header": "تغيير الأذونات",
"warning": "تحذير من أن تكون هذه الأذونات غير قابلة للتغيير ، يوصى بتعيينها بكلمة مرور عبر صفحة إضافة كلمة المرور",
"selectText": {
"1": "حدد ملف PDF لتغيير الأذونات",
"2": "أذونات لتعيينها",
"3": "منع تجميع المستند",
"4": "منع استخراج المحتوى",
"5": "منع الاستخراج للوصول",
"6": "منع ملء النموذج",
"7": "منع التعديل",
"8": "منع تعديل التعليق التوضيحي",
"9": "منع الطباعة",
"10": "منع طباعة التنسيقات المختلفة"
},
"submit": "تغيير"
},
"removePages": {
"tags": "Remove pages,delete pages"
},
"addPassword": {
"tags": "secure,security",
"title": "إضافة كلمة مرور",
"header": "إضافة كلمة مرور (تشفير)",
"selectText": {
"1": "حدد ملف PDF للتشفير",
"2": "كلمة المرور",
"3": "طول مفتاح التشفير",
"4": "القيم الأعلى تكون أقوى ، لكن القيم الأقل لها توافق أفضل.",
"5": "أذونات للتعيين",
"6": "منع تجميع المستند",
"7": "منع استخراج المحتوى",
"8": "منع الاستخراج للوصول",
"9": "منع ملء النموذج",
"10": "منع التعديل",
"11": "منع تعديل التعليقات التوضيحية",
"12": "منع الطباعة",
"13": "منع طباعة تنسيقات مختلفة",
"14": "Owner Password",
"15": "Restricts what can be done with the document once it is opened (Not supported by all readers)",
"16": "Restricts the opening of the document itself"
},
"submit": "تشفير"
},
"removePassword": {
"tags": "secure,Decrypt,security,unpassword,delete password",
"title": "إزالة كلمة المرور",
"header": "إزالة كلمة المرور (فك التشفير)",
"selectText": {
"1": "حدد PDF لفك التشفير",
"2": "كلمة المرور"
},
"submit": "إزالة"
},
"compressPdfs": {
"tags": "squish,small,tiny"
},
"fileToPDF": {
"tags": "transformation,format,document,picture,slide,text,conversion,office,docs,word,excel,powerpoint",
"title": "\u0645\u0644\u0641 \u0625\u0644\u0649 PDF",
"header": "\u062A\u062D\u0648\u064A\u0644 \u0623\u064A \u0645\u0644\u0641 \u0625\u0644\u0649 PDF",
"credit": "\u062A\u0633\u062A\u062E\u062F\u0645 \u0647\u0630\u0647 \u0627\u0644\u062E\u062F\u0645\u0629 \u0644\u064A\u0628\u0631 \u0623\u0648\u0641\u064A\u0633 \u0648\u0623\u0648\u0646\u0648\u0643\u0648\u0646\u0641 \u0644\u062A\u062D\u0648\u064A\u0644 \u0627\u0644\u0645\u0644\u0641\u0627\u062A.",
"supportedFileTypes": "\u064A\u062C\u0628 \u0623\u0646 \u062A\u062A\u0636\u0645\u0646 \u0623\u0646\u0648\u0627\u0639 \u0627\u0644\u0645\u0644\u0641\u0627\u062A \u0627\u0644\u0645\u062F\u0639\u0648\u0645\u0629 \u0645\u0627 \u064A\u0644\u064A \u0648\u0644\u0643\u0646 \u0644\u0644\u062D\u0635\u0648\u0644 \u0639\u0644\u0649 \u0642\u0627\u0626\u0645\u0629 \u0645\u062D\u062F\u062B\u0629 \u0643\u0627\u0645\u0644\u0629 \u0628\u0627\u0644\u062A\u0646\u0633\u064A\u0642\u0627\u062A \u0627\u0644\u0645\u062F\u0639\u0648\u0645\u0629 \u060C \u064A\u0631\u062C\u0649 \u0627\u0644\u0631\u062C\u0648\u0639 \u0625\u0644\u0649 \u0648\u062B\u0627\u0626\u0642 LibreOffice",
"submit": "\u062A\u062D\u0648\u064A\u0644 \u0625\u0644\u0649 PDF"
},
"ocr": {
"tags": "recognition,text,image,scan,read,identify,detection,editable",
"title": "\u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641 / \u062A\u0646\u0638\u064A\u0641 \u0627\u0644\u0645\u0633\u062D \u0627\u0644\u0636\u0648\u0626\u064A",
"header": "\u0645\u0633\u062D \u0627\u0644\u0645\u0633\u062D \u0627\u0644\u0636\u0648\u0626\u064A / \u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641 (\u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641)",
"selectText": {
"1": "\u062D\u062F\u062F \u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u062A\u064A \u0633\u064A\u062A\u0645 \u0627\u0643\u062A\u0634\u0627\u0641\u0647\u0627 \u062F\u0627\u062E\u0644 \u0645\u0644\u0641 PDF (\u0627\u0644\u0644\u063A\u0627\u062A \u0627\u0644\u0645\u062F\u0631\u062C\u0629 \u0647\u064A \u062A\u0644\u0643 \u0627\u0644\u062A\u064A \u062A\u0645 \u0627\u0643\u062A\u0634\u0627\u0641\u0647\u0627 \u062D\u0627\u0644\u064A\u064B\u0627):",
"2": "\u0625\u0646\u062A\u0627\u062C \u0645\u0644\u0641 \u0646\u0635\u064A \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0646\u0635 OCR \u0628\u062C\u0627\u0646\u0628 \u0645\u0644\u0641 PDF \u0627\u0644\u0630\u064A \u062A\u0645 \u0625\u0639\u062F\u0627\u062F\u0647 \u0628\u0648\u0627\u0633\u0637\u0629 OCR",
"3": "\u062A\u0645 \u0645\u0633\u062D \u0627\u0644\u0635\u0641\u062D\u0627\u062A \u0627\u0644\u0635\u062D\u064A\u062D\u0629 \u0636\u0648\u0626\u064A\u064B\u0627 \u0628\u0632\u0627\u0648\u064A\u0629 \u0645\u0646\u062D\u0631\u0641\u0629 \u0639\u0646 \u0637\u0631\u064A\u0642 \u062A\u062F\u0648\u064A\u0631\u0647\u0627 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649 \u0641\u064A \u0645\u0643\u0627\u0646\u0647\u0627",
"4": "\u0635\u0641\u062D\u0629 \u0646\u0638\u064A\u0641\u0629 \u0644\u0630\u0644\u0643 \u0645\u0646 \u063A\u064A\u0631 \u0627\u0644\u0645\u062D\u062A\u0645\u0644 \u0623\u0646 \u064A\u062C\u062F OCR \u0646\u0635\u064B\u0627 \u0641\u064A \u0636\u0648\u0636\u0627\u0621 \u0627\u0644\u062E\u0644\u0641\u064A\u0629. (\u0644\u0627 \u064A\u0648\u062C\u062F \u062A\u063A\u064A\u064A\u0631 \u0641\u064A \u0627\u0644\u0625\u062E\u0631\u0627\u062C)",
"5": "\u0635\u0641\u062D\u0629 \u0646\u0638\u064A\u0641\u0629 \u060C \u0644\u0630\u0644\u0643 \u0645\u0646 \u063A\u064A\u0631 \u0627\u0644\u0645\u062D\u062A\u0645\u0644 \u0623\u0646 \u064A\u062C\u062F OCR \u0646\u0635\u064B\u0627 \u0641\u064A \u0636\u0648\u0636\u0627\u0621 \u0627\u0644\u062E\u0644\u0641\u064A\u0629 \u060C \u0648\u064A\u062D\u0627\u0641\u0638 \u0639\u0644\u0649 \u0627\u0644\u062A\u0646\u0638\u064A\u0641 \u0641\u064A \u0627\u0644\u0625\u062E\u0631\u0627\u062C.",
"6": "\u064A\u062A\u062C\u0627\u0647\u0644 \u0627\u0644\u0635\u0641\u062D\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0646\u0635 \u062A\u0641\u0627\u0639\u0644\u064A \u060C \u0641\u0642\u0637 \u0635\u0641\u062D\u0627\u062A OCRs \u0627\u0644\u062A\u064A \u0647\u064A \u0635\u0648\u0631",
"7": "\u0641\u0631\u0636 \u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641 \u060C \u0633\u064A\u0624\u062F\u064A \u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641 \u0639\u0644\u0649 \u0643\u0644 \u0635\u0641\u062D\u0629 \u0625\u0644\u0649 \u0625\u0632\u0627\u0644\u0629 \u062C\u0645\u064A\u0639 \u0639\u0646\u0627\u0635\u0631 \u0627\u0644\u0646\u0635 \u0627\u0644\u0623\u0635\u0644\u064A",
"8": "\u0639\u0627\u062F\u064A (\u062E\u0637\u0623 \u0625\u0630\u0627 \u0643\u0627\u0646 PDF \u064A\u062D\u062A\u0648\u064A \u0639\u0644\u0649 \u0646\u0635)",
"9": "\u0625\u0639\u062F\u0627\u062F\u0627\u062A \u0625\u0636\u0627\u0641\u064A\u0629",
"10": "\u0648\u0636\u0639 \u0627\u0644\u062A\u0639\u0631\u0641 \u0627\u0644\u0636\u0648\u0626\u064A \u0639\u0644\u0649 \u0627\u0644\u062D\u0631\u0648\u0641",
"11": "إزالة الصور بعد التعرف الضوئي على الحروف (يزيل كل الصور ، يكون مفيدًا فقط إذا كان جزءًا من خطوة التحويل)",
"12": "نوع العرض (متقدم)"
},
"help": "\u064A\u0631\u062C\u0649 \u0642\u0631\u0627\u0621\u0629 \u0647\u0630\u0647 \u0627\u0644\u0648\u062B\u0627\u0626\u0642 \u062D\u0648\u0644 \u0643\u064A\u0641\u064A\u0629 \u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0647\u0630\u0627 \u0644\u0644\u063A\u0627\u062A \u0623\u062E\u0631\u0649 \u0648 / \u0623\u0648 \u0627\u0644\u0627\u0633\u062A\u062E\u062F\u0627\u0645 \u0644\u064A\u0633 \u0641\u064A \u0639\u0627\u0645\u0644 \u0627\u0644\u0625\u0631\u0633\u0627\u0621",
"credit": "\u062A\u0633\u062A\u062E\u062F\u0645 \u0647\u0630\u0647 \u0627\u0644\u062E\u062F\u0645\u0629 OCRmyPDF \u0648 Tesseract \u0644 OCR.",
"submit": "\u0645\u0639\u0627\u0644\u062C\u0629 PDF \u0628\u0627\u0633\u062A\u062E\u062F\u0627\u0645 OCR"
},
"extractImages": {
"tags": "picture,photo,save,archive,zip,capture,grab",
"title": "\u0627\u0633\u062A\u062E\u0631\u0627\u062C \u0627\u0644\u0635\u0648\u0631",
"header": "\u0627\u0633\u062A\u062E\u0631\u0627\u062C \u0627\u0644\u0635\u0648\u0631",
"selectText": "\u062D\u062F\u062F \u062A\u0646\u0633\u064A\u0642 \u0627\u0644\u0635\u0648\u0631\u0629 \u0644\u062A\u062D\u0648\u064A\u0644 \u0627\u0644\u0635\u0648\u0631 \u0627\u0644\u0645\u0633\u062A\u062E\u0631\u062C\u0629 \u0625\u0644\u0649",
"submit": "\u0627\u0633\u062A\u062E\u0631\u0627\u062C"
},
"pdfToPDFA": {
"tags": "archive,long-term,standard,conversion,storage,preservation",
"title": "PDF \u0625\u0644\u0649 PDF / A",
"header": "PDF \u0625\u0644\u0649 PDF / A",
"credit": "\u062A\u0633\u062A\u062E\u062F\u0645 \u0647\u0630\u0647 \u0627\u0644\u062E\u062F\u0645\u0629 OCRmyPDF \u0644\u062A\u062D\u0648\u064A\u0644 PDF / A.",
"submit": "\u062A\u062D\u0648\u064A\u0644"
},
"PDFToWord": {
"tags": "doc,docx,odt,word,transformation,format,conversion,office,microsoft,docfile",
"title": "تحويل PDF إلى Word",
"header": "تحويل PDF إلى Word",
"selectText": {
"1": "تنسيق ملف الإخراج"
},
"credit": "تستخدم هذه الخدمة LibreOffice لتحويل الملفات.",
"submit": "تحويل"
},
"PDFToPresentation": {
"tags": "slides,show,office,microsoft",
"title": "PDF للعرض التقديمي",
"header": "PDF للعرض التقديمي",
"selectText": {
"1": "تنسيق ملف الإخراج"
},
"credit": "تستخدم هذه الخدمة LibreOffice لتحويل الملف.",
"submit": "تحويل"
},
"PDFToText": {
"tags": "richformat,richtextformat,rich text format",
"title": "تحويل PDF إلى نص / RTF",
"header": "تحويل PDF إلى نص / RTF",
"selectText": {
"1": "تنسيق ملف الإخراج"
},
"credit": "تستخدم هذه الخدمة LibreOffice لتحويل الملفات.",
"submit": "تحويل"
},
"PDFToHTML": {
"tags": "web content,browser friendly",
"title": "PDF إلى HTML",
"header": "PDF إلى HTML",
"credit": "تستخدم هذه الخدمة LibreOffice لتحويل الملفات.",
"submit": "تحويل"
},
"PDFToXML": {
"tags": "data-extraction,structured-content,interop,transformation,convert",
"title": "تحويل PDF إلى XML",
"header": "تحويل PDF إلى XML",
"credit": "تستخدم هذه الخدمة LibreOffice لتحويل الملفات.",
"submit": "تحويل"
},
"ScannerImageSplit": {
"tags": "separate,auto-detect,scans,multi-photo,organize",
"selectText": {
"1": "عتبة الزاوية:",
"2": "تعيين الحد الأدنى للزاوية المطلقة المطلوبة لتدوير الصورة (افتراضي: 10).",
"3": "التسامح:",
"4": "يحدد نطاق تباين اللون حول لون الخلفية المقدر (الافتراضي: 30).",
"5": "أدنى مساحة:",
"6": "تعيين الحد الأدنى لمنطقة الصورة (الافتراضي: 10000).",
"7": "الحد الأدنى لمنطقة المحيط:",
"8": "تعيين الحد الأدنى لمنطقة المحيط للصورة",
"9": "حجم الحدود:",
"10": "يضبط حجم الحدود المضافة والمزالة لمنع الحدود البيضاء في الإخراج (الافتراضي: 1)."
}
},
"sign": {
"tags": "authorize,initials,drawn-signature,text-sign,image-signature",
"title": "تسجيل الدخول",
"header": "توقيع ملفات PDF",
"upload": "تحميل الصورة",
"draw": "رسم التوقيع",
"text": "Text Input",
"clear": "واضح",
"add": "إضافة"
},
"flatten": {
"tags": "static,deactivate,non-interactive,streamline",
"title": "تسطيح",
"header": "تسوية ملفات PDF",
"submit": "تسطيح"
},
"repair": {
"tags": "fix,restore,correction,recover",
"title": "إصلاح",
"header": "إصلاح ملفات PDF",
"submit": "الإصلاح"
},
"removeBlanks": {
"tags": "cleanup,streamline,non-content,organize",
"title": "إزالة الفراغات",
"header": "إزالة الصفحات الفارغة",
"threshold": "العتبة:",
"thresholdDesc": "الحد الفاصل لتحديد مدى بياض البكسل الأبيض",
"whitePercent": "نسبة الأبيض (٪):",
"whitePercentDesc": "النسبة المئوية للصفحة التي يجب أن تكون بيضاء لتتم إزالتها",
"submit": "إزالة الفراغات"
},
"compare": {
"tags": "differentiate,contrast,changes,analysis",
"title": "يقارن",
"header": "قارن ملفات PDF",
"document": {
"1": "المستند 1",
"2": "المستند 2"
},
"submit": "يقارن"
},
"certSign": {
"tags": "authenticate,PEM,P12,official,encrypt",
"title": "توقيع الشهادة",
"header": "قم بتوقيع ملف PDF بشهادتك (العمل قيد التقدم)",
"selectPDF": "حدد ملف PDF للتوقيع:",
"selectKey": "حدد ملف المفتاح الخاص (تنسيق PKCS ",
"selectCert": "حدد ملف الشهادة الخاص بك (تنسيق X.509 ، يمكن أن يكون .pem أو .der):",
"selectP12": "حدد ملف تخزين المفاتيح PKCS ",
"certType": "نوع الشهادة",
"password": "أدخل ملف تخزين المفاتيح أو كلمة المرور الخاصة (إن وجدت):",
"showSig": "إظهار التوقيع",
"reason": "السبب",
"location": "الموقع",
"name": "الاسم",
"submit": "تسجيل PDF"
},
"pageLayout": {
"tags": "merge,composite,single-view,organize",
"title": "Multi Page Layout",
"header": "Multi Page Layout",
"pagesPerSheet": "Pages per sheet:",
"addBorder": "Add Borders",
"submit": "Submit"
},
"scalePages": {
"tags": "resize,modify,dimension,adapt",
"title": "Adjust page-scale",
"header": "Adjust page-scale",
"pageSize": "Size of a page of the document.",
"scaleFactor": "Zoom level (crop) of a page.",
"submit": "Submit"
},
"pipeline": {
"tags": "automate,sequence,scripted,batch-process",
"title": "Pipeline"
},
"add-page-numbers": {
"tags": "paginate,label,organize,index"
},
"auto-rename": {
"tags": "auto-detect,header-based,organize,relabel",
"title": "Auto Rename",
"header": "Auto Rename PDF",
"submit": "Auto Rename"
},
"adjust-contrast": {
"tags": "color-correction,tune,modify,enhance"
},
"crop": {
"tags": "trim,shrink,edit,shape",
"title": "Crop",
"header": "Crop Image",
"submit": "Submit"
},
"autoSplitPDF": {
"tags": "QR-based,separate,scan-segment,organize",
"title": "Auto Split PDF",
"header": "Auto Split PDF",
"description": "Print, Insert, Scan, upload, and let us auto-separate your documents. No manual work sorting needed.",
"selectText": {
"1": "Print out some divider sheets from below (Black and white is fine).",
"2": "Scan all your documents at once by inserting the divider sheet between them.",
"3": "Upload the single large scanned PDF file and let Stirling PDF handle the rest.",
"4": "Divider pages are automatically detected and removed, guaranteeing a neat final document."
},
"formPrompt": "Submit PDF containing Stirling-PDF Page dividers:",
"duplexMode": "Duplex Mode (Front and back scanning)",
"dividerDownload1": "Download 'Auto Splitter Divider (minimal).pdf'",
"dividerDownload2": "Download 'Auto Splitter Divider (with instructions).pdf'",
"submit": "Submit"
},
"sanitizePdf": {
"tags": "clean,secure,safe,remove-threats"
},
"URLToPDF": {
"tags": "web-capture,save-page,web-to-doc,archive",
"title": "URL To PDF",
"header": "URL To PDF",
"submit": "Convert",
"credit": "Uses WeasyPrint"
},
"HTMLToPDF": {
"tags": "markup,web-content,transformation,convert",
"title": "HTML To PDF",
"header": "HTML To PDF",
"help": "Accepts HTML files and ZIPs containing html/css/images etc required",
"submit": "Convert",
"credit": "Uses WeasyPrint"
},
"MarkdownToPDF": {
"tags": "markup,web-content,transformation,convert",
"title": "Markdown To PDF",
"header": "Markdown To PDF",
"submit": "Convert",
"help": "Work in progress",
"credit": "Uses WeasyPrint"
},
"getPdfInfo": {
"tags": "infomation,data,stats,statistics",
"title": "Get Info on PDF",
"header": "Get Info on PDF",
"submit": "Get Info",
"downloadJson": "Download JSON"
},
"extractPage": {
"tags": "extract"
},
"PdfToSinglePage": {
"tags": "single page"
},
"showJS": {
"tags": "JS",
"title": "Show Javascript",
"header": "Show Javascript",
"downloadJS": "Download Javascript",
"submit": "Show"
},
"login": {
"title": "Sign in",
"signin": "Sign in",
"rememberme": "Remember me",
"invalid": "Invalid username or password.",
"locked": "Your account has been locked.",
"signinTitle": "Please sign in"
},
"autoRedact": {
"title": "Auto Redact",
"header": "Auto Redact",
"colorLabel": "Colour",
"textsToRedactLabel": "Text to Redact (line-separated)",
"textsToRedactPlaceholder": "e.g. \\nConfidential \\nTop-Secret",
"useRegexLabel": "Use Regex",
"wholeWordSearchLabel": "Whole Word Search",
"customPaddingLabel": "Custom Extra Padding",
"convertPDFToImageLabel": "Convert PDF to PDF-Image (Used to remove text behind the box)",
"submitButton": "Submit"
},
"pdfToSinglePage": {
"title": "PDF To Single Page",
"header": "PDF To Single Page",
"submit": "Convert To Single Page"
},
"pageExtracter": {
"title": "Extract Pages",
"header": "Extract Pages",
"submit": "Extract"
},
"sanitizePDF": {
"title": "Sanitize PDF",
"header": "Sanitize a PDF file",
"selectText": {
"1": "Remove JavaScript actions",
"2": "Remove embedded files",
"3": "Remove metadata",
"4": "Remove links",
"5": "Remove fonts"
},
"submit": "Sanitize PDF"
},
"addPageNumbers": {
"title": "Add Page Numbers",
"header": "Add Page Numbers",
"selectText": {
"1": "Select PDF file:",
"2": "Margin Size",
"3": "Position",
"4": "Starting Number",
"5": "Pages to Number",
"6": "Custom Text"
},
"customTextDesc": "Custom Text",
"numberPagesDesc": "Which pages to number, default 'all', also accepts 1-5 or 2,5,9 etc",
"customNumberDesc": "Defaults to {n}, also accepts 'Page {n} of {total}', 'Text-{n}', '{filename}-{n}",
"submit": "Add Page Numbers"
},
"adjustContrast": {
"title": "Adjust Contrast",
"header": "Adjust Contrast",
"contrast": "Contrast:",
"brightness": "Brightness:",
"saturation": "Saturation:",
"download": "Download"
},
"compress": {
"title": "ضغط",
"header": "ضغط ملف PDF",
"credit": "تستخدم هذه الخدمة OCRmyPDF لضغط / تحسين PDF.",
"selectText": {
"1": "الوضع اليدوي - من 1 إلى 4",
"2": "مستوى التحسين:",
"3": "4 (رهيب للصور النصية)",
"4": "الوضع التلقائي - يضبط الجودة تلقائيًا للحصول على ملف PDF بالحجم المحدد",
"5": "حجم PDF المتوقع (على سبيل المثال 25 ميجا بايت ، 10.8 ميجا بايت ، 25 كيلو بايت)"
},
"submit": "ضغطضغط"
},
"pageRemover": {
"title": "مزيل الصفحة",
"header": "مزيل صفحة PDF",
"pagesToDelete": "الصفحات المراد حذفها (أدخل قائمة بأرقام الصفحات مفصولة بفواصل):",
"submit": "حذف الصفحات"
},
"imageToPDF": {
"title": "صورة إلى PDF",
"header": "صورة إلى PDF",
"submit": "تحول",
"selectLabel": "Image Fit Options",
"fillPage": "Fill Page",
"fitDocumentToImage": "Fit Page to Image",
"maintainAspectRatio": "Maintain Aspect Ratios",
"selectText": {
"2": "\u062F\u0648\u0631\u0627\u0646 PDF \u062A\u0644\u0642\u0627\u0626\u064A\u064B\u0627",
"3": "\u0627\u0644\u0645\u0646\u0637\u0642 \u0627\u0644\u0645\u062A\u0639\u062F\u062F \u0644\u0644\u0645\u0644\u0641\u0627\u062A (\u0645\u0641\u0639\u0651\u0644 \u0641\u0642\u0637 \u0625\u0630\u0627 \u0643\u0646\u062A \u062A\u0639\u0645\u0644 \u0645\u0639 \u0635\u0648\u0631 \u0645\u062A\u0639\u062F\u062F\u0629)",
"4": "\u062F\u0645\u062C \u0641\u064A \u0645\u0644\u0641 PDF \u0648\u0627\u062D\u062F",
"5": "\u062A\u062D\u0648\u064A\u0644 \u0625\u0644\u0649 \u0645\u0644\u0641\u0627\u062A PDF \u0645\u0646\u0641\u0635\u0644\u0629"
}
},
"changeMetadata": {
"title": "\u0627\u0644\u0639\u0646\u0648\u0627\u0646:",
"header": "\u062A\u063A\u064A\u064A\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0648\u0635\u0641\u064A\u0629",
"selectText": {
"1": "\u064A\u0631\u062C\u0649 \u062A\u0639\u062F\u064A\u0644 \u0627\u0644\u0645\u062A\u063A\u064A\u0631\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u0631\u063A\u0628 \u0641\u064A \u062A\u063A\u064A\u064A\u0631\u0647\u0627",
"2": "\u062D\u0630\u0641 \u0643\u0644 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0623\u0648\u0644\u064A\u0629",
"3": "\u0625\u0638\u0647\u0627\u0631 \u0627\u0644\u0628\u064A\u0627\u0646\u0627\u062A \u0627\u0644\u0623\u0648\u0644\u064A\u0629 \u0627\u0644\u0645\u062E\u0635\u0635\u0629:",
"4": "\u0628\u064A\u0627\u0646\u0627\u062A \u0648\u0635\u0641\u064A\u0629 \u0623\u062E\u0631\u0649:",
"5": "\u0625\u0636\u0627\u0641\u0629 \u0625\u062F\u062E\u0627\u0644 \u0628\u064A\u0627\u0646\u0627\u062A \u0623\u0648\u0644\u064A\u0629 \u0645\u062E\u0635\u0635"
},
"author": "\u0627\u0644\u0645\u0624\u0644\u0641:",
"creationDate": "\u062A\u0627\u0631\u064A\u062E \u0627\u0644\u0625\u0646\u0634\u0627\u0621 (yyyy / MM / dd HH: mm: ss):",
"creator": "\u0627\u0644\u0645\u0646\u0634\u0626:",
"keywords": "\u0627\u0644\u0643\u0644\u0645\u0627\u062A \u0627\u0644\u0631\u0626\u064A\u0633\u064A\u0629:",
"modDate": "\u062A\u0627\u0631\u064A\u062E \u0627\u0644\u062A\u0639\u062F\u064A\u0644 (yyyy / MM / dd HH: mm: ss):",
"producer": "\u0627\u0644\u0645\u0646\u062A\u062C:",
"subject": "\u0627\u0644\u0645\u0648\u0636\u0648\u0639:",
"trapped": "\u0645\u062D\u0627\u0635\u0631:",
"submit": "\u062A\u063A\u064A\u064A\u0631"
}
}
}

View File

@ -1,854 +0,0 @@
{
"translation": {
"language": {
"name":"English (UK)",
"flag": "🇬🇧",
"direction": "ltr"
},
"pdfPrompt": "Select PDF(s)",
"multiPdfPrompt": "Select PDFs (2+)",
"multiPdfDropPrompt": "Select (or drag & drop) all PDFs you require",
"imgPrompt": "Select Image(s)",
"genericSubmit": "Submit",
"processTimeWarning": "Warning: This process can take up to a minute depending on file-size",
"pageOrderPrompt": "Custom Page Order (Enter a comma-separated list of page numbers or Functions like 2n+1) :",
"goToPage": "Go",
"true": "True",
"false": "False",
"unknown": "Unknown",
"save": "Save",
"close": "Close",
"filesSelected": "files selected",
"noFavourites": "No favourites added",
"bored": "Bored Waiting?",
"alphabet": "Alphabet",
"downloadPdf": "Download PDF",
"text": "Text",
"font": "Font",
"selectFillter": "-- Select --",
"pageNum": "Page Number ",
"sizes": {
"small": "Small",
"medium": "Medium",
"large": "Large",
"x-large": "X-Large"
},
"error": {
"pdfPassword": "The PDF Document is passworded and either the password was not provided or was incorrect"
},
"delete": "Delete",
"username": "Username",
"password": "Password",
"welcome": "Welcome",
"property": "Property",
"black": "Black",
"white": "White",
"red": "Red",
"green": "Green",
"blue": "Blue",
"custom": "Custom...",
"changedCredsMessage": "Credentials changed!",
"notAuthenticatedMessage": "User not authenticated.",
"userNotFoundMessage": "User not found.",
"incorrectPasswordMessage": "Current password is incorrect.",
"usernameExistsMessage": "New Username already exists.",
"navbar": {
"convert": "Convert",
"security": "Security",
"other": "Miscellaneous",
"darkmode": "Dark Mode",
"pageOps": "Page Operations",
"settings": "Settings"
},
"settings": {
"title": "Settings",
"update": "Update available",
"appVersion": "App Version:",
"downloadOption": {
"1": "Open in same window",
"2": "Open in new window",
"3": "Download file",
"title": "Choose download option (For single file non zip downloads):"
},
"zipThreshold": "Zip files when the number of downloaded files exceeds",
"signOut": "Sign Out",
"accountSettings": "Account Settings"
},
"changeCreds": {
"title": "Change Credentials",
"header": "Update Your Account Details",
"changeUserAndPassword": "You are using default login credentials. Please enter a new password (and username if wanted)",
"newUsername": "New Username",
"oldPassword": "Current Password",
"newPassword": "New Password",
"confirmNewPassword": "Confirm New Password",
"submit": "Submit Changes"
},
"account": {
"title": "Account Settings",
"accountSettings": "Account Settings",
"adminSettings": "Admin Settings - View and Add Users",
"userControlSettings": "User Control Settings",
"changeUsername": "Change Username",
"password": "Confirmation Password",
"oldPassword": "Old password",
"newPassword": "New Password",
"changePassword": "Change Password",
"confirmNewPassword": "Confirm New Password",
"signOut": "Sign Out",
"yourApiKey": "Your API Key",
"syncTitle": "Sync browser settings with Account",
"settingsCompare": "Settings Comparison:",
"property": "Property",
"webBrowserSettings": "Web Browser Setting",
"syncToBrowser": "Sync Account -> Browser",
"syncToAccount": "Sync Account <- Browser"
},
"adminUserSettings": {
"title": "User Control Settings",
"header": "Admin User Control Settings",
"admin": "Admin",
"user": "User",
"addUser": "Add New User",
"roles": "Roles",
"role": "Role",
"actions": "Actions",
"apiUser": "Limited API User",
"webOnlyUser": "Web Only User",
"forceChange": "Force user to change username/password on login",
"submit": "Save User"
},
"home": {
"desc": "Your locally hosted one-stop-shop for all your PDF needs.",
"searchBar": "Search for features...",
"viewPdf": {
"title": "View PDF",
"desc": "View, annotate, add text or images"
},
"multiTool": {
"title": "PDF Multi Tool",
"desc": "Merge, Rotate, Rearrange, and Remove pages"
},
"merge": {
"title": "Merge",
"desc": "Easily merge multiple PDFs into one."
},
"split": {
"title": "Split",
"desc": "Split PDFs into multiple documents"
},
"rotate": {
"title": "Rotate",
"desc": "Easily rotate your PDFs."
},
"imageToPdf": {
"title": "Image to PDF",
"desc": "Convert a image (PNG, JPEG, GIF) to PDF."
},
"pdfToImage": {
"title": "PDF to Image",
"desc": "Convert a PDF to a image. (PNG, JPEG, GIF)"
},
"pdfOrganiser": {
"title": "Organise",
"desc": "Remove/Rearrange pages in any order"
},
"addImage": {
"title": "Add image",
"desc": "Adds a image onto a set location on the PDF"
},
"watermark": {
"title": "Add Watermark",
"desc": "Add a custom watermark to your PDF document."
},
"permissions": {
"title": "Change Permissions",
"desc": "Change the permissions of your PDF document"
},
"removePages": {
"title": "Remove",
"desc": "Delete unwanted pages from your PDF document."
},
"addPassword": {
"title": "Add Password",
"desc": "Encrypt your PDF document with a password."
},
"removePassword": {
"title": "Remove Password",
"desc": "Remove password protection from your PDF document."
},
"compressPdfs": {
"title": "Compress",
"desc": "Compress PDFs to reduce their file size."
},
"changeMetadata": {
"title": "Change Metadata",
"desc": "Change/Remove/Add metadata from a PDF document"
},
"fileToPDF": {
"title": "Convert file to PDF",
"desc": "Convert nearly any file to PDF (DOCX, PNG, XLS, PPT, TXT and more)"
},
"ocr": {
"title": "OCR / Cleanup scans",
"desc": "Cleanup scans and detects text from images within a PDF and re-adds it as text."
},
"extractImages": {
"title": "Extract Images",
"desc": "Extracts all images from a PDF and saves them to zip"
},
"pdfToPDFA": {
"title": "PDF to PDF/A",
"desc": "Convert PDF to PDF/A for long-term storage"
},
"PDFToWord": {
"title": "PDF to Word",
"desc": "Convert PDF to Word formats (DOC, DOCX and ODT)"
},
"PDFToPresentation": {
"title": "PDF to Presentation",
"desc": "Convert PDF to Presentation formats (PPT, PPTX and ODP)"
},
"PDFToText": {
"title": "PDF to RTF (Text)",
"desc": "Convert PDF to Text or RTF format"
},
"PDFToHTML": {
"title": "PDF to HTML",
"desc": "Convert PDF to HTML format"
},
"PDFToXML": {
"title": "PDF to XML",
"desc": "Convert PDF to XML format"
},
"ScannerImageSplit": {
"title": "Detect/Split Scanned photos",
"desc": "Splits multiple photos from within a photo/PDF"
},
"sign": {
"title": "Sign",
"desc": "Adds signature to PDF by drawing, text or image"
},
"flatten": {
"title": "Flatten",
"desc": "Remove all interactive elements and forms from a PDF"
},
"repair": {
"title": "Repair",
"desc": "Tries to repair a corrupt/broken PDF"
},
"removeBlanks": {
"title": "Remove Blank pages",
"desc": "Detects and removes blank pages from a document"
},
"compare": {
"title": "Compare",
"desc": "Compares and shows the differences between 2 PDF Documents"
},
"certSign": {
"title": "Sign with Certificate",
"desc": "Signs a PDF with a Certificate/Key (PEM/P12)"
},
"pageLayout": {
"title": "Multi-Page Layout",
"desc": "Merge multiple pages of a PDF document into a single page"
},
"scalePages": {
"title": "Adjust page size/scale",
"desc": "Change the size/scale of a page and/or its contents."
},
"pipeline": {
"title": "Pipeline (Advanced)",
"desc": "Run multiple actions on PDFs by defining pipeline scripts"
},
"add-page-numbers": {
"title": "Add Page Numbers",
"desc": "Add Page numbers throughout a document in a set location"
},
"auto-rename": {
"title": "Auto Rename PDF File",
"desc": "Auto renames a PDF file based on its detected header "
},
"adjust-contrast": {
"title": "Adjust Colors/Contrast",
"desc": "Adjust Contrast, Saturation and Brightness of a PDF"
},
"crop": {
"title": "Crop PDF",
"desc": "Crop a PDF to reduce its size (maintains text!)"
},
"autoSplitPDF": {
"title": "Auto Split Pages",
"desc": "Auto Split Scanned PDF with physical scanned page splitter QR Code"
},
"sanitizePdf": {
"title": "Sanitize",
"desc": "Remove scripts and other elements from PDF files"
},
"URLToPDF": {
"title": "URL/Website To PDF",
"desc": "Converts any http(s)URL to PDF"
},
"HTMLToPDF": {
"title": "HTML to PDF",
"desc": "Converts any HTML file or zip to PDF"
},
"MarkdownToPDF": {
"title": "Markdown to PDF",
"desc": "Converts any Markdown file to PDF"
},
"getPdfInfo": {
"title": "Get ALL Info on PDF",
"desc": "Grabs any and all information possible on PDFs"
},
"extractPage": {
"title": "Extract page(s)",
"desc": "Extracts select pages from PDF"
},
"PdfToSinglePage": {
"title": "PDF to Single Large Page",
"desc": "Merges all PDF pages into one large single page"
},
"showJS": {
"title": "Show Javascript",
"desc": "Searches and displays any JS injected into a PDF"
},
"autoRedact": {
"title": "Auto Redact",
"desc": "Auto Redacts(Blacks out) text in a PDF based on input text"
}
},
"viewPdf": {
"tags": "view,read,annotate,text,image",
"title": "View PDF",
"header": "View PDF"
},
"multiTool": {
"tags": "Multi Tool,Multi operation,UI,click drag,front end,client side,interactive,intractable,move",
"title": "PDF Multi Tool",
"header": "PDF Multi Tool"
},
"merge": {
"tags": "merge,Page operations,Back end,server side",
"title": "Merge",
"header": "Merge multiple PDFs (2+)",
"sortByName": "Sort by name",
"sortByDate": "Sort by date",
"submit": "Merge"
},
"split": {
"tags": "Page operations,divide,Multi Page,cut,server side ",
"title": "Split PDF",
"header": "Split PDF",
"desc": {
"1": "The numbers you select are the page number you wish to do a split on",
"2": "As such selecting 1,3,7-8 would split a 10 page document into 6 separate PDFS with:",
"3": "Document ",
"4": "Document ",
"5": "Document ",
"6": "Document ",
"7": "Document ",
"8": "Document "
},
"splitPages": "Enter pages to split on:",
"submit": "Split"
},
"rotate": {
"tags": "server side",
"title": "Rotate PDF",
"header": "Rotate PDF",
"selectAngle": "Select rotation angle (in multiples of 90 degrees):",
"submit": "Rotate"
},
"imageToPdf": {
"tags": "conversion,img,jpg,picture,photo"
},
"pdfToImage": {
"tags": "conversion,img,jpg,picture,photo",
"title": "PDF to Image",
"header": "PDF to Image",
"selectText": "Image Format",
"singleOrMultiple": "Page to Image result type",
"single": "Single Big Image Combing all pages",
"multi": "Multiple Images, one image per page",
"colorType": "Colour type",
"color": "Colour",
"grey": "Greyscale",
"blackwhite": "Black and White (May lose data!)",
"submit": "Convert"
},
"pdfOrganiser": {
"tags": "duplex,even,odd,sort,move",
"title": "Page Organiser",
"header": "PDF Page Organiser",
"submit": "Rearrange Pages"
},
"addImage": {
"tags": "img,jpg,picture,photo",
"title": "Add Image",
"header": "Add image to PDF",
"everyPage": "Every Page?",
"upload": "Add image",
"submit": "Add image"
},
"watermark": {
"tags": "Text,repeating,label,own,copyright,trademark,img,jpg,picture,photo",
"title": "Add Watermark",
"header": "Add Watermark",
"selectText": {
"1": "Select PDF to add watermark to:",
"2": "Watermark Text:",
"3": "Font Size:",
"4": "Rotation (0-360):",
"5": "widthSpacer (Space between each watermark horizontally):",
"6": "heightSpacer (Space between each watermark vertically):",
"7": "Opacity (0% - 100%):",
"8": "Watermark Type:",
"9": "Watermark Image:"
},
"submit": "Add Watermark"
},
"permissions": {
"tags": "read,write,edit,print",
"title": "Change Permissions",
"header": "Change Permissions",
"warning": "Warning to have these permissions be unchangeable it is recommended to set them with a password via the add-password page",
"selectText": {
"1": "Select PDF to change permissions",
"2": "Permissions to set",
"3": "Prevent assembly of document",
"4": "Prevent content extraction",
"5": "Prevent extraction for accessibility",
"6": "Prevent filling in form",
"7": "Prevent modification",
"8": "Prevent annotation modification",
"9": "Prevent printing",
"10": "Prevent printing different formats"
},
"submit": "Change"
},
"removePages": {
"tags": "Remove pages,delete pages"
},
"addPassword": {
"tags": "secure,security",
"title": "Add Password",
"header": "Add password (Encrypt)",
"selectText": {
"1": "Select PDF to encrypt",
"2": "User Password",
"3": "Encryption Key Length",
"4": "Higher values are stronger, but lower values have better compatibility.",
"5": "Permissions to set (Recommended to be used along with Owner password)",
"6": "Prevent assembly of document",
"7": "Prevent content extraction",
"8": "Prevent extraction for accessibility",
"9": "Prevent filling in form",
"10": "Prevent modification",
"11": "Prevent annotation modification",
"12": "Prevent printing",
"13": "Prevent printing different formats",
"14": "Owner Password",
"15": "Restricts what can be done with the document once it is opened (Not supported by all readers)",
"16": "Restricts the opening of the document itself"
},
"submit": "Encrypt"
},
"removePassword": {
"tags": "secure,Decrypt,security,unpassword,delete password",
"title": "Remove password",
"header": "Remove password (Decrypt)",
"selectText": {
"1": "Select PDF to Decrypt",
"2": "Password"
},
"submit": "Remove"
},
"compressPdfs": {
"tags": "squish,small,tiny"
},
"fileToPDF": {
"tags": "transformation,format,document,picture,slide,text,conversion,office,docs,word,excel,powerpoint",
"title": "File to PDF",
"header": "Convert any file to PDF",
"credit": "This service uses LibreOffice and Unoconv for file conversion.",
"supportedFileTypes": "Supported file types should include the below however for a full updated list of supported formats, please refer to the LibreOffice documentation",
"submit": "Convert to PDF"
},
"ocr": {
"tags": "recognition,text,image,scan,read,identify,detection,editable",
"title": "OCR / Scan Cleanup",
"header": "Cleanup Scans / OCR (Optical Character Recognition)",
"selectText": {
"1": "Select languages that are to be detected within the PDF (Ones listed are the ones currently detected):",
"2": "Produce text file containing OCR text alongside the OCR'ed PDF",
"3": "Correct pages were scanned at a skewed angle by rotating them back into place",
"4": "Clean page so its less likely that OCR will find text in background noise. (No output change)",
"5": "Clean page so its less likely that OCR will find text in background noise, maintains cleanup in output.",
"6": "Ignores pages that have interactive text on them, only OCRs pages that are images",
"7": "Force OCR, will OCR Every page removing all original text elements",
"8": "Normal (Will error if PDF contains text)",
"9": "Additional Settings",
"10": "OCR Mode",
"11": "Remove images after OCR (Removes ALL images, only useful if part of conversion step)",
"12": "Render Type (Advanced)"
},
"help": "Please read this documentation on how to use this for other languages and/or use not in docker",
"credit": "This service uses OCRmyPDF and Tesseract for OCR.",
"submit": "Process PDF with OCR"
},
"extractImages": {
"tags": "picture,photo,save,archive,zip,capture,grab",
"title": "Extract Images",
"header": "Extract Images",
"selectText": "Select image format to convert extracted images to",
"submit": "Extract"
},
"pdfToPDFA": {
"tags": "archive,long-term,standard,conversion,storage,preservation",
"title": "PDF To PDF/A",
"header": "PDF To PDF/A",
"credit": "This service uses OCRmyPDF for PDF/A conversion",
"submit": "Convert"
},
"PDFToWord": {
"tags": "doc,docx,odt,word,transformation,format,conversion,office,microsoft,docfile",
"title": "PDF to Word",
"header": "PDF to Word",
"selectText": {
"1": "Output file format"
},
"credit": "This service uses LibreOffice for file conversion.",
"submit": "Convert"
},
"PDFToPresentation": {
"tags": "slides,show,office,microsoft",
"title": "PDF to Presentation",
"header": "PDF to Presentation",
"selectText": {
"1": "Output file format"
},
"credit": "This service uses LibreOffice for file conversion.",
"submit": "Convert"
},
"PDFToText": {
"tags": "richformat,richtextformat,rich text format",
"title": "PDF to RTF (Text)",
"header": "PDF to RTF (Text)",
"selectText": {
"1": "Output file format"
},
"credit": "This service uses LibreOffice for file conversion.",
"submit": "Convert"
},
"PDFToHTML": {
"tags": "web content,browser friendly",
"title": "PDF to HTML",
"header": "PDF to HTML",
"credit": "This service uses LibreOffice for file conversion.",
"submit": "Convert"
},
"PDFToXML": {
"tags": "data-extraction,structured-content,interop,transformation,convert",
"title": "PDF to XML",
"header": "PDF to XML",
"credit": "This service uses LibreOffice for file conversion.",
"submit": "Convert"
},
"ScannerImageSplit": {
"tags": "separate,auto-detect,scans,multi-photo,organize",
"selectText": {
"1": "Angle Threshold:",
"2": "Sets the minimum absolute angle required for the image to be rotated (default: 10).",
"3": "Tolerance:",
"4": "Determines the range of color variation around the estimated background color (default: 30).",
"5": "Minimum Area:",
"6": "Sets the minimum area threshold for a photo (default: 10000).",
"7": "Minimum Contour Area:",
"8": "Sets the minimum contour area threshold for a photo",
"9": "Border Size:",
"10": "Sets the size of the border added and removed to prevent white borders in the output (default: 1)."
}
},
"sign": {
"tags": "authorize,initials,drawn-signature,text-sign,image-signature",
"title": "Sign",
"header": "Sign PDFs",
"upload": "Upload Image",
"draw": "Draw Signature",
"text": "Text Input",
"clear": "Clear",
"add": "Add"
},
"flatten": {
"tags": "static,deactivate,non-interactive,streamline",
"title": "Flatten",
"header": "Flatten PDFs",
"submit": "Flatten"
},
"repair": {
"tags": "fix,restore,correction,recover",
"title": "Repair",
"header": "Repair PDFs",
"submit": "Repair"
},
"removeBlanks": {
"tags": "cleanup,streamline,non-content,organize",
"title": "Remove Blanks",
"header": "Remove Blank Pages",
"threshold": "Pixel Whiteness Threshold:",
"thresholdDesc": "Threshold for determining how white a white pixel must be to be classed as 'White'. 0 ",
"whitePercent": "White Percent (%):",
"whitePercentDesc": "Percent of page that must be 'white' pixels to be removed",
"submit": "Remove Blanks"
},
"compare": {
"tags": "differentiate,contrast,changes,analysis",
"title": "Compare",
"header": "Compare PDFs",
"document": {
"1": "Document 1",
"2": "Document 2"
},
"submit": "Compare"
},
"certSign": {
"tags": "authenticate,PEM,P12,official,encrypt",
"title": "Certificate Signing",
"header": "Sign a PDF with your certificate (Work in progress)",
"selectPDF": "Select a PDF File for Signing: ",
"selectKey": "Select Your Private Key File (PKCS",
"selectCert": "Select Your Certificate File (X.509 format, could be .pem or .der): ",
"selectP12": "Select Your PKCS",
"certType": "Certificate Type",
"password": "Enter Your Keystore or Private Key Password (If Any): ",
"showSig": "Show Signature",
"reason": "Reason",
"location": "Location",
"name": "Name ",
"submit": "Sign PDF"
},
"pageLayout": {
"tags": "merge,composite,single-view,organize",
"title": "Multi Page Layout",
"header": "Multi Page Layout",
"pagesPerSheet": "Pages per sheet:",
"addBorder": "Add Borders",
"submit": "Submit"
},
"scalePages": {
"tags": "resize,modify,dimension,adapt",
"title": "Adjust page-scale",
"header": "Adjust page-scale",
"pageSize": "Size of a page of the document.",
"scaleFactor": "Zoom level (crop) of a page.",
"submit": "Submit"
},
"pipeline": {
"tags": "automate,sequence,scripted,batch-process",
"title": "Pipeline"
},
"add-page-numbers": {
"tags": "paginate,label,organize,index"
},
"auto-rename": {
"tags": "auto-detect,header-based,organize,relabel",
"title": "Auto Rename",
"header": "Auto Rename PDF",
"submit": "Auto Rename"
},
"adjust-contrast": {
"tags": "color-correction,tune,modify,enhance"
},
"crop": {
"tags": "trim,shrink,edit,shape",
"title": "Crop",
"header": "Crop Image",
"submit": "Submit"
},
"autoSplitPDF": {
"tags": "QR-based,separate,scan-segment,organize",
"title": "Auto Split PDF",
"header": "Auto Split PDF",
"description": "Print, Insert, Scan, upload, and let us auto-separate your documents. No manual work sorting needed.",
"selectText": {
"1": "Print out some divider sheets from below (Black and white is fine).",
"2": "Scan all your documents at once by inserting the divider sheet between them.",
"3": "Upload the single large scanned PDF file and let Stirling PDF handle the rest.",
"4": "Divider pages are automatically detected and removed, guaranteeing a neat final document."
},
"formPrompt": "Submit PDF containing Stirling-PDF Page dividers:",
"duplexMode": "Duplex Mode (Front and back scanning)",
"dividerDownload1": "Download 'Auto Splitter Divider (minimal).pdf'",
"dividerDownload2": "Download 'Auto Splitter Divider (with instructions).pdf'",
"submit": "Submit"
},
"sanitizePdf": {
"tags": "clean,secure,safe,remove-threats"
},
"URLToPDF": {
"tags": "web-capture,save-page,web-to-doc,archive",
"title": "URL To PDF",
"header": "URL To PDF",
"submit": "Convert",
"credit": "Uses WeasyPrint"
},
"HTMLToPDF": {
"tags": "markup,web-content,transformation,convert",
"title": "HTML To PDF",
"header": "HTML To PDF",
"help": "Accepts HTML files and ZIPs containing html/css/images etc required",
"submit": "Convert",
"credit": "Uses WeasyPrint"
},
"MarkdownToPDF": {
"tags": "markup,web-content,transformation,convert",
"title": "Markdown To PDF",
"header": "Markdown To PDF",
"submit": "Convert",
"help": "Work in progress",
"credit": "Uses WeasyPrint"
},
"getPdfInfo": {
"tags": "infomation,data,stats,statistics",
"title": "Get Info on PDF",
"header": "Get Info on PDF",
"submit": "Get Info",
"downloadJson": "Download JSON"
},
"extractPage": {
"tags": "extract"
},
"PdfToSinglePage": {
"tags": "single page"
},
"showJS": {
"tags": "Redact,Hide,black out,black,marker,hidden",
"title": "Show Javascript",
"header": "Show Javascript",
"downloadJS": "Download Javascript",
"submit": "Show"
},
"login": {
"title": "Sign in",
"signin": "Sign in",
"rememberme": "Remember me",
"invalid": "Invalid username or password.",
"locked": "Your account has been locked.",
"signinTitle": "Please sign in"
},
"autoRedact": {
"title": "Auto Redact",
"header": "Auto Redact",
"colorLabel": "Colour",
"textsToRedactLabel": "Text to Redact (line-separated)",
"textsToRedactPlaceholder": "e.g. \\nConfidential \\nTop-Secret",
"useRegexLabel": "Use Regex",
"wholeWordSearchLabel": "Whole Word Search",
"customPaddingLabel": "Custom Extra Padding",
"convertPDFToImageLabel": "Convert PDF to PDF-Image (Used to remove text behind the box)",
"submitButton": "Submit"
},
"pdfToSinglePage": {
"title": "PDF To Single Page",
"header": "PDF To Single Page",
"submit": "Convert To Single Page"
},
"pageExtracter": {
"title": "Extract Pages",
"header": "Extract Pages",
"submit": "Extract"
},
"sanitizePDF": {
"title": "Sanitize PDF",
"header": "Sanitize a PDF file",
"selectText": {
"1": "Remove JavaScript actions",
"2": "Remove embedded files",
"3": "Remove metadata",
"4": "Remove links",
"5": "Remove fonts"
},
"submit": "Sanitize PDF"
},
"addPageNumbers": {
"title": "Add Page Numbers",
"header": "Add Page Numbers",
"selectText": {
"1": "Select PDF file:",
"2": "Margin Size",
"3": "Position",
"4": "Starting Number",
"5": "Pages to Number",
"6": "Custom Text"
},
"customTextDesc": "Custom Text",
"numberPagesDesc": "Which pages to number, default 'all', also accepts 1-5 or 2,5,9 etc",
"customNumberDesc": "Defaults to {n}, also accepts 'Page {n} of {total}', 'Text-{n}', '{filename}-{n}",
"submit": "Add Page Numbers"
},
"adjustContrast": {
"title": "Adjust Contrast",
"header": "Adjust Contrast",
"contrast": "Contrast:",
"brightness": "Brightness:",
"saturation": "Saturation:",
"download": "Download"
},
"compress": {
"title": "Compress",
"header": "Compress PDF",
"credit": "This service uses Ghostscript for PDF Compress/Optimisation.",
"selectText": {
"1": "Manual Mode - From 1 to 4",
"2": "Optimization level:",
"3": "4 (Terrible for text images)",
"4": "Auto mode - Auto adjusts quality to get PDF to exact size",
"5": "Expected PDF Size (e.g. 25MB, 10.8MB, 25KB) "
},
"submit": "Compress"
},
"pageRemover": {
"title": "Page Remover",
"header": "PDF Page remover",
"pagesToDelete": "Pages to delete (Enter a comma-separated list of page numbers) :",
"submit": "Delete Pages"
},
"imageToPDF": {
"title": "Image to PDF",
"header": "Image to PDF",
"submit": "Convert",
"selectLabel": "Image Fit Options",
"fillPage": "Fill Page",
"fitDocumentToImage": "Fit Page to Image",
"maintainAspectRatio": "Maintain Aspect Ratios",
"selectText": {
"2": "Auto rotate PDF",
"3": "Multi file logic (Only enabled if working with multiple images)",
"4": "Merge into single PDF",
"5": "Convert to separate PDFs"
}
},
"changeMetadata": {
"title": "Title:",
"header": "Change Metadata",
"selectText": {
"1": "Please edit the variables you wish to change",
"2": "Delete all metadata",
"3": "Show Custom Metadata:",
"4": "Other Metadata:",
"5": "Add Custom Metadata Entry"
},
"author": "Author:",
"creationDate": "Creation Date (yyyy/MM/dd HH:mm:ss):",
"creator": "Creator:",
"keywords": "Keywords:",
"modDate": "Modification Date (yyyy/MM/dd HH:mm:ss):",
"producer": "Producer:",
"subject": "Subject:",
"trapped": "Trapped:",
"submit": "Change"
}
}
}

View File

@ -1,6 +1,6 @@
import DynamicParameterFields from "../../components/DynamicParameterFields";
import { ImposeParamConstraints } from "@stirling-pdf/shared-operations/src/functions/impose";
// import { ImposeParamConstraints } from "@stirling-pdf/shared-operations/src/functions/impose";
import { useTranslation } from "react-i18next";
function Impose() {
@ -9,7 +9,7 @@ function Impose() {
<div>
<h2>{t("pageLayout.header")}</h2>
<form>
<DynamicParameterFields constraints={ImposeParamConstraints}/>
{/* <DynamicParameterFields constraints={ImposeParamConstraints}/> */}
</form>
</div>
);

1254
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -5,26 +5,24 @@
"type": "module",
"exports": "./dist/index.js",
"imports": {
"#pdfcpu": "../../shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server.js"
"#pdfcpu": "@stirling-pdf/shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server.js"
},
"optionalDependencies": {
"canvas": "^2.11.2"
},
"scripts": {
"dev": "npx tsx watch src/index.ts",
"build": "npm run prebuild && pkgroll && npm run postbuild",
"start": "node ./dist/index.js",
"prebuild": "rimraf ./dist",
"postbuild": "npm run copy-locales && npm run copy-pdfcpu",
"copy-locales": "copyfiles -u 3 ../shared-operations/src/locales/**/*.json dist",
"copy-pdfcpu": "copyfiles -u 5 ../shared-operations/src/wasm/pdfcpu/pdfcpu.wasm dist"
"dev": "rollup -c -w",
"build": "rollup -c --forceExit",
"start": "node ./dist/bundle.js"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"@esbuild/win32-x64": "^0.19.10",
"@rollup/plugin-alias": "^5.1.0",
"@rollup/plugin-commonjs": "^25.0.7",
"@rollup/plugin-json": "^6.1.0",
"@types/archiver": "^6.0.1",
"@types/express": "^4.17.21",
"@types/multer": "^1.4.10",
@ -36,14 +34,19 @@
"jsqr": "^1.4.0",
"multer": "^1.4.5-lts.1",
"pdf-lib": "^1.17.1",
"tsconfig-paths": "^4.2.0"
"rollup-plugin-copy": "^3.5.0",
"tsconfig-paths": "^4.2.0",
"vite-plugin-node-polyfills": "^0.19.0",
"vite-plugin-top-level-await": "^1.4.1"
},
"devDependencies": {
"@rollup/plugin-run": "^3.0.2",
"@rollup/plugin-typescript": "^11.1.6",
"copyfiles": "^2.4.1",
"pkgroll": "^2.0.1",
"rimraf": "^5.0.5",
"rollup": "^4.9.6",
"ts-node-dev": "^2.0.0",
"typescript": "^5.2.2"
}
}

View File

@ -0,0 +1,28 @@
import run from "@rollup/plugin-run";
import typescript from '@rollup/plugin-typescript';
import json from '@rollup/plugin-json';
import copy from 'rollup-plugin-copy'
const isDev = process.env.NODE_ENV !== "production";
export default {
input: "src/index.ts",
output: {
file: "dist/bundle.js",
format: "es",
},
watch: {
include: [ './src/**', '../shared-operations/src/**' ]
},
plugins: [
json(),
typescript(),
copy({
targets: [
{ src: '../shared-operations/public', dest: 'dist' },
]
}),
isDev && run()
],
};

View File

@ -11,7 +11,7 @@
// "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */
/* Language and Environment */
"target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
// "target": "es2016", /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */
// "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */
// "jsx": "preserve", /* Specify what JSX code is generated. */
// "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */
@ -26,11 +26,12 @@
/* Modules */
"module": "ES2020", /* Specify what module code is generated. */
// "rootDir": "./", /* Specify the root folder within your source files. */
"rootDir": "../", /* Specify the root folder within your source files. */
"moduleResolution": "Node", /* Specify how TypeScript looks up a file from a given module specifier. */
"baseUrl": "./src", /* Specify the base directory to resolve non-relative module names. */
"paths": {
"#pdfcpu": ["../../shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server"],
"#pdfcpu": ["@stirling-pdf/shared-operations/src/wasm/pdfcpu/pdfcpu-wrapper.server"],
"@stirling-pdf/*": [ "../../*" ]
}, /* Specify a set of entries that re-map imports to additional lookup locations. */
// "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */
// "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */
@ -46,7 +47,7 @@
// "noResolve": true, /* Disallow 'import's, 'require's or '<reference>'s from expanding the number of files TypeScript should add to a project. */
/* JavaScript Support */
// "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
"allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */
// "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */
// "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */
@ -111,11 +112,12 @@
},
"include": [
"src",
"declarations/*.d.ts"
, "../shared-operations/src/wasm/pdfcpu/PdfcpuWrapper.d.ts" ],
"declarations/*.d.ts",
"../shared-operations/src/wasm/pdfcpu/PdfcpuWrapper.d.ts"
],
"ts-node": {
"experimentalSpecifierResolution": "node",
"transpileOnly": true,
"esm": true,
},
"esm": true
}
}

View File

@ -3,9 +3,6 @@
"version": "0.0.0",
"main": "index.ts",
"type": "module",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"imports": {
"#pdfcpu": "./src/wasm/pdfcpu/pdfcpu-wrapper.server.js"
},

View File

@ -2,7 +2,9 @@ import i18next from "i18next";
import resourcesToBackend from "i18next-resources-to-backend";
i18next
.use(resourcesToBackend((language, namespace) => import(`./locales/${namespace}/${language}.json`)))
.use(resourcesToBackend((language, namespace) => import(`./public/locales/${namespace}/${language}.json`, {
assert: { type: "json" },
})))
.init({
// debug: true,
ns: ["common"], // Preload this namespace, no need to add the others, they will load once their module is loaded

View File

@ -2,7 +2,7 @@ import { WasmFs } from '@wasmer/wasmfs';
import path from "path";
import { fileURLToPath } from 'url';
let nodeWasmLocation = path.dirname(fileURLToPath(import.meta.url));
let nodeWasmLocation = "./dist/public/wasm/pdfcpu/"; // TODO: Replace with __dirname
let fs;
const wasmfs = new WasmFs();

View File

@ -1,5 +1,6 @@
{
"compilerOptions": {
"module": "Node16",
"esModuleInterop": true,
"baseUrl": "./src", /* Specify the base directory to resolve non-relative module names. */
"paths": {