"insertModeHelpDocx":"Choose how the translated text is inserted.",
"insertModeHelpDocx":"Choose how to insert the translated text.",
"separatorPlaceholderStructured":"e.g., ---",
"separatorHelpDocx":"In append mode, the translation will be in a new paragraph. This adds extra content between them. <code>\\n</code> can be used for new lines within the separator.",
"separatorHelpDocx":"In append mode, translation starts in a new paragraph. This adds content between original and translated paragraphs. <code>\\n</code> for internal newlines.",
"insertModeHelpEpub":"Choose how the translated text is inserted.",
"separatorHelpEpub":"In append mode, the translation will be a new block. This adds extra content between them. <code>\\n</code> can be used for new lines within the separator.",
"insertModeHelpEpub":"Choose how to insert the translated text.",
"separatorHelpEpub":"In append mode, translation starts in a new block. This adds content between original and translated blocks. <code>\\n</code> for internal newlines.",
"insertModeHelpHtml":"Choose how the translated text is inserted.",
"separatorHelpHtml":"In append mode, the translation will be a new block. This adds extra content between them. <code>\\n</code> can be used for new lines within the separator.",
"insertModeHelpHtml":"Choose how to insert the translated text.",
"separatorHelpHtml":"In append mode, translation starts in a new block. This adds content between original and translated blocks. <code>\\n</code> for internal newlines.",
"assSettingsTitleText":"ASS Translation Options",
"insertModeHelpAss":"Choose how the translated text is inserted.",
"separatorHelpAss":"Characters used to separate original and translated text in append/prepend modes. <code>\\N</code> is the newline character for ASS format.",
"insertModeHelpAss":"Choose how to insert the translated text.",
"separatorPlaceholderAss":"e.g., \\N (newline)",
"separatorHelpAss":"Characters to separate original and translated text in append/prepend mode. <code>\\N</code> is the newline for ASS format.",
"parsingEngineHelp":"This can be skipped if the uploaded file is already in .md format.",
"parsingEngineHelp":"Not required if the uploaded file is already in .md format.",
"getMineruTokenTitle":"Get Mineru Token",
"mineruTokenPlaceholder":"Required when using Mineru engine",
"modelVersionLabel":"Mineru Model Version",
@@ -273,39 +275,42 @@
"baseUrlLabel":"API Address (Base URL)",
"baseUrlPlaceholder":"OpenAI-compatible address",
"getApiKeyTitle":"Get API Key",
"apiHrefInfo302ai":"👈 Register via this link for a $1 free credit",
"apiKeyPlaceholder":"Please enter your API Key",
"modelIdLabel":"Model ID",
"modelIdPlaceholder":"e.g., gpt-4o, glm-4",
"systemProxyLabel":"Enable System Proxy",
"forceJsonLabel":"Force JSON Output",
"forceJsonTooltip":"Force the model to output in JSON format. May reduce translation quality. Recommended to disable for models with strong instruction following.",
"thinkingModeTooltip":"Sets whether the hybrid inference model should 'think'. Currently supported by Zhipu glm4.5 series, Volcengine seed1.6 series, SiliconFlow, Google Gemini series, 302AI (partial). Disabling is recommended.",
"thinkingModeTooltip":"Sets whether mixed-reasoning models should 'think'. Supported by Zhipu glm4.5 series, Volcengine seed1.6 series, SiliconFlow, Google Gemini series, 302AI (partial). Disabling is recommended.",
"thinkingModeEnable":"Enable",
"thinkingModeDisable":"Disable (Recommended)",
"thinkingModeDefault":"Default",
"customPromptLabel":"Custom Prompt",
"customPromptPlaceholder":"Optional, e.g., 'Keep personal names in their original language'",
"customPromptPlaceholder":"Optional, e.g., \"Do not translate proper names.\"",
"chunkSizeLabel":"Chunk Size",
"resetBtn":"Reset",
"concurrentLabel":"Concurrency",
"retryLabel":"Retries",
"glossaryGenTitle":"Glossary",
"glossaryLabel":"Glossary (Optional)",
"glossaryHelp":"Select one or more CSV files. Files must have 'src' and 'dst' columns for source and destination terms.",
"glossaryHelp":"Select one or more CSV files. Files must contain 'src' and 'dst' headers for source and destination terms.",
"githubInfo":"GitHub Home (stars❤ welcome): <br/>\n <a href=\"https://github.com/xunbu/docutranslate\" target=\"_blank\" rel=\"noopener noreferrer\">https://github.com/xunbu/docutranslate</a>",
"qqGroupInfo":"QQ Group: 1047781902",
"taskListTitle":"Task List",
"newTaskBtn":"New Task",
@@ -322,65 +327,64 @@
"taskCardDownloadBtn":"Download",
"taskCardAttachmentBtn":"Attachments",
"taskCardStartBtn":"Start Translation",
"downloadMdEmbedded":"Markdown (Embedded Imgs)",
"downloadMdEmbedded":"Markdown (Embedded Img)",
"downloadMdZip":"Markdown Zip",
"downloadAss":"ASS",
"previewTitle":"Preview",
"previewBilingualBtn":"Bilingual",
"previewTranslatedOnlyBtn":"Translation Only",
"previewTranslatedOnlyBtn":"Translated Only",
"syncScrollTooltip":"Sync Scrolling",
"previewOriginal":"Original",
"previewTranslated":"Translation",
"closeBtn":"Close",
"downloadBtn":"Download",
"tutorialModalTitle":"User Guide",
"tutorialModalBody":"<p><i class=\"bi bi-camera-video me-2\"></i>Video tutorials are available on Bilibili by searching for <a href=\"https://search.bilibili.com/all?keyword=docutranslate\" target=\"_blank\">docutranslate</a>.</p>\n<p>Welcome to DocuTranslate! Follow these steps to translate your documents:</p>\n<ol>\n <li>\n <strong><i class=\"bi bi-diagram-3 me-2\"></i>Step 1: Select Workflow</strong>\n <p class=\"mt-2\">At the top of the left settings panel, first choose the process that best suits your file type.\n <div class=\"alert alert-info mt-2\" role=\"alert\">\n <i class=\"bi bi-lightbulb-fill me-2\"></i>Tip: \"Auto-select workflow\" is enabled by default. Just upload your file, and the system will automatically match the appropriate workflow for you.\n </div>\n </p>\n <ul>\n <li><b>To Markdown then Translate</b>: Ideal for PDF, markdown, images, etc. This is the most versatile and powerful mode.</li>\n <li><b>Plain Text Translation</b>: For translating <code>.txt</code> files.</li>\n <li><b>EPUB Translation</b>: For translating <code>.epub</code> e-book files.</li>\n <li><b>DOCX Translation</b>: For translating <code>.docx</code> Word documents.</li>\n <li><b>XLSX Translation</b>: For translating <code>.xlsx</code> or <code>.csv</code> spreadsheet files.</li>\n <li><b>SRT Subtitle Translation</b>: For translating <code>.srt</code> subtitle files.</li>\n <li><b>ASS Subtitle Translation</b>: For translating <code>.ass</code> advanced subtitle files.</li>\n <li><b>JSON Translation</b>: For translating specific fields within <code>.json</code> files.</li>\n <li><b>HTML Translation</b>: For translating <code>.html</code> web files.</li>\n </ul>\n </li>\n <li>\n <strong><i class=\"bi bi-gear-fill me-2\"></i>Step 2: Configure Parameters</strong>\n <p class=\"mt-2\">After selecting a workflow, related options will appear below. Please configure them sequentially (all settings are saved automatically in your browser):</p>\n <p class=\"mb-2\"><strong>A. Workflow-Specific Options</strong> (Appear based on your choice in Step 1):</p>\n <ul class=\"ms-4\">\n <li><u>If you chose \"To Markdown then Translate\"</u>, configure <strong>Parsing Configuration</strong>:\n <ul>\n <li><strong>Parsing Engine</strong>: Select an engine to convert your file (like a PDF) into a translation-friendly Markdown format. If your file is already Markdown, no selection is needed.</li>\n <li><strong>Mineru Token</strong>: If you select the <code>minerU</code> engine, you must enter your token here.</li>\n </ul>\n </li>\n <li><u>If you chose \"Plain Text/DOCX/XLSX/SRT/ASS/EPUB/HTML\"</u>, configure its <strong>Translation Options</strong>:\n <ul>\n <li><strong>Insert Mode</strong>: Defines how the translation is placed. You can \"Replace\" the original, \"Append\" after it, or \"Prepend\" before it.</li>\n <li><strong>Separator</strong>: When using \"Append\" or \"Prepend\", this is used to insert a separator between the original and translated text (e.g., <code>\\N</code> for ASS, <code><br /></code> for EPUB).</li>\n </ul>\n </li>\n <li><u>If you chose \"JSON Translation\"</u>, configure <strong>JSON Paths</strong>:\n <ul>\n <li><strong>JSON Paths to Translate</strong>: Enter one <a href=\"https://goessner.net/articles/JsonPath/\" target=\"_blank\">JSONPath</a> expression per line to translate strings in all matching objects. E.g., <code>$.*</code> (translate all strings), <code>$..description</code> (translate all values for the key <code>description</code>).</li>\n </ul>\n </li>\n </ul>\n <p class=\"mb-2 mt-3\"><strong>B. General Options</strong> (Apply to all workflows):</p>\n <ul class=\"ms-4\">\n <li><strong>Translation Model</strong>:\n <ul>\n <li><strong>Select Platform/API URL/API Key/Model ID</strong>: Configure the AI translation service you want to use. Stronger models lead to fewer errors and omissions.</li>\n <li><strong>Skip Translation</strong>: If checked, only document parsing and format conversion will be performed, without calling the AI for translation.</li>\n </ul>\n </li>\n <li><strong>Translation Configuration</strong>:\n <ul>\n <li><strong>Target Language</strong>: Specify the language to translate into.</li>\n <li><strong>Custom Prompt</strong>: Optional, add extra instructions like \"Keep personal names in their original language.\"</li>\n<li><strong>ThinkingModLine truncated
"tutorialUnderstandBtn":"I Understand",
"tutorialModalTitle":"Tutorial",
"tutorialModalBody":"<p><i class=\"bi bi-camera-video me-2\"></i>Video tutorials are available on Bilibili by searching for <a href=\"https://search.bilibili.com/all?keyword=docutranslate\" target=\"_blank\">docutranslate</a>.</p><p>Welcome to DocuTranslate! Follow these steps to translate your documents:</p><ol><li><strong><i class=\"bi bi-diagram-3 me-2\"></i>Step 1: Select Workflow</strong><p class=\"mt-2\">At the top of the left settings panel, first choose the processing flow that best suits your file type.<div class=\"alert alert-info mt-2\" role=\"alert\"><i class=\"bi bi-lightbulb-fill me-2\"></i>Tip: 'Auto-select workflow' is enabled by default. Just upload your file, and the system will automatically match the appropriate workflow for you.</div></p><ul><li><b>To Markdown & Translate</b>: Ideal for translating PDFs, markdown, images, etc. This is the most versatile and powerful mode.</li><li><b>Plain Text Translation</b>: For translating <code>.txt</code> files.</li><li><b>EPUB Translation</b>: For translating <code>.epub</code> e-books.</li><li><b>DOCX Translation</b>: For translating <code>.docx</code> Word documents.</li><li><b>XLSX Translation</b>: For translating <code>.xlsx</code> or <code>.csv</code> spreadsheets.</li><li><b>SRT Subtitle Translation</b>: For translating <code>.srt</code> subtitle files.</li><li><b>ASS Subtitle Translation</b>: For translating <code>.ass</code> advanced subtitle files.</li><li><b>JSON Translation</b>: For translating specific fields within <code>.json</code> files.</li><li><b>HTML Translation</b>: For translating <code>.html</code> web files.</li></ul></li><li><strong><i class=\"bi bi-gear-fill me-2\"></i>Step 2: Configure Parameters</strong><p class=\"mt-2\">After selecting a workflow, relevant configuration options will appear below. Please complete the settings in order (all configurations are automatically saved in your browser):</p><p class=\"mb-2\"><strong>A. Workflow-Specific Options</strong> (Appear based on your Step 1 choice):</p><ul class=\"ms-4\"><li><u>If 'To Markdown & Translate' is selected</u>, configure <strong>Parsing Configuration</strong>:<ul><li><strong>Parsing Engine</strong>: Choose an engine to convert your file (like a PDF) into a translation-friendly Markdown format. No selection is needed if your file is already Markdown.</li><li><strong>Mineru Token</strong>: If you choose the <code>minerU</code> engine, you must enter your token here.</li></ul></li><li><u>If 'Plain Text/DOCX/XLSX/SRT/ASS/EPUB/HTML' is selected</u>, configure its <strong>Translation Options</strong>:<ul><li><strong>Insert Mode</strong>: Defines how the translation result is placed. You can 'Replace' the original, 'Append' after, or 'Prepend' before it.</li><li><strong>Separator</strong>: When using 'Append' or 'Prepend', this is used to insert a separator between the original and translated text (e.g., <code>\\N</code> for ASS, <code><br /></code> for EPUB).</li></ul></li><li><u>If 'JSON Translation' is selected</u>, configure <strong>JSON Paths</strong>:<ul><li><strong>JSON Paths to Translate</strong>: Enter one <a href=\"https://goessner.net/articles/JsonPath/\" target=\"_blank\">JSONPath</a> expression per line to translate all string values matching the path. E.g., <code>$.*</code> (all strings), <code>$..description</code> (all values for the key <code>description</code>).</li></ul></li></ul><p class=\"mb-2 mt-3\"><strong>B. General Options</strong> (Applicable to all workflows):</p><ul class=\"ms-4\"><li><strong>Translation Model</strong>:<ul><li><strong>Select Platform/API Address/API Key/Model ID</strong>: Configure the AI translation service you want to use. Models with better instruction-following abilities will have a lower chance of errors or missed translations.</li><li><strong>Skip Translation</strong>: If checked, only document parsing and format conversion will be performed, without calling the AI for translation.</li></ul></li><li><strong>Translation Configuration</strong>:<ul><li><strong>Target Language</strong>: Specify the language to translate to.</li><li><strong>Custom Prompt</strong>: Optional, add extra instructions like \"Do not translate proper names.\"</li><li><strong>Thinking Mode</strong>: A setting for certain mixed-reasoning models; 'Disable (Recommended)' is suggested.</li><li><strong>Chunk Size/Concurrency, etc.</strong>: Advanced parameters to adjust performance and API request behavior. Defaults are usually fine.</li></ul></li><li><strong>Glossary</strong>:<ul><li><strong>Upload Glossary (Optional)</strong>: Upload a CSV file (with 'src' and 'dst' columns) to ensure consistency and accuracy for specific terms.</li><li><strong>Auto-generate Glossary</strong>: If enabled, the program will first extract terms from the source text to create a glossary before proceeding with the translation.</li></ul></li></ul></li><li><strong><i class=\"bi bi-file-earmark-arrow-up-fill me-2\"></i>Step 3: Upload File</strong><p class=\"mt-2Line truncated
"tutorialUnderstandBtn":"I understand",
"contributorsModalTitle":"Thanks for Contributing",
"contributorsPara1":"DocuTranslate is an open-source project! The needs and usage of the community are the driving force behind its progress.",
"contributorsPara1":"DocuTranslate is an open-source project! The community's needs and usage are the driving force behind its progress.",
"contributorsPara2":"A heartfelt thank you to everyone who has funded the project, submitted code, provided valuable suggestions, and starred the project!",
"contributorsWelcome":"You are welcome to contribute in the following ways:",
"contributorsGithub":"GitHub Page",
"contributorsWelcome":"You're welcome to contribute in the following ways:",
"contributorsGithub":"GitHub Home",
"contributorsPR":"Submit a Pull Request",
"contributorsIssue":"Report an Issue",
"contributorsQQ":"Or contact the author via QQ group: <span>1047781902</span>",
"contributorsQQ":"Or contact the author via QQ Group: <span>1047781902</span>",
"glossaryModalTitle":"Current Glossary",
"glossaryTableSource":"Source (src)",
"glossaryTableDestination":"Destination (dst)",
"init_i18n_failed_alert":"Failed to load interface translations. Please check your network connection or contact an administrator.",
"init_failed_alert":"Initialization failed, could not connect to the backend service. Please ensure the service is running and refresh the page.",
"apiHrefInfo302ai":"👈 Register through this link to enjoy a $1 free credit",
"engineOptionIdentity":"No conversion (file is already .md)",
"engineOptionIdentity":"Already in Markdown format",
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.