Anthony Stirling 8149cb157c
SEO init (#4197)
# Description of Changes
This pull request introduces dynamic document meta tag management and
improves URL routing and tool metadata handling in the frontend. The
most significant changes are the addition of a custom hook to update
document meta tags (including OpenGraph tags) based on the selected
tool, enhancements to the tool selection context for better URL
synchronization, and enrichment of the `Tool` type and tool registry
with more metadata.

**Dynamic document meta management:**

* Added a new `useDocumentMeta` hook that updates the page's `<title>`,
description, and OpenGraph meta tags based on the currently selected
tool, and restores the original values on cleanup.
(`frontend/src/hooks/useDocumentMeta.ts`)
* Integrated `useDocumentMeta` into `HomePageContent` so the document's
meta tags dynamically reflect the selected tool's metadata, improving
SEO and social sharing. (`frontend/src/pages/HomePage.tsx`)
[[1]](diffhunk://#diff-85c26b21681286c20e97a26a4912f0b91812776c9d4d0c54aa541fded2565c7eR2-R8)
[[2]](diffhunk://#diff-85c26b21681286c20e97a26a4912f0b91812776c9d4d0c54aa541fded2565c7eR17)
[[3]](diffhunk://#diff-85c26b21681286c20e97a26a4912f0b91812776c9d4d0c54aa541fded2565c7eR28-R37)

**Tool metadata and context improvements:**

* Enhanced the `Tool` type and tool registry to include `title` and
`description` fields, which are now translated and used throughout the
UI and meta tags. (`frontend/src/types/tool.ts`,
`frontend/src/hooks/useToolManagement.tsx`)
[[1]](diffhunk://#diff-0b557df7bd27ac90cd2f925ddd8ef8096ea2decfaee9a5c12a94dc7a03c64bfaR46)
[[2]](diffhunk://#diff-57f8a6b3e75ecaec10ad445b01afe8fccc376af6f8ad4d693c68cf98e8863273L116-R118)
* Updated the `ToolWorkflowContext` to use the new `Tool` type for
`selectedTool`, replacing the previous `ToolConfiguration` type.
(`frontend/src/contexts/ToolWorkflowContext.tsx`)
[[1]](diffhunk://#diff-9b36e2c06dddbcfba6cb66fd0b303b7860f88ca8b562bb2534af1ab50390d385L6-R8)
[[2]](diffhunk://#diff-9b36e2c06dddbcfba6cb66fd0b303b7860f88ca8b562bb2534af1ab50390d385L72-R72)

**URL routing and synchronization:**

* Implemented logic in `ToolWorkflowContext` to synchronize the selected
tool with the browser URL, initialize tool selection from the URL on
load, and handle browser navigation (back/forward) for tool selection.
(`frontend/src/contexts/ToolWorkflowContext.tsx`)
---

## Checklist

### General

- [ ] I have read the [Contribution
Guidelines](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/CONTRIBUTING.md)
- [ ] I have read the [Stirling-PDF Developer
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md)
(if applicable)
- [ ] I have read the [How to add new languages to
Stirling-PDF](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md)
(if applicable)
- [ ] I have performed a self-review of my own code
- [ ] My changes generate no new warnings

### Documentation

- [ ] I have updated relevant docs on [Stirling-PDF's doc
repo](https://github.com/Stirling-Tools/Stirling-Tools.github.io/blob/main/docs/)
(if functionality has heavily changed)
- [ ] I have read the section [Add New Translation
Tags](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/HowToAddNewLanguage.md#add-new-translation-tags)
(for new translation tags only)

### UI Changes (if applicable)

- [ ] Screenshots or videos demonstrating the UI changes are attached
(e.g., as comments or direct attachments in the PR)

### Testing (if applicable)

- [ ] I have tested my changes locally. Refer to the [Testing
Guide](https://github.com/Stirling-Tools/Stirling-PDF/blob/main/devGuide/DeveloperGuide.md#6-testing)
for more details.
2025-08-14 15:52:38 +01:00

1562 lines
55 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"language": {
"direction": "ltr"
},
"addPageNumbers": {
"fontSize": "字体大小",
"fontName": "字体名称",
"title": "添加页码",
"header": "添加页码",
"selectText": {
"1": "选择PDF文件",
"2": "边距大小",
"3": "位置",
"4": "起始页码",
"5": "添加页码的页数",
"6": "自定义文本"
},
"customTextDesc": "自定义文本",
"numberPagesDesc": "要添加页码的页数默认为“所有”也可以接受1-5或2,5,9等",
"customNumberDesc": "默认为 {n},也可以接受“第 {n} 页/共 {total} 页”,“文本-{n}”,“{filename}-{n}”",
"submit": "添加页码"
},
"pdfPrompt": "选择 PDF",
"multiPdfPrompt": "选择多个 PDF2个或更多",
"multiPdfDropPrompt": "选择(或拖拽)所需的 PDF",
"imgPrompt": "选择图像",
"genericSubmit": "提交",
"uploadLimit": "Maximum file size:",
"uploadLimitExceededSingular": "is too large. Maximum allowed size is",
"uploadLimitExceededPlural": "are too large. Maximum allowed size is",
"processTimeWarning": "警告:此过程可能需要多达一分钟,具体时间取决于文件大小",
"pageOrderPrompt": "页面顺序(输入逗号分隔的页码列表或函数):",
"pageSelectionPrompt": "自定义页面选择输入以逗号分隔的页码列表或函数1,5,6、2n+1",
"goToPage": "到",
"true": "对",
"false": "错",
"unknown": "未知",
"save": "保存",
"saveToBrowser": "保存到浏览器",
"close": "关闭",
"filesSelected": "选中的文件",
"noFavourites": "没有添加收藏夹",
"downloadComplete": "下载完成",
"bored": "等待时觉得无聊?",
"alphabet": "字母表",
"downloadPdf": "下载 PDF",
"text": "文本",
"font": "字体",
"selectFillter": "-- 选择--",
"pageNum": "页码",
"sizes": {
"small": "小型尺寸",
"medium": "中型尺寸",
"large": "大型尺寸",
"x-large": "超大型尺寸"
},
"error": {
"pdfPassword": "PDF文档有密码未提供密码或密码不正确",
"_value": "错误",
"sorry": "对此问题感到抱歉!",
"needHelp": "需要帮助 / 发现问题?",
"contactTip": "如果你仍然遇到问题,不要犹豫,向我们寻求帮助。你可以在我们的 GitHub 页面上提交工单,或者通过 Discord 与我们联系:",
"404": {
"head": "404 - 页面未找到 | 哎呀,我们在代码中触发了错误!",
"1": "我们似乎找不到你寻找的页面。",
"2": "出了些问题"
},
"github": "在 GitHub 上提交工单",
"showStack": "显示堆栈跟踪",
"copyStack": "复制堆栈跟踪",
"githubSubmit": "GitHub - 提交工单",
"discordSubmit": "Discord - 提交支持帖子"
},
"delete": "删除",
"username": "用户名",
"password": "密码",
"welcome": "欢迎",
"property": "资产",
"black": "黑色",
"white": "白色",
"red": "红色",
"green": "绿色",
"blue": "蓝色",
"custom": "自定义...",
"WorkInProgess": "工作正在进行中,可能无法工作或有错误,请报告任何问题!",
"poweredBy": "服务来源:",
"yes": "是",
"no": "否",
"changedCredsMessage": "凭证已更改!",
"notAuthenticatedMessage": "用户未经过身份验证。",
"userNotFoundMessage": "未找到用户。",
"incorrectPasswordMessage": "当前密码不正确。",
"usernameExistsMessage": "新用户名已存在。",
"invalidUsernameMessage": "用户名无效,用户名只能包含字母、数字和以下特殊字符@._+- 或必须是有效的电子邮件地址。",
"invalidPasswordMessage": "密码不能为空且开头和结尾不能有空格。",
"confirmPasswordErrorMessage": "两次密码不一致。",
"deleteCurrentUserMessage": "无法删除当前登录的用户。",
"deleteUsernameExistsMessage": "用户名不存在,无法删除。",
"downgradeCurrentUserMessage": "无法降级当前用户的角色",
"disabledCurrentUserMessage": "无法禁用当前用户。",
"downgradeCurrentUserLongMessage": "无法降级当前用户的角色。因此,当前用户将不会显示。",
"userAlreadyExistsOAuthMessage": "该用户已作为 OAuth2 用户存在。",
"userAlreadyExistsWebMessage": "该用户已作为 Web 用户存在。",
"oops": "哎呀!",
"help": "帮助",
"goHomepage": "返回主页",
"joinDiscord": "加入我们的 Discord 服务器",
"seeDockerHub": "查看 Docker Hub",
"visitGithub": "访问 Github 仓库",
"donate": "捐款",
"color": "颜色",
"sponsor": "赞助",
"info": "信息",
"pro": "专业版",
"page": "页面",
"pages": "页码",
"loading": "加载中...",
"addToDoc": "添加至文件",
"reset": "重置",
"apply": "应用",
"noFileSelected": "No file selected. Please upload one.",
"legal": {
"privacy": "隐私政策",
"terms": "服务条款",
"accessibility": "无障碍",
"cookie": "Cookie 政策",
"impressum": "Impressum",
"showCookieBanner": "Cookie Preferences"
},
"pipeline": {
"header": "流水线菜单Beta",
"uploadButton": "上传自定义流水线",
"configureButton": "配置",
"defaultOption": "自定义",
"submitButton": "提交",
"help": "工作流帮助",
"scanHelp": "文件夹扫描帮助",
"deletePrompt": "确认删除该工作流?",
"tags": "自动化、顺序、脚本化、批处理",
"title": "流水线"
},
"pipelineOptions": {
"header": "流水线配置",
"pipelineNameLabel": "流水线名称",
"saveSettings": "保存设置",
"pipelineNamePrompt": "请输入流水线名称",
"selectOperation": "选择操作",
"addOperationButton": "添加操作",
"pipelineHeader": "流水线:",
"saveButton": "下载",
"validateButton": "验证"
},
"enterpriseEdition": {
"button": "升级到 Pro 版本",
"warning": "此功能仅适用于 Pro 版本",
"yamlAdvert": "Stirling PDF Pro支持YAML配置文件和其他SSO功能。",
"ssoAdvert": "寻找更多的用户管理功能查看Stirling PDF Pro"
},
"analytics": {
"title": "你想协助改善Stirling PDF吗",
"paragraph1": "Stirling PDF有选择性分析功能可以帮助我们改进产品。我们不跟踪任何个人信息或文件内容。",
"paragraph2": "请考虑启用分析来帮助Stirling-PDF的发展并让我们更好地了解我们的用户。",
"enable": "启用分析功能",
"disable": "禁用分析功能",
"settings": "您可以在 config/settings.yml 文件中变更分析功能的设定"
},
"navbar": {
"favorite": "收藏",
"recent": "新功能和最近更新",
"darkmode": "暗黑模式",
"language": "语言",
"settings": "设置",
"allTools": "工具箱",
"multiTool": "多功能工具",
"search": "",
"sections": {
"organize": "",
"convertTo": "PDF",
"convertFrom": "PDF",
"security": "",
"advance": "",
"edit": "",
"popular": ""
}
},
"settings": {
"title": "",
"update": "",
"updateAvailable": " {0} ({1}) ",
"appVersion": "",
"downloadOption": {
"title": "",
"1": "",
"2": "",
"3": ""
},
"zipThreshold": "",
"signOut": "",
"accountSettings": "",
"bored": {
"help": ""
},
"cacheInputs": {
"name": "",
"help": "使"
}
},
"changeCreds": {
"title": "",
"header": "",
"changePassword": "使",
"newUsername": "",
"oldPassword": "",
"newPassword": "",
"confirmNewPassword": "",
"submit": ""
},
"account": {
"title": "",
"accountSettings": "",
"adminSettings": " - ",
"userControlSettings": "",
"changeUsername": "",
"newUsername": "",
"password": "",
"oldPassword": "",
"newPassword": "",
"changePassword": "",
"confirmNewPassword": "",
"signOut": "退",
"yourApiKey": " API ",
"syncTitle": "",
"settingsCompare": "",
"property": "",
"webBrowserSettings": "Web ",
"syncToBrowser": " -> ",
"syncToAccount": " <- "
},
"adminUserSettings": {
"title": "",
"header": "",
"admin": "",
"user": "",
"addUser": "",
"deleteUser": "",
"confirmDeleteUser": "",
"confirmChangeUserStatus": "/",
"usernameInfo": "@._+-",
"roles": "",
"role": "",
"actions": "",
"apiUser": " API ",
"extraApiUser": " API ",
"webOnlyUser": " Web ",
"demoUser": "()",
"internalApiUser": " API ",
"forceChange": "/",
"submit": "",
"changeUserRole": "",
"authenticated": "",
"editOwnProfil": "",
"enabledUser": "",
"disabledUser": "",
"activeUsers": ":",
"disabledUsers": ":",
"totalUsers": ":",
"lastRequest": "",
"usage": "View Usage"
},
"endpointStatistics": {
"title": "Endpoint Statistics",
"header": "Endpoint Statistics",
"top10": "Top 10",
"top20": "Top 20",
"all": "All",
"refresh": "Refresh",
"includeHomepage": "Include Homepage ('/')",
"includeLoginPage": "Include Login Page ('/login')",
"totalEndpoints": "Total Endpoints",
"totalVisits": "Total Visits",
"showing": "Showing",
"selectedVisits": "Selected Visits",
"endpoint": "Endpoint",
"visits": "Visits",
"percentage": "Percentage",
"loading": "Loading...",
"failedToLoad": "Failed to load endpoint data. Please try refreshing.",
"home": "Home",
"login": "Login",
"top": "Top",
"numberOfVisits": "Number of Visits",
"visitsTooltip": "Visits: {0} ({1}% of total)",
"retry": "Retry"
},
"database": {
"title": " /",
"header": " /",
"fileName": "",
"creationDate": "",
"fileSize": "",
"deleteBackupFile": "",
"importBackupFile": "",
"createBackupFile": "",
"downloadBackupFile": "",
"info_1": "",
"info_2": " backup_user_yyyyMMddHHmm.sql",
"submit": "",
"importIntoDatabaseSuccessed": "",
"backupCreated": "",
"fileNotFound": "",
"fileNullOrEmpty": "",
"failedImportFile": "",
"notSupported": ""
},
"session": {
"expired": "",
"refreshPage": ""
},
"home": {
"desc": " PDF ",
"searchBar": "...",
"viewPdf": {
"title": "View/Edit PDF",
"desc": ""
},
"setFavorites": "",
"hideFavorites": "",
"showFavorites": "",
"legacyHomepage": "使",
"newHomePage": "!",
"alphabetical": "",
"globalPopularity": "",
"sortBy": ":",
"multiTool": {
"title": "PDF ",
"desc": " PDF "
},
"merge": {
"title": "",
"desc": " PDF "
},
"split": {
"title": "",
"desc": " PDF "
},
"rotate": {
"title": "",
"desc": " PDF"
},
"imageToPDF": {
"title": " PDF",
"desc": "PNGJPEGGIF PDF"
},
"pdfToImage": {
"title": " PDF ",
"desc": " PDF PNGJPEGGIF"
},
"pdfOrganiser": {
"title": "",
"desc": "/"
},
"addImage": {
"title": " PDF ",
"desc": " PDF "
},
"watermark": {
"title": "",
"desc": " PDF "
},
"permissions": {
"title": "",
"desc": " PDF "
},
"pageRemover": {
"title": "",
"desc": " PDF "
},
"addPassword": {
"title": "",
"desc": "使 PDF "
},
"removePassword": {
"title": "",
"desc": " PDF "
},
"compress": {
"title": "",
"desc": " PDF "
},
"unlockPDFForms": {
"title": "Unlock PDF Forms",
"desc": "Remove read-only property of form fields in a PDF document."
},
"changeMetadata": {
"title": "",
"desc": "// PDF "
},
"fileToPDF": {
"title": " PDF ",
"desc": " PDF DOCXPNGXLSPPTTXT"
},
"ocr": {
"title": " OCR /",
"desc": " PDF "
},
"extractImages": {
"title": "",
"desc": " PDF "
},
"pdfToPDFA": {
"title": "PDF PDF/A",
"desc": " PDF PDF/A "
},
"PDFToWord": {
"title": "PDF Word",
"desc": "PDFWordDOCDOCXODT"
},
"PDFToPresentation": {
"title": "PDF 稿",
"desc": " PDF 稿PPTPPTX 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": ""
},
"removeAnnotations": {
"title": "",
"desc": " PDF /"
},
"compare": {
"title": "",
"desc": " PDF "
},
"certSign": {
"title": "使",
"desc": "使/PEM/P12PDF"
},
"removeCertSign": {
"title": "",
"desc": " PDF "
},
"pageLayout": {
"title": "",
"desc": " PDF "
},
"scalePages": {
"title": "/",
"desc": "//"
},
"pipeline": {
"title": "线",
"desc": "线 PDF "
},
"addPageNumbers": {
"title": "",
"desc": ""
},
"auto-rename": {
"title": " PDF ",
"desc": " PDF "
},
"adjustContrast": {
"title": "/",
"desc": " PDF "
},
"crop": {
"title": " PDF",
"desc": " PDF "
},
"autoSplitPDF": {
"title": "",
"desc": "使 QR PDF"
},
"sanitizePDF": {
"title": "",
"desc": " PDF "
},
"URLToPDF": {
"title": "URL/ PDF",
"desc": " http(s)URL PDF"
},
"HTMLToPDF": {
"title": "HTML PDF",
"desc": " HTML zip PDF"
},
"MarkdownToPDF": {
"title": "Markdown PDF",
"desc": " Markdown PDF"
},
"PDFToMarkdown": {
"title": "PDF Markdown",
"desc": "pdfMarkdown"
},
"getPdfInfo": {
"title": " PDF ",
"desc": " PDF "
},
"pageExtracter": {
"title": "",
"desc": " PDF "
},
"pdfToSinglePage": {
"title": "PDF ",
"desc": " PDF "
},
"showJS": {
"title": " JavaScript",
"desc": " PDF JavaScript "
},
"autoRedact": {
"title": "",
"desc": "PDF "
},
"redact": {
"title": "",
"desc": "/PDF"
},
"PDFToCSV": {
"title": "PDF CSV",
"desc": " PDF CSV"
},
"split-by-size-or-count": {
"title": "/ PDF",
"desc": " PDF "
},
"overlay-pdfs": {
"title": " PDF",
"desc": " PDF PDF "
},
"split-by-sections": {
"title": " PDF ",
"desc": " PDF "
},
"AddStampRequest": {
"title": "",
"desc": ""
},
"removeImage": {
"title": "",
"desc": " PDF "
},
"splitByChapters": {
"title": " PDF",
"desc": " PDF "
},
"validateSignature": {
"title": " PDF ",
"desc": " PDF "
},
"replace-color": {
"title": "",
"desc": " PDF PDF"
}
},
"viewPdf": {
"tags": "",
"title": "View/Edit PDF",
"header": " PDF"
},
"multiTool": {
"tags": "",
"title": "PDF ",
"header": "PDF ",
"uploadPrompts": "",
"selectAll": "",
"deselectAll": "",
"selectPages": "Page Select",
"selectedPages": "",
"page": "Page",
"deleteSelected": "",
"downloadAll": "",
"downloadSelected": "",
"insertPageBreak": "",
"addFile": "",
"rotateLeft": "",
"rotateRight": "",
"split": "",
"moveLeft": "",
"moveRight": "",
"delete": "",
"dragDropMessage": "",
"undo": "Undo",
"redo": "Redo"
},
"merge": {
"tags": "",
"title": "",
"header": " PDF2",
"sortByName": "",
"sortByDate": "",
"removeCertSign": "",
"submit": ""
},
"split": {
"tags": "",
"title": " PDF",
"header": " PDF",
"desc": {
"1": "",
"2": "1,3,7-9 10 6PDF",
"3": " #1 1 ",
"4": " #2 2 3 ",
"5": " #3 4 5 6 7 ",
"6": " #4 7 ",
"7": " #5 8 ",
"8": " #6 9 10 "
},
"splitPages": "",
"submit": ""
},
"rotate": {
"tags": "",
"title": " PDF",
"header": " PDF",
"selectAngle": " 90 ",
"submit": ""
},
"imageToPdf": {
"tags": "JPG"
},
"pdfToImage": {
"tags": "JPG",
"title": "PDF ",
"header": " PDF ",
"selectText": "",
"singleOrMultiple": "",
"single": "",
"multi": "",
"colorType": "",
"color": "",
"grey": "",
"blackwhite": "",
"submit": "",
"info": "WebP Python",
"placeholder": "1,2,8 4,7,12-16 2n-1"
},
"pdfOrganiser": {
"tags": "",
"title": "",
"header": "PDF ",
"submit": "",
"mode": {
"_value": "",
"1": "",
"2": "",
"3": "",
"4": "",
"5": "",
"6": "",
"7": "",
"8": "",
"9": "",
"10": "",
"11": "Duplicate all pages"
},
"placeholder": "1,3,2 4-8,2,10-12 2n-1"
},
"addImage": {
"tags": "JPG",
"title": "",
"header": " PDF",
"everyPage": "",
"upload": "",
"submit": ""
},
"watermark": {
"tags": "JPG",
"title": "",
"header": "",
"customColor": "",
"selectText": {
"1": " PDF",
"2": "",
"3": "",
"4": "0-360",
"5": "",
"6": "",
"7": "0% - 100%",
"8": "",
"9": "",
"10": " PDF PDF-Image"
},
"submit": "",
"type": {
"1": "",
"2": ""
}
},
"permissions": {
"tags": "",
"title": "",
"header": "",
"warning": "使",
"selectText": {
"1": " PDF ",
"2": "",
"3": "",
"4": "",
"5": "访",
"6": "",
"7": "",
"8": "",
"9": "",
"10": ""
},
"submit": ""
},
"removePages": {
"tags": ""
},
"addPassword": {
"tags": "",
"title": "",
"header": "",
"selectText": {
"1": " PDF",
"2": "",
"3": "",
"4": "",
"5": "",
"6": "",
"7": "",
"8": "访",
"9": "",
"10": "",
"11": "",
"12": "",
"13": "",
"14": "",
"15": "",
"16": ""
},
"submit": ""
},
"removePassword": {
"tags": "",
"title": "",
"header": "",
"selectText": {
"1": " PDF",
"2": ""
},
"submit": ""
},
"compressPdfs": {
"tags": ""
},
"unlockPDFForms": {
"tags": "remove,delete,form,field,readonly",
"title": "Remove Read-Only from Form Fields",
"header": "Unlock PDF Forms",
"submit": "Remove"
},
"changeMetadata": {
"tags": "",
"title": "",
"header": "",
"selectText": {
"1": "",
"2": "",
"3": "",
"4": "",
"5": ""
},
"author": "",
"creationDate": "yyyy/MM/dd HH:mm:ss",
"creator": "",
"keywords": "",
"modDate": "yyyy/MM/dd HH:mm:ss",
"producer": "",
"subject": "",
"trapped": "",
"submit": ""
},
"fileToPDF": {
"tags": "OfficeDocsWordExcelPowerPoint",
"title": " PDF",
"header": " PDF",
"credit": "使 LibreOffice Unoconv ",
"supportedFileTypesInfo": "",
"supportedFileTypes": " LibreOffice ",
"submit": " PDF"
},
"ocr": {
"tags": "",
"title": "OCR/",
"header": "/OCR",
"selectText": {
"1": " PDF ",
"2": " OCR OCR PDF ",
"3": "",
"4": " OCR ()",
"5": " OCR ",
"6": " OCR",
"7": " OCR OCR ",
"8": " ( PDF )",
"9": "",
"10": "OCR ",
"11": "OCR ",
"12": ""
},
"help": "/ docker 使",
"credit": "使 qpdf Tesseract OCR",
"submit": " OCR PDF"
},
"extractImages": {
"tags": "",
"title": "",
"header": "",
"selectText": "",
"allowDuplicates": "",
"submit": ""
},
"pdfToPDFA": {
"tags": "",
"title": "PDF PDF/A",
"header": " PDF PDF/A",
"credit": "使 libreoffice PDF/A ",
"submit": "",
"tip": "",
"outputFormat": "",
"pdfWithDigitalSignature": "PDF"
},
"PDFToWord": {
"tags": "docdocxodtwordOfficeMicrosoft",
"title": "PDF Word",
"header": " PDF Word",
"selectText": {
"1": ""
},
"credit": "使 LibreOffice ",
"submit": ""
},
"PDFToPresentation": {
"tags": "OfficeMicrosoft",
"title": "PDF 稿",
"header": " PDF 稿",
"selectText": {
"1": ""
},
"credit": "使 LibreOffice ",
"submit": ""
},
"PDFToText": {
"tags": "RTF",
"title": "PDF /RTF",
"header": " PDF /RTF",
"selectText": {
"1": ""
},
"credit": "使 LibreOffice ",
"submit": ""
},
"PDFToHTML": {
"tags": "",
"title": "PDF HTML",
"header": " PDF HTML",
"credit": "使 pdftohtml ",
"submit": ""
},
"PDFToXML": {
"tags": "",
"title": "PDF XML",
"header": " PDF XML",
"credit": "使 LibreOffice ",
"submit": ""
},
"ScannerImageSplit": {
"tags": "",
"selectText": {
"1": "",
"2": "10",
"3": "",
"4": "30",
"5": "",
"6": "10000",
"7": "",
"8": "",
"9": "",
"10": "1"
},
"info": " Python"
},
"sign": {
"tags": "",
"title": "",
"header": " PDF",
"upload": "",
"draw": "",
"text": "",
"clear": "",
"add": "",
"saved": "",
"save": "",
"personalSigs": "",
"sharedSigs": "",
"noSavedSigs": "",
"addToAll": "",
"delete": "",
"first": "",
"last": "",
"next": "",
"previous": "",
"maintainRatio": "",
"undo": "",
"redo": ""
},
"flatten": {
"tags": "",
"title": "",
"header": " PDF",
"flattenOnlyForms": "",
"submit": ""
},
"repair": {
"tags": "",
"title": "",
"header": " PDF",
"submit": ""
},
"removeBlanks": {
"tags": "",
"title": "",
"header": "",
"threshold": "",
"thresholdDesc": "",
"whitePercent": "%",
"whitePercentDesc": "",
"submit": ""
},
"removeAnnotations": {
"tags": "",
"title": "",
"header": "",
"submit": ""
},
"compare": {
"tags": "",
"title": "",
"header": "PDF",
"highlightColor": {
"1": " 1:",
"2": " 2:"
},
"document": {
"1": " 1",
"2": " 2"
},
"submit": "",
"complex": {
"message": ""
},
"large": {
"file": {
"message": ""
}
},
"no": {
"text": {
"message": " PDF PDF "
}
}
},
"certSign": {
"tags": "PEMP12",
"title": "",
"header": "使 PDF",
"selectPDF": " PDF ",
"jksNote": "使keytool Java Keystore.jks .jks",
"selectKey": "PKCS#8.pem.der",
"selectCert": "X.509.pem.der",
"selectP12": " PKCS#12 .p12.pfx",
"selectJKS": " Java Keystore (.jks.keystore):",
"certType": "",
"password": "",
"showSig": "",
"reason": "",
"location": "",
"name": "",
"showLogo": " Logo",
"submit": " PDF "
},
"removeCertSign": {
"tags": "PEMP12",
"title": "",
"header": " PDF ",
"selectPDF": " PDF ",
"submit": ""
},
"pageLayout": {
"tags": "",
"title": "",
"header": "",
"pagesPerSheet": "",
"addBorder": "",
"submit": ""
},
"scalePages": {
"tags": "",
"title": "",
"header": "",
"pageSize": "",
"keepPageSize": "",
"scaleFactor": "",
"submit": ""
},
"add-page-numbers": {
"tags": ""
},
"auto-rename": {
"tags": "",
"title": "",
"header": " PDF",
"submit": ""
},
"adjust-contrast": {
"tags": ""
},
"crop": {
"tags": "",
"title": "",
"header": " PDF",
"submit": ""
},
"autoSplitPDF": {
"tags": " QR ",
"title": " PDF",
"header": " PDF",
"description": "",
"selectText": {
"1": "",
"2": "",
"3": " PDF Stirling PDF ",
"4": ""
},
"formPrompt": " Stirling-PDF PDF",
"duplexMode": "",
"dividerDownload2": ".pdf",
"submit": ""
},
"sanitizePdf": {
"tags": ""
},
"URLToPDF": {
"tags": "",
"title": "URL PDF",
"header": " URL PDF",
"submit": "",
"credit": "使 WeasyPrint "
},
"HTMLToPDF": {
"tags": "",
"title": "HTML PDF",
"header": " HTML PDF",
"help": " HTML html/css/images ZIP ",
"submit": "",
"credit": "使 WeasyPrint ",
"zoom": "",
"pageWidth": "-使",
"pageHeight": "-使",
"marginTop": "-使",
"marginBottom": "-使",
"marginLeft": "-使",
"marginRight": "-使",
"printBackground": "",
"defaultHeader": "",
"cssMediaType": " CSS ",
"none": "",
"print": "",
"screen": ""
},
"MarkdownToPDF": {
"tags": "",
"title": "Markdown PDF",
"header": " Markdown PDF",
"submit": "",
"help": "",
"credit": "使 WeasyPrint "
},
"PDFToMarkdown": {
"tags": ",,,,md",
"title": "PDFMarkdown",
"header": "PDFMarkdown",
"submit": ""
},
"getPdfInfo": {
"tags": "",
"title": " PDF ",
"header": " PDF ",
"submit": "",
"downloadJson": " JSON"
},
"extractPage": {
"tags": ""
},
"PdfToSinglePage": {
"tags": ""
},
"showJS": {
"tags": "JavaScript",
"title": " JavaScript",
"header": " JavaScript",
"downloadJS": " JavaScript",
"submit": ""
},
"autoRedact": {
"tags": "",
"title": "",
"header": "",
"colorLabel": "",
"textsToRedactLabel": "",
"textsToRedactPlaceholder": "\\n\\n",
"useRegexLabel": "使",
"wholeWordSearchLabel": "",
"customPaddingLabel": "",
"convertPDFToImageLabel": "PDFPDF-Image",
"submitButton": ""
},
"redact": {
"tags": ",,,,,,",
"title": "",
"header": "",
"submit": "",
"textBasedRedaction": "",
"pageBasedRedaction": "",
"convertPDFToImageLabel": "PDFPDF",
"pageRedactionNumbers": {
"title": "",
"placeholder": "( 1,2,8 4,7,12-16 2n-1)"
},
"redactionColor": {
"title": ""
},
"export": "",
"upload": "",
"boxRedaction": "",
"zoom": "",
"zoomIn": "",
"zoomOut": "",
"nextPage": "",
"previousPage": "",
"toggleSidebar": "",
"showThumbnails": "",
"showDocumentOutline": "/",
"showAttatchments": "",
"showLayers": "",
"colourPicker": "",
"findCurrentOutlineItem": "",
"applyChanges": ""
},
"tableExtraxt": {
"tags": "CSV"
},
"autoSizeSplitPDF": {
"tags": "pdf"
},
"overlay-pdfs": {
"tags": "",
"header": " PDF ",
"baseFile": {
"label": " PDF "
},
"overlayFiles": {
"label": " PDF "
},
"mode": {
"label": "",
"sequential": "",
"interleaved": "",
"fixedRepeat": ""
},
"counts": {
"label": "",
"placeholder": "2,3,1"
},
"position": {
"label": "",
"foreground": "",
"background": ""
},
"submit": ""
},
"split-by-sections": {
"tags": "",
"title": "Section PDF",
"header": " PDF ",
"horizontal": {
"label": "",
"placeholder": ""
},
"vertical": {
"label": "",
"placeholder": ""
},
"submit": " PDF",
"merge": " pdf"
},
"AddStampRequest": {
"tags": "PDF",
"header": "",
"title": "",
"stampType": "",
"stampText": "",
"stampImage": "",
"alphabet": "",
"fontSize": "/",
"rotation": "",
"opacity": "",
"position": "",
"overrideX": "X",
"overrideY": "Y",
"customMargin": "",
"customColor": "",
"submit": ""
},
"removeImagePdf": {
"tags": ", , , "
},
"splitPdfByChapters": {
"tags": ",,,"
},
"validateSignature": {
"tags": "PDF",
"title": "pdf",
"header": "",
"selectPDF": "pdf",
"submit": "",
"results": "",
"status": {
"_value": "",
"valid": "",
"invalid": ""
},
"signer": "",
"date": "",
"reason": "",
"location": "",
"noSignatures": "",
"chain": {
"invalid": " - "
},
"trust": {
"invalid": " - "
},
"cert": {
"expired": "",
"revoked": "",
"info": "",
"issuer": "",
"subject": "",
"serialNumber": "",
"validFrom": "",
"validUntil": "",
"algorithm": "",
"keySize": "",
"version": "",
"keyUsage": "",
"selfSigned": "",
"bits": ""
},
"signature": {
"info": "",
"_value": "",
"mathValid": ":"
},
"selectCustomCert": "X.509 "
},
"replace-color": {
"title": "--",
"header": "- PDF ",
"selectText": {
"1": "",
"2": "",
"3": "()",
"4": "",
"5": "",
"6": "",
"7": "",
"8": "",
"9": "绿",
"10": "",
"11": ""
},
"submit": ""
},
"replaceColorPdf": {
"tags": ""
},
"login": {
"title": "",
"header": "",
"signin": "",
"rememberme": "",
"invalid": "",
"locked": "",
"signinTitle": "",
"ssoSignIn": "",
"oAuth2AutoCreateDisabled": "OAuth2 ",
"oAuth2AdminBlockedUser": "",
"oauth2RequestNotFound": "",
"oauth2InvalidUserInfoResponse": "",
"oauth2invalidRequest": "",
"oauth2AccessDenied": "访",
"oauth2InvalidTokenResponse": " Token ",
"oauth2InvalidIdToken": " Token",
"relyingPartyRegistrationNotFound": "No relying party registration found",
"userIsDisabled": "",
"alreadyLoggedIn": "",
"alreadyLoggedIn2": "",
"toManySessions": "",
"logoutMessage": "You have been logged out."
},
"pdfToSinglePage": {
"title": "PDF ",
"header": " PDF ",
"submit": ""
},
"pageExtracter": {
"title": "",
"header": "",
"submit": "",
"placeholder": "1,2,8 4,7,12-16 2n-1"
},
"sanitizePDF": {
"title": " PDF",
"header": " PDF ",
"selectText": {
"1": " JavaScript ",
"2": "",
"3": "Remove XMP metadata",
"4": "",
"5": "",
"6": "Remove Document Info Metadata"
},
"submit": "PDF"
},
"adjustContrast": {
"title": "",
"header": "",
"contrast": "",
"brightness": "",
"saturation": "",
"download": ""
},
"compress": {
"title": "",
"header": " PDF",
"credit": "使qpdf PDF /",
"grayscale": {
"label": ""
},
"selectText": {
"1": {
"_value": "Compression Settings",
"1": "1-3 PDF compression,</br> 4-6 lite image compression,</br> 7-9 intense image compression Will dramatically reduce image quality"
},
"2": "",
"4": " - PDF",
"5": "PDF25MB10.8MB25KB"
},
"submit": ""
},
"decrypt": {
"passwordPrompt": "",
"cancelled": "PDF {0}",
"noPassword": " PDF {0}",
"invalidPassword": "使",
"invalidPasswordHeader": " PDF {0}",
"unexpectedError": "",
"serverError": " {0}",
"success": ""
},
"multiTool-advert": {
"message": "<a href=\"{0}\">多功能工具页面</a>”。查看它以获得增强的逐页 UI 以及其他功能!"
},
"pageRemover": {
"title": "删除页面",
"header": "PDF 页面移除器",
"pagesToDelete": "要删除的页面(输入一个用逗号分隔的页码列表):",
"submit": "删除页面",
"placeholder": "例如1,2,6 或 1-10,15-30"
},
"imageToPDF": {
"title": "图片转 PDF",
"header": "将图片转换为 PDF",
"submit": "转换",
"selectLabel": "图片适应选项",
"fillPage": "填充页面",
"fitDocumentToImage": "适应图片大小",
"maintainAspectRatio": "保持纵横比例",
"selectText": {
"2": "自动旋转 PDF",
"3": "多文件逻辑(仅在处理多个图像时启用)",
"4": "合并成一个 PDF 文件",
"5": "转换为独立的 PDF 文件"
}
},
"PDFToCSV": {
"title": "PDF 转 CSV",
"header": "将 PDF 转换为 CSV",
"prompt": "选择需要提取表格的页面",
"submit": "提取"
},
"split-by-size-or-count": {
"title": "按照大小或数目拆分 PDF",
"header": "按照大小或数目拆分 PDF",
"type": {
"label": "选择拆分类型",
"size": "按照大小",
"pageCount": "按照页数",
"docCount": "按照文档数"
},
"value": {
"label": "输入数值",
"placeholder": "输入大小例如2MB或3KB或数目例如5"
},
"submit": "提交"
},
"printFile": {
"title": "打印文件",
"header": "使用打印机打印文件",
"selectText": {
"1": "选择要打印的文件",
"2": "输入打印机名称"
},
"submit": "打印"
},
"licenses": {
"nav": "许可证",
"title": "第三方许可证",
"header": "第三方许可证",
"module": "模块",
"version": "版本",
"license": "许可证"
},
"survey": {
"nav": "问卷调查",
"title": "Stirling-PDF 问卷调查",
"description": "Stirling-PDF 没有跟踪器,所以我们希望听取用户的意见来改进 Stirling-PDF",
"changes": "自上次调查以来Stirling-PDF 已经发生了变化!要了解更多信息,请在此处查看我们的博客文章:",
"changes2": "通过这些变化,我们得到了商业支持和资金援助。",
"please": "请考虑参加我们的调查!",
"disabled": "(调查弹出窗口将在后续更新中被禁用,但可在页脚处查看)",
"button": "参与调查",
"dontShowAgain": "不再显示",
"meeting": {
"1": "If you're using Stirling PDF at work, we'd love to speak to you. We're offering technical support sessions in exchange for a 15 minute user discovery session.",
"2": "This is a chance to:",
"3": "Get help with deployment, integrations, or troubleshooting",
"4": "Provide direct feedback on performance, edge cases, and feature gaps",
"5": "Help us refine Stirling PDF for real-world enterprise use",
"6": "If you're interested, you can book time with our team directly. (English speaking only)",
"7": "Looking forward to digging into your use cases and making Stirling PDF even better!",
"notInterested": "Not a business and/or interested in a meeting?",
"button": "Book meeting"
}
},
"removeImage": {
"title": "删除图像",
"header": "删除图像",
"removeImage": "删除图像",
"submit": "删除图像"
},
"splitByChapters": {
"title": "按章节拆分 PDF",
"header": "按章节拆分 PDF",
"bookmarkLevel": "书签级别",
"includeMetadata": "包含元数据",
"allowDuplicates": "允许重复",
"desc": {
"1": "此工具根据章节结构将PDF文件拆分为多个PDF。",
"2": "书签级别选择用于拆分的书签级别0表示顶级1表示二级等。",
"3": "包含元数据如果选中原始PDF的元数据将包含在每个拆分的PDF中。",
"4": "允许重复如果选中允许同一页面上的多个书签创建单独的PDF。"
},
"submit": "拆分 PDF"
},
"fileChooser": {
"click": "单击",
"or": "或",
"dragAndDrop": "拖放文件",
"dragAndDropPDF": "拖放PDF文件",
"dragAndDropImage": "拖放图片文件",
"hoveredDragAndDrop": "拖放文件到此处",
"extractPDF": "处理中..."
},
"releases": {
"footer": "版本",
"title": "版本说明",
"header": "版本说明",
"current": {
"version": "当前版本"
},
"note": "版本说明仅提供英文版本"
},
"cookieBanner": {
"popUp": {
"title": "How we use Cookies",
"description": {
"1": "We use cookies and other technologies to make Stirling PDF work better for you—helping us improve our tools and keep building features you'll love.",
"2": "If youd rather not, clicking 'No Thanks' will only enable the essential cookies needed to keep things running smoothly."
},
"acceptAllBtn": "Okay",
"acceptNecessaryBtn": "No Thanks",
"showPreferencesBtn": "Manage preferences"
},
"preferencesModal": {
"title": "Consent Preferences Center",
"acceptAllBtn": "Accept all",
"acceptNecessaryBtn": "Reject all",
"savePreferencesBtn": "Save preferences",
"closeIconLabel": "Close modal",
"serviceCounterLabel": "Service|Services",
"subtitle": "Cookie Usage",
"description": {
"1": "Stirling PDF uses cookies and similar technologies to enhance your experience and understand how our tools are used. This helps us improve performance, develop the features you care about, and provide ongoing support to our users.",
"2": "Stirling PDF cannot—and will never—track or access the content of the documents you use.",
"3": "Your privacy and trust are at the core of what we do."
},
"necessary": {
"title": {
"1": "Strictly Necessary Cookies",
"2": "Always Enabled"
},
"description": "These cookies are essential for the website to function properly. They enable core features like setting your privacy preferences, logging in, and filling out forms—which is why they cant be turned off."
},
"analytics": {
"title": "Analytics",
"description": "These cookies help us understand how our tools are being used, so we can focus on building the features our community values most. Rest assured—Stirling PDF cannot and will never track the content of the documents you work with."
}
}
}
}