From 722ab6e24d546d8c3f287bc943a104c4867918e6 Mon Sep 17 00:00:00 2001 From: pppppop65 Date: Sat, 25 Oct 2025 18:01:05 +0800 Subject: [PATCH 1/2] docs: Implement HTTP API design documentation and update usage instructions for Ollama backend with Docker. Added new files for API design and updated existing documentation to reflect recent changes in usage and configuration. --- .doctemp/chunks/APIS.chunks.json | 6 +- ...tation-of-Translation-Services.chunks.json | 2 +- .../chunks/INSTALLATION_docker.chunks.json | 2 +- .doctemp/chunks/INSTALLATION_uv.chunks.json | 4 +- .../chunks/INSTALLATION_winexe.chunks.json | 2 +- .doctemp/chunks/Language-Codes.chunks.json | 2 +- .doctemp/chunks/README.chunks.json | 2 +- .doctemp/chunks/USAGE_commandline.chunks.json | 4 +- .doctemp/chunks/USAGE_webui.chunks.json | 30 +- .doctemp/chunks/advanced.chunks.json | 370 ++++++++--------- .doctemp/chunks/getting-started.chunks.json | 4 +- .doctemp/splitResult/APIS.debug.md | 6 +- ...mentation-of-Translation-Services.debug.md | 2 +- .../splitResult/INSTALLATION_docker.debug.md | 2 +- .doctemp/splitResult/INSTALLATION_uv.debug.md | 4 +- .../splitResult/INSTALLATION_winexe.debug.md | 2 +- .doctemp/splitResult/Language-Codes.debug.md | 2 +- .doctemp/splitResult/README.debug.md | 2 +- .../splitResult/USAGE_commandline.debug.md | 4 +- .doctemp/splitResult/USAGE_webui.debug.md | 32 +- .doctemp/splitResult/advanced.debug.md | 349 ++++++++-------- .doctemp/splitResult/getting-started.debug.md | 4 +- .doctemp/terms/APIS.terms.json | 30 +- .doctemp/terms/Aliyun.terms.json | 28 +- .doctemp/terms/CODE_OF_CONDUCT.terms.json | 30 +- .doctemp/terms/Contribution-Guide.terms.json | 30 +- ...ntation-of-Translation-Services.terms.json | 30 +- .doctemp/terms/FAQ.terms.json | 30 +- .doctemp/terms/INSTALLATION_docker.terms.json | 30 +- .doctemp/terms/INSTALLATION_uv.terms.json | 30 +- .doctemp/terms/INSTALLATION_winexe.terms.json | 30 +- .doctemp/terms/Language-Codes.terms.json | 30 +- .doctemp/terms/README.terms.json | 30 +- .doctemp/terms/SiliconFlow.terms.json | 30 +- .../Translate-Contribution-Guide.terms.json | 30 +- .doctemp/terms/USAGE_commandline.terms.json | 30 +- .doctemp/terms/USAGE_webui.terms.json | 30 +- .doctemp/terms/advanced.terms.json | 30 +- .doctemp/terms/getting-started.terms.json | 30 +- .doctemp/terms/introduction.terms.json | 30 +- .doctemp/terms/supported_languages.terms.json | 30 +- .doctemp/translated/APIS.translated.json | 6 +- ...on-of-Translation-Services.translated.json | 2 +- .../INSTALLATION_docker.translated.json | 2 +- .../INSTALLATION_uv.translated.json | 4 +- .../INSTALLATION_winexe.translated.json | 2 +- .../translated/Language-Codes.translated.json | 2 +- .doctemp/translated/README.translated.json | 2 +- .../USAGE_commandline.translated.json | 4 +- .../translated/USAGE_webui.translated.json | 70 ++-- .doctemp/translated/advanced.translated.json | 372 +++++++++--------- .../getting-started.translated.json | 4 +- docs/de/advanced/advanced.md | 9 +- docs/de/getting-started/USAGE_webui.md | 10 +- docs/en/advanced/advanced.md | 5 - docs/es/advanced/advanced.md | 11 +- docs/es/getting-started/USAGE_webui.md | 12 +- docs/fr/advanced/advanced.md | 13 +- docs/fr/getting-started/USAGE_webui.md | 8 +- docs/it/advanced/advanced.md | 15 +- docs/it/getting-started/USAGE_webui.md | 8 +- docs/ja/advanced/advanced.md | 7 +- docs/ja/getting-started/USAGE_webui.md | 12 +- docs/ko/advanced/advanced.md | 7 +- docs/ko/getting-started/USAGE_webui.md | 6 + docs/pt/advanced/advanced.md | 13 +- docs/pt/getting-started/USAGE_webui.md | 12 +- docs/ru/advanced/advanced.md | 9 +- docs/ru/getting-started/USAGE_webui.md | 10 +- docs/zh/advanced/advanced.md | 11 +- docs/zh/getting-started/USAGE_webui.md | 8 +- docs/zh_TW/advanced/advanced.md | 9 +- docs/zh_TW/getting-started/USAGE_webui.md | 8 +- "http api \350\256\276\350\256\241.md" | 72 ++++ http_api_design.md | 253 ++++++++++++ 75 files changed, 1493 insertions(+), 910 deletions(-) create mode 100644 "http api \350\256\276\350\256\241.md" create mode 100644 http_api_design.md diff --git a/.doctemp/chunks/APIS.chunks.json b/.doctemp/chunks/APIS.chunks.json index b08d86ef7..6c2b64791 100644 --- a/.doctemp/chunks/APIS.chunks.json +++ b/.doctemp/chunks/APIS.chunks.json @@ -32,7 +32,7 @@ "start_line_no": 8 }, { - "id": "h_rule_4414eb29", + "id": "h_rule_d89cf333", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", @@ -112,7 +112,7 @@ "start_line_no": 39 }, { - "id": "h_rule_169a436a", + "id": "h_rule_712718ea", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", @@ -152,7 +152,7 @@ "start_line_no": 95 }, { - "id": "h_rule_21774012", + "id": "h_rule_9dcfa49f", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", diff --git a/.doctemp/chunks/Documentation-of-Translation-Services.chunks.json b/.doctemp/chunks/Documentation-of-Translation-Services.chunks.json index a68782ea5..2c750756f 100644 --- a/.doctemp/chunks/Documentation-of-Translation-Services.chunks.json +++ b/.doctemp/chunks/Documentation-of-Translation-Services.chunks.json @@ -12,7 +12,7 @@ "start_line_no": 1 }, { - "id": "h_rule_0ff56125", + "id": "h_rule_8ee75b42", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", diff --git a/.doctemp/chunks/INSTALLATION_docker.chunks.json b/.doctemp/chunks/INSTALLATION_docker.chunks.json index 0aab17937..c5c6d8416 100644 --- a/.doctemp/chunks/INSTALLATION_docker.chunks.json +++ b/.doctemp/chunks/INSTALLATION_docker.chunks.json @@ -12,7 +12,7 @@ "start_line_no": 1 }, { - "id": "h_rule_a4336eb1", + "id": "h_rule_d44cb6ef", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", diff --git a/.doctemp/chunks/INSTALLATION_uv.chunks.json b/.doctemp/chunks/INSTALLATION_uv.chunks.json index 557b5f83e..a5a33f867 100644 --- a/.doctemp/chunks/INSTALLATION_uv.chunks.json +++ b/.doctemp/chunks/INSTALLATION_uv.chunks.json @@ -12,7 +12,7 @@ "start_line_no": 1 }, { - "id": "h_rule_31c838fb", + "id": "h_rule_db71edfa", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", @@ -52,7 +52,7 @@ "start_line_no": 9 }, { - "id": "h_rule_051b9a12", + "id": "h_rule_a20d0d6e", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", diff --git a/.doctemp/chunks/INSTALLATION_winexe.chunks.json b/.doctemp/chunks/INSTALLATION_winexe.chunks.json index b9c9e64c0..66651779c 100644 --- a/.doctemp/chunks/INSTALLATION_winexe.chunks.json +++ b/.doctemp/chunks/INSTALLATION_winexe.chunks.json @@ -12,7 +12,7 @@ "start_line_no": 1 }, { - "id": "h_rule_766a091b", + "id": "h_rule_192aec21", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", diff --git a/.doctemp/chunks/Language-Codes.chunks.json b/.doctemp/chunks/Language-Codes.chunks.json index de83db813..a4b5d4f22 100644 --- a/.doctemp/chunks/Language-Codes.chunks.json +++ b/.doctemp/chunks/Language-Codes.chunks.json @@ -12,7 +12,7 @@ "start_line_no": 1 }, { - "id": "h_rule_5e62bbcd", + "id": "h_rule_b750efc6", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", diff --git a/.doctemp/chunks/README.chunks.json b/.doctemp/chunks/README.chunks.json index 997b7b474..9a41adc6d 100644 --- a/.doctemp/chunks/README.chunks.json +++ b/.doctemp/chunks/README.chunks.json @@ -422,7 +422,7 @@ "start_line_no": 90 }, { - "id": "h_rule_64259f0c", + "id": "h_rule_0c0b4bc7", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", diff --git a/.doctemp/chunks/USAGE_commandline.chunks.json b/.doctemp/chunks/USAGE_commandline.chunks.json index 20d857670..f69912ed9 100644 --- a/.doctemp/chunks/USAGE_commandline.chunks.json +++ b/.doctemp/chunks/USAGE_commandline.chunks.json @@ -12,7 +12,7 @@ "start_line_no": 1 }, { - "id": "h_rule_16d7ccfb", + "id": "h_rule_4a861785", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", @@ -92,7 +92,7 @@ "start_line_no": 25 }, { - "id": "h_rule_3a4d9b1f", + "id": "h_rule_487433fb", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", diff --git a/.doctemp/chunks/USAGE_webui.chunks.json b/.doctemp/chunks/USAGE_webui.chunks.json index 789ea1be0..23e82fba9 100644 --- a/.doctemp/chunks/USAGE_webui.chunks.json +++ b/.doctemp/chunks/USAGE_webui.chunks.json @@ -12,7 +12,7 @@ "start_line_no": 1 }, { - "id": "h_rule_cdc4a3db", + "id": "h_rule_cd8270c0", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", @@ -52,8 +52,8 @@ "start_line_no": 9 }, { - "id": "chunk_2A12C8AD", - "raw_content": "1. Python installed (3.10 <= version <= 3.12)\n\n2. Install our package:\n\n3. Start using in browser:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. If your browswer has not been started automatically, goto\n\n ```bash\n http://localhost:7860/\n ```\n\n Drop the PDF file into the window and click `Translate`.\n", + "id": "chunk_3B3548CA", + "raw_content": "1. Python installed (3.10 <= version <= 3.12)\n\n2. Install our package:\n\n3. Start using in browser:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. If your browswer has not been started automatically, goto\n\n ```bash\n http://localhost:7860/\n ```\n\n Drop the PDF file into the window and click `Translate`.\n\n5. If you deploy PDFMathTranslate with docker, and you are using ollama as PDFMathTranslate's backend LLM, you should fill \"Ollama host\" with\n\n ```bash\n http://host.docker.internal:11434\n ```\n", "metadata": { "chunk_type": "list", "level": null, @@ -69,7 +69,7 @@ "level": null, "language": null }, - "start_line_no": 29 + "start_line_no": 35 }, { "id": "chunk_B79CAF04", @@ -79,7 +79,7 @@ "level": null, "language": null }, - "start_line_no": 30 + "start_line_no": 36 }, { "id": "chunk_2FDC0409", @@ -89,7 +89,7 @@ "level": 3, "language": null }, - "start_line_no": 32 + "start_line_no": 38 }, { "id": "chunk_7865A8EB", @@ -99,7 +99,7 @@ "level": null, "language": null }, - "start_line_no": 34 + "start_line_no": 40 }, { "id": "chunk_104D91B6", @@ -109,7 +109,7 @@ "level": null, "language": null }, - "start_line_no": 36 + "start_line_no": 42 }, { "id": "chunk_EEBEC547", @@ -119,7 +119,7 @@ "level": 2, "language": null }, - "start_line_no": 39 + "start_line_no": 45 }, { "id": "chunk_433E69C5", @@ -129,7 +129,7 @@ "level": null, "language": null }, - "start_line_no": 41 + "start_line_no": 47 }, { "id": "chunk_64A11402", @@ -139,7 +139,7 @@ "level": null, "language": null }, - "start_line_no": 42 + "start_line_no": 48 }, { "id": "chunk_742C5FE6", @@ -149,17 +149,17 @@ "level": 2, "language": null }, - "start_line_no": 44 + "start_line_no": 50 }, { - "id": "chunk_3D5EA421", - "raw_content": "GUI maintained by [Rongxin](https://github.com/reycn)", + "id": "chunk_7E834869", + "raw_content": "GUI maintained by [Rongxin](https://github.com/reycn)\n", "metadata": { "chunk_type": "paragraph", "level": null, "language": null }, - "start_line_no": 46 + "start_line_no": 52 } ] } \ No newline at end of file diff --git a/.doctemp/chunks/advanced.chunks.json b/.doctemp/chunks/advanced.chunks.json index f7f8b8b76..568849596 100644 --- a/.doctemp/chunks/advanced.chunks.json +++ b/.doctemp/chunks/advanced.chunks.json @@ -12,7 +12,7 @@ "start_line_no": 1 }, { - "id": "h_rule_bb1e2910", + "id": "h_rule_7193a0cb", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", @@ -32,8 +32,8 @@ "start_line_no": 5 }, { - "id": "chunk_7ABB55CB", - "raw_content": "- [Command Line Args](#command-line-args)\n - [Args](#args)\n - [GUI Args](#gui-args)\n- [Rate Limiting Configuration Guide](#rate-limiting-configuration-guide)\n - [RPM (Requests Per Minute) Rate Limiting](#rpm-requests-per-minute-rate-limiting)\n - [Concurrent Connection Limiting](#concurrent-connection-limiting)\n - [Best Practices](#best-practices)\n- [Partial translation](#partial-translation)\n- [Specify source and target languages](#specify-source-and-target-languages)\n- [Translate wih exceptions](#translate-wih-exceptions)\n- [Custom prompt](#custom-prompt)\n- [Custom configuration](#custom-configuration)\n- [Skip clean](#skip-clean)\n- [Translation cache](#translation-cache)\n- [Deployment as a public services](#deployment-as-a-public-services)\n- [Authentication and welcome page](#authentication-and-welcome-page)\n- [Glossary Support](#glossary-support)\n", + "id": "chunk_F0A2B12C", + "raw_content": "- [Command Line Args](#command-line-args)\n- [Rate Limiting Configuration Guide](#rate-limiting-configuration-guide)\n- [Partial translation](#partial-translation)\n- [Specify source and target languages](#specify-source-and-target-languages)\n- [Translate wih exceptions](#translate-wih-exceptions)\n- [Custom prompt](#custom-prompt)\n- [Custom configuration](#custom-configuration)\n- [Skip clean](#skip-clean)\n- [Translation cache](#translation-cache)\n- [Deployment as a public services](#deployment-as-a-public-services)\n- [Authentication and welcome page](#authentication-and-welcome-page)\n- [Glossary Support](#glossary-support)\n", "metadata": { "chunk_type": "list", "level": null, @@ -42,14 +42,14 @@ "start_line_no": 7 }, { - "id": "h_rule_ac856836", + "id": "h_rule_0fe0f941", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 25 + "start_line_no": 20 }, { "id": "chunk_3BF1A9B5", @@ -59,7 +59,7 @@ "level": 4, "language": null }, - "start_line_no": 27 + "start_line_no": 22 }, { "id": "chunk_A2860DDF", @@ -69,7 +69,7 @@ "level": null, "language": null }, - "start_line_no": 29 + "start_line_no": 24 }, { "id": "chunk_B6CD1E39", @@ -79,7 +79,7 @@ "level": null, "language": null }, - "start_line_no": 31 + "start_line_no": 26 }, { "id": "chunk_B3EB591F", @@ -89,7 +89,7 @@ "level": null, "language": null }, - "start_line_no": 33 + "start_line_no": 28 }, { "id": "chunk_A2A42E6B", @@ -99,7 +99,7 @@ "level": 5, "language": null }, - "start_line_no": 35 + "start_line_no": 30 }, { "id": "chunk_7A00EE21", @@ -109,7 +109,7 @@ "level": null, "language": null }, - "start_line_no": 37 + "start_line_no": 32 }, { "id": "chunk_848B1EE1", @@ -119,7 +119,7 @@ "level": null, "language": null }, - "start_line_no": 40 + "start_line_no": 35 }, { "id": "chunk_8B4991D7", @@ -129,7 +129,7 @@ "level": null, "language": null }, - "start_line_no": 41 + "start_line_no": 36 }, { "id": "chunk_D7ED91EE", @@ -139,7 +139,7 @@ "level": null, "language": null }, - "start_line_no": 42 + "start_line_no": 37 }, { "id": "chunk_00AF4E48", @@ -149,7 +149,7 @@ "level": null, "language": null }, - "start_line_no": 43 + "start_line_no": 38 }, { "id": "chunk_B0ABBFCE", @@ -159,7 +159,7 @@ "level": null, "language": null }, - "start_line_no": 44 + "start_line_no": 39 }, { "id": "chunk_634BA748", @@ -169,7 +169,7 @@ "level": null, "language": null }, - "start_line_no": 45 + "start_line_no": 40 }, { "id": "chunk_46037BF6", @@ -179,7 +179,7 @@ "level": null, "language": null }, - "start_line_no": 46 + "start_line_no": 41 }, { "id": "chunk_18BA0512", @@ -189,7 +189,7 @@ "level": null, "language": null }, - "start_line_no": 47 + "start_line_no": 42 }, { "id": "chunk_0DA1F9CB", @@ -199,7 +199,7 @@ "level": null, "language": null }, - "start_line_no": 48 + "start_line_no": 43 }, { "id": "chunk_D380BDDD", @@ -209,7 +209,7 @@ "level": null, "language": null }, - "start_line_no": 49 + "start_line_no": 44 }, { "id": "chunk_F5703109", @@ -219,7 +219,7 @@ "level": null, "language": null }, - "start_line_no": 50 + "start_line_no": 45 }, { "id": "chunk_EB44345E", @@ -229,7 +229,7 @@ "level": null, "language": null }, - "start_line_no": 51 + "start_line_no": 46 }, { "id": "chunk_AD6D96FE", @@ -239,7 +239,7 @@ "level": null, "language": null }, - "start_line_no": 52 + "start_line_no": 47 }, { "id": "chunk_DB35B267", @@ -249,7 +249,7 @@ "level": null, "language": null }, - "start_line_no": 53 + "start_line_no": 48 }, { "id": "chunk_CAF754AF", @@ -259,7 +259,7 @@ "level": null, "language": null }, - "start_line_no": 54 + "start_line_no": 49 }, { "id": "chunk_2E1280AA", @@ -269,7 +269,7 @@ "level": null, "language": null }, - "start_line_no": 55 + "start_line_no": 50 }, { "id": "chunk_03902660", @@ -279,7 +279,7 @@ "level": null, "language": null }, - "start_line_no": 56 + "start_line_no": 51 }, { "id": "chunk_D3C262BD", @@ -289,7 +289,7 @@ "level": null, "language": null }, - "start_line_no": 57 + "start_line_no": 52 }, { "id": "chunk_0F22CD53", @@ -299,7 +299,7 @@ "level": null, "language": null }, - "start_line_no": 58 + "start_line_no": 53 }, { "id": "chunk_ED6020AC", @@ -309,7 +309,7 @@ "level": null, "language": null }, - "start_line_no": 59 + "start_line_no": 54 }, { "id": "chunk_FC174A78", @@ -319,7 +319,7 @@ "level": null, "language": null }, - "start_line_no": 60 + "start_line_no": 55 }, { "id": "chunk_ED9DDA51", @@ -329,7 +329,7 @@ "level": null, "language": null }, - "start_line_no": 61 + "start_line_no": 56 }, { "id": "chunk_3A42A3F8", @@ -339,7 +339,7 @@ "level": null, "language": null }, - "start_line_no": 62 + "start_line_no": 57 }, { "id": "chunk_D91FDBD2", @@ -349,7 +349,7 @@ "level": null, "language": null }, - "start_line_no": 63 + "start_line_no": 58 }, { "id": "chunk_BF3C03E7", @@ -359,7 +359,7 @@ "level": null, "language": null }, - "start_line_no": 64 + "start_line_no": 59 }, { "id": "chunk_D70705B4", @@ -369,7 +369,7 @@ "level": null, "language": null }, - "start_line_no": 65 + "start_line_no": 60 }, { "id": "chunk_BC7944E0", @@ -379,7 +379,7 @@ "level": null, "language": null }, - "start_line_no": 66 + "start_line_no": 61 }, { "id": "chunk_73F7BC27", @@ -389,7 +389,7 @@ "level": null, "language": null }, - "start_line_no": 67 + "start_line_no": 62 }, { "id": "chunk_17ED68F1", @@ -399,7 +399,7 @@ "level": null, "language": null }, - "start_line_no": 68 + "start_line_no": 63 }, { "id": "chunk_B4E886EC", @@ -409,7 +409,7 @@ "level": null, "language": null }, - "start_line_no": 69 + "start_line_no": 64 }, { "id": "chunk_857F16B2", @@ -419,7 +419,7 @@ "level": null, "language": null }, - "start_line_no": 70 + "start_line_no": 65 }, { "id": "chunk_A04861D5", @@ -429,7 +429,7 @@ "level": null, "language": null }, - "start_line_no": 71 + "start_line_no": 66 }, { "id": "chunk_9D02F06D", @@ -439,7 +439,7 @@ "level": null, "language": null }, - "start_line_no": 72 + "start_line_no": 67 }, { "id": "chunk_7EC1028A", @@ -449,7 +449,7 @@ "level": null, "language": null }, - "start_line_no": 73 + "start_line_no": 68 }, { "id": "chunk_D6BE0E79", @@ -459,7 +459,7 @@ "level": null, "language": null }, - "start_line_no": 74 + "start_line_no": 69 }, { "id": "chunk_D63C027F", @@ -469,7 +469,7 @@ "level": null, "language": null }, - "start_line_no": 75 + "start_line_no": 70 }, { "id": "chunk_3F10F28E", @@ -479,7 +479,7 @@ "level": null, "language": null }, - "start_line_no": 76 + "start_line_no": 71 }, { "id": "chunk_8BCCD462", @@ -489,7 +489,7 @@ "level": null, "language": null }, - "start_line_no": 77 + "start_line_no": 72 }, { "id": "chunk_75518F89", @@ -499,7 +499,7 @@ "level": null, "language": null }, - "start_line_no": 78 + "start_line_no": 73 }, { "id": "chunk_E4BD664E", @@ -509,7 +509,7 @@ "level": null, "language": null }, - "start_line_no": 79 + "start_line_no": 74 }, { "id": "chunk_6803D13A", @@ -519,7 +519,7 @@ "level": null, "language": null }, - "start_line_no": 80 + "start_line_no": 75 }, { "id": "chunk_1E404081", @@ -529,7 +529,7 @@ "level": null, "language": null }, - "start_line_no": 81 + "start_line_no": 76 }, { "id": "chunk_1B83C5B9", @@ -539,7 +539,7 @@ "level": null, "language": null }, - "start_line_no": 82 + "start_line_no": 77 }, { "id": "chunk_CE6D9EA3", @@ -549,7 +549,7 @@ "level": null, "language": null }, - "start_line_no": 83 + "start_line_no": 78 }, { "id": "chunk_6ADE00C8", @@ -559,7 +559,7 @@ "level": null, "language": null }, - "start_line_no": 84 + "start_line_no": 79 }, { "id": "chunk_2525055D", @@ -569,7 +569,7 @@ "level": null, "language": null }, - "start_line_no": 85 + "start_line_no": 80 }, { "id": "chunk_6ACD14AF", @@ -579,7 +579,7 @@ "level": null, "language": null }, - "start_line_no": 86 + "start_line_no": 81 }, { "id": "chunk_1DE32F1F", @@ -589,7 +589,7 @@ "level": null, "language": null }, - "start_line_no": 87 + "start_line_no": 82 }, { "id": "chunk_140EFE95", @@ -599,7 +599,7 @@ "level": 5, "language": null }, - "start_line_no": 90 + "start_line_no": 85 }, { "id": "chunk_2D086D22", @@ -609,7 +609,7 @@ "level": null, "language": null }, - "start_line_no": 92 + "start_line_no": 87 }, { "id": "chunk_927CDC03", @@ -619,7 +619,7 @@ "level": null, "language": null }, - "start_line_no": 95 + "start_line_no": 90 }, { "id": "chunk_951E61B3", @@ -629,7 +629,7 @@ "level": null, "language": null }, - "start_line_no": 96 + "start_line_no": 91 }, { "id": "chunk_A9F2F2FE", @@ -639,7 +639,7 @@ "level": null, "language": null }, - "start_line_no": 97 + "start_line_no": 92 }, { "id": "chunk_2C863550", @@ -649,7 +649,7 @@ "level": null, "language": null }, - "start_line_no": 98 + "start_line_no": 93 }, { "id": "chunk_0598D53D", @@ -659,7 +659,7 @@ "level": null, "language": null }, - "start_line_no": 99 + "start_line_no": 94 }, { "id": "chunk_99D3B3A8", @@ -669,7 +669,7 @@ "level": null, "language": null }, - "start_line_no": 100 + "start_line_no": 95 }, { "id": "chunk_F1B6ECA2", @@ -679,17 +679,17 @@ "level": null, "language": null }, - "start_line_no": 102 + "start_line_no": 97 }, { - "id": "h_rule_2e907fc9", + "id": "h_rule_a29d8049", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 104 + "start_line_no": 99 }, { "id": "chunk_E0DC0651", @@ -699,7 +699,7 @@ "level": 4, "language": null }, - "start_line_no": 106 + "start_line_no": 101 }, { "id": "chunk_23D405EC", @@ -709,7 +709,7 @@ "level": null, "language": null }, - "start_line_no": 108 + "start_line_no": 103 }, { "id": "chunk_742CD289", @@ -719,7 +719,7 @@ "level": null, "language": null }, - "start_line_no": 110 + "start_line_no": 105 }, { "id": "chunk_F9E5B2E2", @@ -729,7 +729,7 @@ "level": 5, "language": null }, - "start_line_no": 114 + "start_line_no": 109 }, { "id": "chunk_CDE1A5D3", @@ -739,7 +739,7 @@ "level": null, "language": null }, - "start_line_no": 116 + "start_line_no": 111 }, { "id": "chunk_D293CCA3", @@ -749,7 +749,7 @@ "level": null, "language": null }, - "start_line_no": 119 + "start_line_no": 114 }, { "id": "chunk_1C383BEE", @@ -759,7 +759,7 @@ "level": null, "language": null }, - "start_line_no": 122 + "start_line_no": 117 }, { "id": "chunk_AB49073F", @@ -769,7 +769,7 @@ "level": null, "language": null }, - "start_line_no": 125 + "start_line_no": 120 }, { "id": "chunk_131B05E6", @@ -779,7 +779,7 @@ "level": null, "language": null }, - "start_line_no": 127 + "start_line_no": 122 }, { "id": "chunk_D4EF62BC", @@ -789,7 +789,7 @@ "level": null, "language": "bash" }, - "start_line_no": 130 + "start_line_no": 125 }, { "id": "chunk_C7673CDB", @@ -799,7 +799,7 @@ "level": 5, "language": null }, - "start_line_no": 134 + "start_line_no": 129 }, { "id": "chunk_62AE5A6C", @@ -809,7 +809,7 @@ "level": null, "language": null }, - "start_line_no": 136 + "start_line_no": 131 }, { "id": "chunk_B095EF50", @@ -819,7 +819,7 @@ "level": null, "language": null }, - "start_line_no": 139 + "start_line_no": 134 }, { "id": "chunk_1616A330", @@ -829,7 +829,7 @@ "level": null, "language": null }, - "start_line_no": 142 + "start_line_no": 137 }, { "id": "chunk_1D19FB94", @@ -839,7 +839,7 @@ "level": null, "language": null }, - "start_line_no": 144 + "start_line_no": 139 }, { "id": "chunk_DB872698", @@ -849,7 +849,7 @@ "level": null, "language": "bash" }, - "start_line_no": 147 + "start_line_no": 142 }, { "id": "chunk_4C0D79DD", @@ -859,7 +859,7 @@ "level": 5, "language": null }, - "start_line_no": 151 + "start_line_no": 146 }, { "id": "chunk_60A6D664", @@ -869,7 +869,7 @@ "level": null, "language": null }, - "start_line_no": 153 + "start_line_no": 148 }, { "id": "chunk_F1B6ECA2", @@ -879,17 +879,17 @@ "level": null, "language": null }, - "start_line_no": 160 + "start_line_no": 155 }, { - "id": "h_rule_44bdc99b", + "id": "h_rule_722c0d79", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 162 + "start_line_no": 157 }, { "id": "chunk_ADC018D0", @@ -899,7 +899,7 @@ "level": 4, "language": null }, - "start_line_no": 164 + "start_line_no": 159 }, { "id": "chunk_A7D2451C", @@ -909,7 +909,7 @@ "level": null, "language": null }, - "start_line_no": 166 + "start_line_no": 161 }, { "id": "chunk_C04AFE09", @@ -919,7 +919,7 @@ "level": null, "language": null }, - "start_line_no": 168 + "start_line_no": 163 }, { "id": "chunk_037196E3", @@ -929,7 +929,7 @@ "level": null, "language": "bash" }, - "start_line_no": 170 + "start_line_no": 165 }, { "id": "chunk_02CC256B", @@ -939,7 +939,7 @@ "level": null, "language": "bash" }, - "start_line_no": 174 + "start_line_no": 169 }, { "id": "chunk_773EEC89", @@ -949,7 +949,7 @@ "level": null, "language": null }, - "start_line_no": 178 + "start_line_no": 173 }, { "id": "chunk_1A89F075", @@ -959,7 +959,7 @@ "level": null, "language": null }, - "start_line_no": 183 + "start_line_no": 178 }, { "id": "chunk_046E7E79", @@ -969,7 +969,7 @@ "level": null, "language": null }, - "start_line_no": 185 + "start_line_no": 180 }, { "id": "chunk_7FBB71F3", @@ -979,7 +979,7 @@ "level": null, "language": "bash" }, - "start_line_no": 187 + "start_line_no": 182 }, { "id": "chunk_376C9855", @@ -989,7 +989,7 @@ "level": null, "language": null }, - "start_line_no": 191 + "start_line_no": 186 }, { "id": "chunk_DE0F06A2", @@ -999,7 +999,7 @@ "level": null, "language": "bash" }, - "start_line_no": 193 + "start_line_no": 188 }, { "id": "chunk_16D6BA70", @@ -1009,17 +1009,17 @@ "level": null, "language": null }, - "start_line_no": 197 + "start_line_no": 192 }, { - "id": "h_rule_c99e0975", + "id": "h_rule_44986cd7", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 202 + "start_line_no": 197 }, { "id": "chunk_482C5F18", @@ -1029,7 +1029,7 @@ "level": 4, "language": null }, - "start_line_no": 204 + "start_line_no": 199 }, { "id": "chunk_3E16227B", @@ -1039,7 +1039,7 @@ "level": null, "language": null }, - "start_line_no": 206 + "start_line_no": 201 }, { "id": "chunk_CE426311", @@ -1049,7 +1049,7 @@ "level": null, "language": "bash" }, - "start_line_no": 208 + "start_line_no": 203 }, { "id": "chunk_F1B6ECA2", @@ -1059,17 +1059,17 @@ "level": null, "language": null }, - "start_line_no": 212 + "start_line_no": 207 }, { - "id": "h_rule_ba0b5620", + "id": "h_rule_1216eb18", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 214 + "start_line_no": 209 }, { "id": "chunk_EA41DE52", @@ -1079,7 +1079,7 @@ "level": 4, "language": null }, - "start_line_no": 216 + "start_line_no": 211 }, { "id": "chunk_6BAF2E56", @@ -1089,7 +1089,7 @@ "level": null, "language": null }, - "start_line_no": 218 + "start_line_no": 213 }, { "id": "chunk_8D6F2147", @@ -1099,7 +1099,7 @@ "level": null, "language": "bash" }, - "start_line_no": 220 + "start_line_no": 215 }, { "id": "chunk_8FEF09F4", @@ -1109,7 +1109,7 @@ "level": null, "language": null }, - "start_line_no": 224 + "start_line_no": 219 }, { "id": "chunk_ACAC9383", @@ -1119,7 +1119,7 @@ "level": null, "language": "bash" }, - "start_line_no": 226 + "start_line_no": 221 }, { "id": "chunk_F1B6ECA2", @@ -1129,17 +1129,17 @@ "level": null, "language": null }, - "start_line_no": 230 + "start_line_no": 225 }, { - "id": "h_rule_11a44d37", + "id": "h_rule_56986cf4", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 232 + "start_line_no": 227 }, { "id": "chunk_37A13558", @@ -1149,7 +1149,7 @@ "level": 4, "language": null }, - "start_line_no": 234 + "start_line_no": 229 }, { "id": "chunk_54E57534", @@ -1159,7 +1159,7 @@ "level": null, "language": null }, - "start_line_no": 236 + "start_line_no": 231 }, { "id": "chunk_5F141742", @@ -1169,7 +1169,7 @@ "level": null, "language": null }, - "start_line_no": 238 + "start_line_no": 233 }, { "id": "chunk_4E347A0E", @@ -1179,7 +1179,7 @@ "level": null, "language": "bash" }, - "start_line_no": 240 + "start_line_no": 235 }, { "id": "chunk_F1B6ECA2", @@ -1189,17 +1189,17 @@ "level": null, "language": null }, - "start_line_no": 244 + "start_line_no": 239 }, { - "id": "h_rule_96474852", + "id": "h_rule_f644669a", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 246 + "start_line_no": 241 }, { "id": "chunk_1EC5A9B5", @@ -1209,7 +1209,7 @@ "level": 4, "language": null }, - "start_line_no": 248 + "start_line_no": 243 }, { "id": "chunk_754794E1", @@ -1219,7 +1219,7 @@ "level": null, "language": null }, - "start_line_no": 250 + "start_line_no": 245 }, { "id": "chunk_B9BF8271", @@ -1229,7 +1229,7 @@ "level": null, "language": null }, - "start_line_no": 252 + "start_line_no": 247 }, { "id": "chunk_06B261DE", @@ -1239,7 +1239,7 @@ "level": null, "language": null }, - "start_line_no": 261 + "start_line_no": 256 }, { "id": "chunk_4579F74D", @@ -1249,7 +1249,7 @@ "level": null, "language": null }, - "start_line_no": 263 + "start_line_no": 258 }, { "id": "chunk_9668B90D", @@ -1259,7 +1259,7 @@ "level": null, "language": "bash" }, - "start_line_no": 267 + "start_line_no": 262 }, { "id": "chunk_85CC4581", @@ -1269,7 +1269,7 @@ "level": null, "language": null }, - "start_line_no": 271 + "start_line_no": 266 }, { "id": "chunk_A3573A4C", @@ -1279,7 +1279,7 @@ "level": null, "language": null }, - "start_line_no": 273 + "start_line_no": 268 }, { "id": "chunk_5A8D89BB", @@ -1289,7 +1289,7 @@ "level": null, "language": "bash" }, - "start_line_no": 277 + "start_line_no": 272 }, { "id": "chunk_9DD1EEE0", @@ -1299,7 +1299,7 @@ "level": null, "language": null }, - "start_line_no": 281 + "start_line_no": 276 }, { "id": "chunk_11A0D60E", @@ -1309,7 +1309,7 @@ "level": null, "language": null }, - "start_line_no": 283 + "start_line_no": 278 }, { "id": "chunk_9EE9DFB5", @@ -1319,7 +1319,7 @@ "level": null, "language": null }, - "start_line_no": 285 + "start_line_no": 280 }, { "id": "chunk_3B8259C7", @@ -1329,7 +1329,7 @@ "level": null, "language": "bash" }, - "start_line_no": 287 + "start_line_no": 282 }, { "id": "chunk_FC4FBE9E", @@ -1339,7 +1339,7 @@ "level": null, "language": null }, - "start_line_no": 291 + "start_line_no": 286 }, { "id": "chunk_A4C0C077", @@ -1349,7 +1349,7 @@ "level": null, "language": null }, - "start_line_no": 293 + "start_line_no": 288 }, { "id": "chunk_B17D9FE3", @@ -1359,7 +1359,7 @@ "level": null, "language": null }, - "start_line_no": 295 + "start_line_no": 290 }, { "id": "chunk_15DFB8EE", @@ -1369,7 +1369,7 @@ "level": null, "language": null }, - "start_line_no": 299 + "start_line_no": 294 }, { "id": "chunk_F1B6ECA2", @@ -1379,17 +1379,17 @@ "level": null, "language": null }, - "start_line_no": 305 + "start_line_no": 300 }, { - "id": "h_rule_2e0409ca", + "id": "h_rule_b12bc520", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 307 + "start_line_no": 302 }, { "id": "chunk_870EBD0C", @@ -1399,7 +1399,7 @@ "level": 4, "language": null }, - "start_line_no": 309 + "start_line_no": 304 }, { "id": "chunk_012D63A3", @@ -1409,7 +1409,7 @@ "level": null, "language": null }, - "start_line_no": 311 + "start_line_no": 306 }, { "id": "chunk_56748FCD", @@ -1419,7 +1419,7 @@ "level": null, "language": "bash" }, - "start_line_no": 315 + "start_line_no": 310 }, { "id": "chunk_1078AA87", @@ -1429,7 +1429,7 @@ "level": null, "language": null }, - "start_line_no": 319 + "start_line_no": 314 }, { "id": "chunk_C147F788", @@ -1439,7 +1439,7 @@ "level": null, "language": "bash" }, - "start_line_no": 321 + "start_line_no": 316 }, { "id": "chunk_E510ADDB", @@ -1449,17 +1449,17 @@ "level": null, "language": null }, - "start_line_no": 325 + "start_line_no": 320 }, { - "id": "h_rule_6c6abaad", + "id": "h_rule_ff06cc0b", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 328 + "start_line_no": 323 }, { "id": "chunk_A35603CF", @@ -1469,7 +1469,7 @@ "level": 4, "language": null }, - "start_line_no": 330 + "start_line_no": 325 }, { "id": "chunk_F8D49E02", @@ -1479,7 +1479,7 @@ "level": null, "language": null }, - "start_line_no": 332 + "start_line_no": 327 }, { "id": "chunk_D7B6C013", @@ -1489,7 +1489,7 @@ "level": null, "language": "bash" }, - "start_line_no": 334 + "start_line_no": 329 }, { "id": "chunk_F1B6ECA2", @@ -1499,17 +1499,17 @@ "level": null, "language": null }, - "start_line_no": 338 + "start_line_no": 333 }, { - "id": "h_rule_dff8a354", + "id": "h_rule_f7a74231", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 340 + "start_line_no": 335 }, { "id": "chunk_05080CDF", @@ -1519,7 +1519,7 @@ "level": 4, "language": null }, - "start_line_no": 342 + "start_line_no": 337 }, { "id": "chunk_A72BDF82", @@ -1529,7 +1529,7 @@ "level": null, "language": null }, - "start_line_no": 344 + "start_line_no": 339 }, { "id": "chunk_41166DB8", @@ -1539,7 +1539,7 @@ "level": null, "language": null }, - "start_line_no": 346 + "start_line_no": 341 }, { "id": "chunk_F2D0AEC1", @@ -1549,7 +1549,7 @@ "level": null, "language": null }, - "start_line_no": 355 + "start_line_no": 350 }, { "id": "chunk_12A9803B", @@ -1559,7 +1559,7 @@ "level": null, "language": "toml title=\"config.toml\"" }, - "start_line_no": 357 + "start_line_no": 352 }, { "id": "chunk_F1B6ECA2", @@ -1569,17 +1569,17 @@ "level": null, "language": null }, - "start_line_no": 367 + "start_line_no": 362 }, { - "id": "h_rule_eb7e9627", + "id": "h_rule_fe5ed082", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 369 + "start_line_no": 364 }, { "id": "chunk_E255AB78", @@ -1589,7 +1589,7 @@ "level": 4, "language": null }, - "start_line_no": 371 + "start_line_no": 366 }, { "id": "chunk_1A5EEA9C", @@ -1599,7 +1599,7 @@ "level": null, "language": null }, - "start_line_no": 373 + "start_line_no": 368 }, { "id": "chunk_B865D3B8", @@ -1609,7 +1609,7 @@ "level": null, "language": "" }, - "start_line_no": 378 + "start_line_no": 373 }, { "id": "chunk_0CEA118C", @@ -1619,7 +1619,7 @@ "level": null, "language": null }, - "start_line_no": 386 + "start_line_no": 381 }, { "id": "chunk_0FC66A15", @@ -1629,7 +1629,7 @@ "level": null, "language": "html" }, - "start_line_no": 388 + "start_line_no": 383 }, { "id": "chunk_40E12FA3", @@ -1639,7 +1639,7 @@ "level": null, "language": null }, - "start_line_no": 401 + "start_line_no": 396 }, { "id": "chunk_F2D0AEC1", @@ -1649,7 +1649,7 @@ "level": null, "language": null }, - "start_line_no": 405 + "start_line_no": 400 }, { "id": "chunk_39D7C203", @@ -1659,7 +1659,7 @@ "level": null, "language": "toml title=\"config.toml\"" }, - "start_line_no": 407 + "start_line_no": 402 }, { "id": "chunk_F1B6ECA2", @@ -1669,17 +1669,17 @@ "level": null, "language": null }, - "start_line_no": 416 + "start_line_no": 411 }, { - "id": "h_rule_f2d1dc34", + "id": "h_rule_9463b830", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", "level": null, "language": null }, - "start_line_no": 418 + "start_line_no": 413 }, { "id": "chunk_4A9C44BF", @@ -1689,7 +1689,7 @@ "level": 4, "language": null }, - "start_line_no": 420 + "start_line_no": 415 }, { "id": "chunk_65580DD5", @@ -1699,7 +1699,7 @@ "level": null, "language": null }, - "start_line_no": 422 + "start_line_no": 417 }, { "id": "chunk_2403CA4A", @@ -1709,7 +1709,7 @@ "level": null, "language": null }, - "start_line_no": 425 + "start_line_no": 420 }, { "id": "chunk_598725B0", @@ -1719,7 +1719,7 @@ "level": null, "language": null }, - "start_line_no": 432 + "start_line_no": 427 }, { "id": "chunk_332A0BF8", @@ -1729,7 +1729,7 @@ "level": null, "language": "bash" }, - "start_line_no": 435 + "start_line_no": 430 }, { "id": "chunk_B3174CBC", @@ -1739,7 +1739,7 @@ "level": null, "language": null }, - "start_line_no": 439 + "start_line_no": 434 } ] } \ No newline at end of file diff --git a/.doctemp/chunks/getting-started.chunks.json b/.doctemp/chunks/getting-started.chunks.json index e05cc7229..9b384c131 100644 --- a/.doctemp/chunks/getting-started.chunks.json +++ b/.doctemp/chunks/getting-started.chunks.json @@ -22,7 +22,7 @@ "start_line_no": 3 }, { - "id": "h_rule_176d4d55", + "id": "h_rule_265bfbdf", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", @@ -52,7 +52,7 @@ "start_line_no": 9 }, { - "id": "h_rule_79a62a8c", + "id": "h_rule_2f10538b", "raw_content": "---\n", "metadata": { "chunk_type": "h_rule", diff --git a/.doctemp/splitResult/APIS.debug.md b/.doctemp/splitResult/APIS.debug.md index 06e08fc32..17201407f 100644 --- a/.doctemp/splitResult/APIS.debug.md +++ b/.doctemp/splitResult/APIS.debug.md @@ -11,7 +11,7 @@ The present project supports two types of APIs, All methods need the Redis; - [Functional calls in Python](#api-python) - [HTTP protocols](#api-http) - + --- @@ -49,7 +49,7 @@ with open('example.pdf', 'rb') as f: [⬆️ Back to top](#toc) - + --- @@ -109,5 +109,5 @@ In a more flexible way, you can communicate with the program using HTTP protocol [⬆️ Back to top](#toc) - + --- diff --git a/.doctemp/splitResult/Documentation-of-Translation-Services.debug.md b/.doctemp/splitResult/Documentation-of-Translation-Services.debug.md index 32e1b530c..5152bb073 100644 --- a/.doctemp/splitResult/Documentation-of-Translation-Services.debug.md +++ b/.doctemp/splitResult/Documentation-of-Translation-Services.debug.md @@ -1,7 +1,7 @@ [**Advanced**](./introduction.md) > **Documentation of Translation Services** _(current)_ - + --- diff --git a/.doctemp/splitResult/INSTALLATION_docker.debug.md b/.doctemp/splitResult/INSTALLATION_docker.debug.md index 72b36a3f7..c89bd2f6f 100644 --- a/.doctemp/splitResult/INSTALLATION_docker.debug.md +++ b/.doctemp/splitResult/INSTALLATION_docker.debug.md @@ -1,7 +1,7 @@ [**Getting Started**](./getting-started.md) > **Installation** > **Docker** _(current)_ - + --- diff --git a/.doctemp/splitResult/INSTALLATION_uv.debug.md b/.doctemp/splitResult/INSTALLATION_uv.debug.md index 5bfd68a5f..328fad715 100644 --- a/.doctemp/splitResult/INSTALLATION_uv.debug.md +++ b/.doctemp/splitResult/INSTALLATION_uv.debug.md @@ -1,7 +1,7 @@ [**Getting Started**](./getting-started.md) > **Installation** > **uv** _(current)_ - + --- @@ -15,7 +15,7 @@ uv is an extremely fast Python package and project manager, written in Rust.
To install uv on your computer, please refer to [this article](https://docs.astral.sh/uv/getting-started/installation/). - + --- diff --git a/.doctemp/splitResult/INSTALLATION_winexe.debug.md b/.doctemp/splitResult/INSTALLATION_winexe.debug.md index 9a11aec9a..a33b00480 100644 --- a/.doctemp/splitResult/INSTALLATION_winexe.debug.md +++ b/.doctemp/splitResult/INSTALLATION_winexe.debug.md @@ -1,7 +1,7 @@ [**Getting Started**](./getting-started.md) > **Installation** > **Windows EXE** _(current)_ - + --- diff --git a/.doctemp/splitResult/Language-Codes.debug.md b/.doctemp/splitResult/Language-Codes.debug.md index b415eb2cd..8ee6235dc 100644 --- a/.doctemp/splitResult/Language-Codes.debug.md +++ b/.doctemp/splitResult/Language-Codes.debug.md @@ -1,7 +1,7 @@ [**Advanced**](./introduction.md) > **Language Code** _(current)_ - + --- diff --git a/.doctemp/splitResult/README.debug.md b/.doctemp/splitResult/README.debug.md index cbfe4bcd4..6891853dc 100644 --- a/.doctemp/splitResult/README.debug.md +++ b/.doctemp/splitResult/README.debug.md @@ -133,7 +133,7 @@ Note that the computing resources of the demo are limited, so please avoid abusi 2. [**Docker**](https://pdf2zh-next.com/getting-started/INSTALLATION_docker.html) Recommand for Linux 3. [**uv** (a Python package manager)](https://pdf2zh-next.com/getting-started/INSTALLATION_uv.html) Recommand for macOS - + --- diff --git a/.doctemp/splitResult/USAGE_commandline.debug.md b/.doctemp/splitResult/USAGE_commandline.debug.md index 86c7140fd..14bafbc77 100644 --- a/.doctemp/splitResult/USAGE_commandline.debug.md +++ b/.doctemp/splitResult/USAGE_commandline.debug.md @@ -1,7 +1,7 @@ [**Getting Started**](./getting-started.md) > **Usage** > **Command Line** _(current)_ - + --- @@ -49,7 +49,7 @@ After execute translation, files generated in **current working directory**. > > After executing this command, a pathname will be output. This pathname is the "**Current working directory**". The translated files will appear here. - + --- diff --git a/.doctemp/splitResult/USAGE_webui.debug.md b/.doctemp/splitResult/USAGE_webui.debug.md index 45457ea56..848297667 100644 --- a/.doctemp/splitResult/USAGE_webui.debug.md +++ b/.doctemp/splitResult/USAGE_webui.debug.md @@ -1,7 +1,7 @@ [**Getting Started**](./getting-started.md) > **Installation** > **WebUI** _(current)_ - + --- @@ -13,7 +13,7 @@ There are several methods to open the WebUI interface. If you are using **Windows**, please refer to [this article](./INSTALLATION_winexe.md); - + 1. Python installed (3.10 <= version <= 3.12) 2. Install our package: @@ -32,31 +32,37 @@ There are several methods to open the WebUI interface. If you are using **Window Drop the PDF file into the window and click `Translate`. - +5. If you deploy PDFMathTranslate with docker, and you are using ollama as PDFMathTranslate's backend LLM, you should fill "Ollama host" with + + ```bash + http://host.docker.internal:11434 + ``` + + - + - + ### Environment Variables - + You can set the source and target languages using environment variables: - + - `PDF2ZH_LANG_FROM`: Sets the source language. Defaults to "English". - `PDF2ZH_LANG_TO`: Sets the target language. Defaults to "Simplified Chinese". - + ## Preview - + - + - + ## Maintainance - -GUI maintained by [Rongxin](https://github.com/reycn) \ No newline at end of file + +GUI maintained by [Rongxin](https://github.com/reycn) diff --git a/.doctemp/splitResult/advanced.debug.md b/.doctemp/splitResult/advanced.debug.md index 371af583d..5e9e9e39d 100644 --- a/.doctemp/splitResult/advanced.debug.md +++ b/.doctemp/splitResult/advanced.debug.md @@ -1,20 +1,15 @@ [**Advanced**](./introduction.md) > **Advanced** _(current)_ - + ---

Table of Contents

- + - [Command Line Args](#command-line-args) - - [Args](#args) - - [GUI Args](#gui-args) - [Rate Limiting Configuration Guide](#rate-limiting-configuration-guide) - - [RPM (Requests Per Minute) Rate Limiting](#rpm-requests-per-minute-rate-limiting) - - [Concurrent Connection Limiting](#concurrent-connection-limiting) - - [Best Practices](#best-practices) - [Partial translation](#partial-translation) - [Specify source and target languages](#specify-source-and-target-languages) - [Translate wih exceptions](#translate-wih-exceptions) @@ -26,217 +21,217 @@ - [Authentication and welcome page](#authentication-and-welcome-page) - [Glossary Support](#glossary-support) - + --- - + #### Command Line Args - + Execute the translation command in the command line to generate the translated document `example-mono.pdf` and the bilingual document `example-dual.pdf` in the current working directory. Use Google as the default translation service. More support translation services can find [HERE](https://github.com/PDFMathTranslate/PDFMathTranslate-next/blob/main/docs/ADVANCED.md#services). - + cmd - + In the following table, we list all advanced options for reference: - + ##### Args - + | Option | Function | Example | | ------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | | `files` | Local PDF file path | `pdf2zh ~/local.pdf` | - + | `links` | Online files | `pdf2zh http://arxiv.org/paper.pdf` | - + | `--output` | Output directory for files | `pdf2zh example.pdf --output /outputpath` | - + | `--` | Use [**specific service**](./Documentation-of-Translation-Services.md) for translation | `pdf2zh example.pdf --openai`
`pdf2zh example.pdf --deepseek` | - + | `--help`, `-h` | Show help message and exit | `pdf2zh -h` | - + | `--config-file` | Path to the configuration file | `pdf2zh --config-file /path/to/config/config.toml` | - + | `--report-interval` | Progress report interval in seconds | `pdf2zh example.pdf --report-interval 5` | - + | `--debug` | Use debug logging level | `pdf2zh example.pdf --debug` | - + | `--gui` | Interact with GUI | `pdf2zh --gui` | - + | `--warmup` | Only download and verify required assets then exit | `pdf2zh example.pdf --warmup` | - + | `--generate-offline-assets` | Generate offline assets package in the specified directory | `pdf2zh example.pdf --generate-offline-assets /path` | - + | `--restore-offline-assets` | Restore offline assets package from the specified directory | `pdf2zh example.pdf --restore-offline-assets /path` | - + | `--version` | Show version then exit | `pdf2zh --version` | - + | `--pages` | Partial document translation | `pdf2zh example.pdf --pages 1,2,1-,-3,3-5` | - + | `--lang-in` | The code of source language | `pdf2zh example.pdf --lang-in en` | - + | `--lang-out` | The code of target language | `pdf2zh example.pdf --lang-out zh-CN` | - + | `--min-text-length` | Minimum text length to translate | `pdf2zh example.pdf --min-text-length 5` | - + | `--rpc-doclayout` | RPC service host address for document layout analysis | | - + | `--qps` | QPS limit for translation service | `pdf2zh example.pdf --qps 200` | - + | `--ignore-cache` | Ignore translation cache | `pdf2zh example.pdf --ignore-cache` | - + | `--custom-system-prompt` | Custom system prompt for translation. Used for `/no_think` in Qwen 3 | `pdf2zh example.pdf --custom-system-prompt "/no_think You are a professional, authentic machine translation engine"` | - + | `--pool-max-worker` | Maximum number of workers for translation pool. If not set, will use qps as the number of workers | `pdf2zh example.pdf --pool-max-worker 100` | - + | `--no-auto-extract-glossary` | Disable auto extract glossary | `pdf2zh example.pdf --no-auto-extract-glossary` | - + | `--primary-font-family` | Override primary font family for translated text. Choices: 'serif' for serif fonts, 'sans-serif' for sans-serif fonts, 'script' for script/italic fonts. If not specified, uses automatic font selection based on original text properties. | `pdf2zh example.pdf --primary-font-family serif` | - + | `--no-dual` | Do not output bilingual PDF files | `pdf2zh example.pdf --no-dual` | - + | `--no-mono` | Do not output monolingual PDF files | `pdf2zh example.pdf --no-mono` | - + | `--formular-font-pattern` | Font pattern to identify formula text | `pdf2zh example.pdf --formular-font-pattern "(MS.*)"` | - + | `--formular-char-pattern` | Character pattern to identify formula text | `pdf2zh example.pdf --formular-char-pattern "(MS.*)"` | - + | `--split-short-line` | Force split short line into different paragraphs | `pdf2zh example.pdf --split-short-line` | - + | `--short-line-split-factor` | Split threshold factor for short lines | | - + | `--skip-clean` | Skip PDF cleaning step | `pdf2zh example.pdf --skip-clean` | - + | `--dual-translate-first` | 在双 PDF 模式下优先放置翻译页 | `pdf2zh example.pdf --dual-translate-first` | - + | `--disable-rich-text-translate` | Disable rich text translation | `pdf2zh example.pdf --disable-rich-text-translate` | - + | `--enhance-compatibility` | Enable all compatibility enhancement options | `pdf2zh example.pdf --enhance-compatibility` | - + | `--use-alternating-pages-dual` | Use alternating pages mode for dual PDF | `pdf2zh example.pdf --use-alternating-pages-dual` | - + | `--watermark-output-mode` | Watermark output mode for PDF files | `pdf2zh example.pdf --watermark-output-mode "NoWaterMark"` | - + | `--max-pages-per-part` | Maximum pages per part for split translation | `pdf2zh example.pdf --max-pages-per-part 1` | - + | `--translate-table-text` | Translate table text (experimental) | `pdf2zh example.pdf --translate-table-text` | - + | `--skip-scanned-detection` | Skip scanned detection | `pdf2zh example.pdf --skip-scanned-detection` | - + | `--ocr-workaround` | Force translated text to be black and add white background | `pdf2zh example.pdf --ocr-workaround` | - + | `--auto-enable-ocr-workaround` | Enable automatic OCR workaround. If a document is detected as heavily scanned, this will attempt to enable OCR processing and skip further scan detection. See documentation for details. (default: False) | `pdf2zh example.pdf --auto-enable-ocr-workaround True` | - + | `--only-include-translated-page`| Only include translated pages in the output PDF. Effective only when --pages is used. | `pdf2zh example.pdf --pages 1-5 --only-include-translated-page` | - + | `--glossaries` | Custom glossary for translation. | `pdf2zh example.pdf --glossaries "glossary1.csv,glossary2.csv,glossary3.csv"` | - + | `--save-auto-extracted-glossary`| save automatically extracted glossary. | `pdf2zh example.pdf --save-auto-extracted-glossary` | - + | `--no-merge-alternating-line-numbers` | Disable merging of alternating line numbers and text paragraphs in documents with line numbers | `pdf2zh example.pdf --no-merge-alternating-line-numbers` | - + | `--no-remove-non-formula-lines` | Disable removal of non-formula lines within paragraph areas | `pdf2zh example.pdf --no-remove-non-formula-lines` | - + | `--non-formula-line-iou-threshold` | Set IoU threshold for identifying non-formula lines (0.0-1.0) | `pdf2zh example.pdf --non-formula-line-iou-threshold 0.85` | - + | `--figure-table-protection-threshold` | Set protection threshold for figures and tables (0.0-1.0). Lines within figures/tables will not be processed | `pdf2zh example.pdf --figure-table-protection-threshold 0.95` | - + | `--skip-formula-offset-calculation` | Skip formula offset calculation during processing | `pdf2zh example.pdf --skip-formula-offset-calculation` | - + ##### GUI Args - + | Option | Function | Example | | ------------------------------- | -------------------------------------- | ----------------------------------------------- | | `--share` | Enable sharing mode | `pdf2zh --gui --share` | - + | `--auth-file` | Path to the authentication file | `pdf2zh --gui --auth-file /path` | - + | `--welcome-page` | Path to the welcome html file | `pdf2zh --gui --welcome-page /path` | - + | `--enabled-services` | Enabled translation services | `pdf2zh --gui --enabled-services "Bing,OpenAI"` | - + | `--disable-gui-sensitive-input` | Disable GUI sensitive input | `pdf2zh --gui --disable-gui-sensitive-input` | - + | `--disable-config-auto-save` | Disable automatic configuration saving | `pdf2zh --gui --disable-config-auto-save` | - + | `--server-port` | WebUI Port | `pdf2zh --gui --server-port 7860` | - + [⬆️ Back to top](#toc) - + --- - + #### Rate Limiting Configuration Guide - + When using translation services, proper rate limiting configuration is crucial to avoid API errors and optimize performance. This guide explains how to configure `--qps` and `--pool-max-worker` parameters based on different upstream service limitations. - + > [!TIP] > > It is recommended that the pool_size does not exceed 1000. If the pool_size calculated by the following method exceeds 1000, please use 1000. - + ##### RPM (Requests Per Minute) Rate Limiting - + When the upstream service has RPM limitations, use the following calculation: **Calculation Formula:** - + - `qps = floor(rpm / 60)` - `pool_size = qps * 10` - + > [!NOTE] > The factor of 10 is an empirical coefficient that generally works well for most scenarios. - + **Example:** If your translation service has a limit of 600 RPM: - + - `qps = floor(600 / 60) = 10` - `pool_size = 10 * 10 = 100` - + ```bash pdf2zh example.pdf --qps 10 --pool-max-worker 100 ``` - + ##### Concurrent Connection Limiting - + When the upstream service has concurrent connection limitations (like GLM official service), use this approach: **Calculation Formula:** - + - `pool_size = max(floor(0.9 * official_concurrent_limit), official_concurrent_limit - 20)` - `qps = pool_size` - + **Example:** If your translation service allows 50 concurrent connections: - + - `pool_size = max(floor(0.9 * 50), 50 - 20) = max(45, 30) = 45` - `qps = 45` - + ```bash pdf2zh example.pdf --qps 45 --pool-max-worker 45 ``` - + ##### Best Practices - + > [!TIP] > - Always start with conservative values and gradually increase if needed > - Monitor your service's response times and error rates @@ -244,134 +239,134 @@ pdf2zh example.pdf --qps 45 --pool-max-worker 45 > - Consider your specific use case and document size when setting these parameters - + [⬆️ Back to top](#toc) - + --- - + #### Partial translation - + Use the `--pages` parameter to translate a portion of a document. - + - If the page numbers are consecutive, you can write it like this: - + ```bash pdf2zh_next example.pdf --pages 1-3 ``` - + ```bash pdf2zh_next example.pdf --pages 25- ``` - + > [!TIP] > `25-` includes all pages after page 25. If your document has 100 pages, this is equivalent to `25-100`. > > Similarly, `-25` includes all pages before page 25, which is equivalent to `1-25`. - + - If the pages are not consecutive, you can use a comma `,` to separate them. - + For example, if you want to translate the first and third pages, you can use the following command: - + ```bash pdf2zh_next example.pdf --pages "1,3" ``` - + - If the pages include both consecutive and non-consecutive ranges, you can also connect them with a comma, like this: - + ```bash pdf2zh_next example.pdf --pages "1,3,10-20,25-" ``` - + This command will translate the first page, the third page, pages 10-20, and all pages from 25 to the end. [⬆️ Back to top](#toc) - + --- - + #### Specify source and target languages - + See [Google Languages Codes](https://developers.google.com/admin-sdk/directory/v1/languages), [DeepL Languages Codes](https://developers.deepl.com/docs/resources/supported-languages) - + ```bash pdf2zh_next example.pdf --lang-in en -lang-out ja ``` - + [⬆️ Back to top](#toc) - + --- - + #### Translate wih exceptions - + Use regex to specify formula fonts and characters that need to be preserved: - + ```bash pdf2zh_next example.pdf --formular-font-pattern "(CM[^RT].*|MS.*|.*Ital)" --formular-char-pattern "(\(|\||\)|\+|=|\d|[\u0080-\ufaff])" ``` - + Preserve `Latex`, `Mono`, `Code`, `Italic`, `Symbol` and `Math` fonts by default: - + ```bash pdf2zh_next example.pdf --formular-font-pattern "(CM[^R]|MS.M|XY|MT|BL|RM|EU|LA|RS|LINE|LCIRCLE|TeX-|rsfs|txsy|wasy|stmary|.*Mono|.*Code|.*Ital|.*Sym|.*Math)" ``` - + [⬆️ Back to top](#toc) - + --- - + #### Custom prompt - + - + Custom system prompt for translation. It is mainly used to add the '/no_think' instruction of Qwen 3 in the prompt. - + ```bash pdf2zh_next example.pdf --custom-system-prompt "/no_think You are a professional and reliable machine translation engine responsible for translating the input text into zh_CN.When translating, strictly follow the instructions below to ensure translation quality and preserve all formatting, tags, and placeholders:" ``` - + [⬆️ Back to top](#toc) - + --- - + #### Custom configuration - + There are multiple ways to modify and import the configuration file. - + > [!NOTE] > **Configuration File Hierarchy** > @@ -381,122 +376,122 @@ There are multiple ways to modify and import the configuration file. > > **cli/gui > env > user config file > default config file** - + - Modifying Configuration via **Command Line Arguments** - + For most cases, you can directly pass your desired settings through command line arguments. Please refer to [Command Line Args](#cmd) for more information. For example, if you want to enable a GUI window, you can use the following command: - + ```bash pdf2zh_next --gui ``` - + - Modifying Configuration via **Environment Variables** - + You can replace the `--` in command line arguments with `PDF2ZH_`, connect parameters using `=`, and replace `-` with `_` as environment variables. For example, if you want to enable a GUI window, you can use the following command: - + ```bash PDF2ZH_GUI=TRUE pdf2zh_next ``` - + env - + - User-Specified **Configuration File** - + You can specify a configuration file using the command line argument below: - + ```bash pdf2zh_next --config-file '/path/config.toml' ``` - + If you are unsure about the config file format, please refer to the default configuration file described below. - + - **Default Configuration File** - + The default configuration file is located at `~/.config/pdf2zh`. Please do not modify the configuration files in the `default` directory. It is strongly recommended to refer to this configuration file's content and use **User-Specified Configuration File** to implement your own configuration file. - + > [!TIP] > - By default, pdf2zh 2.0 automatically saves the current configuration to `~/.config/pdf2zh/config.v3.toml` each time you click the translate button in the GUI. This configuration file will be loaded by default on the next startup. > - The configuration files in the `default` directory are automatically generated by the program. You can copy them for modification, but please do not modify them directly. > - Configuration files may include version numbers such as "v2", "v3", etc. These are **configuration file version numbers**, **not** the version number of pdf2zh itself. - + [⬆️ Back to top](#toc) - + --- - + #### Skip clean - + When this parameter is set to True, the PDF cleaning step will be skipped, which can improve compatibility and avoid some font processing issues. Usage: - + ```bash pdf2zh_next example.pdf --skip-clean ``` - + Or using environment variables: - + ```bash PDF2ZH_SKIP_CLEAN=TRUE pdf2zh_next example.pdf ``` - + > [!TIP] > When `--enhance-compatibility` is enabled, Skip clean is automatically enabled. - + --- - + #### Translation cache - + PDFMathTranslate caches translated texts to increase speed and avoid unnecessary API calls for same contents. You can use `--ignore-cache` option to ignore translation cache and force retranslation. - + ```bash pdf2zh_next example.pdf --ignore-cache ``` - + [⬆️ Back to top](#toc) - + --- - + #### Deployment as a public services - + When deploying a pdf2zh GUI on public services, you should modify the configuration file as described below. - + > [!WARNING] > > This project has not been professionally audited for security, and may contain security vulnerabilities. Please evaluate the risks and take necessary security measures before deploying on public networks. @@ -506,10 +501,10 @@ When deploying a pdf2zh GUI on public services, you should modify the configurat > - When deploying publicly, both disable_gui_sensitive_input and disable_config_auto_save should be enabled. > - Separate different available services with *English commas* , . - + A usable configuration is as follows: - + ```toml title="config.toml" [basic] gui = true @@ -520,22 +515,22 @@ disable_gui_sensitive_input = true disable_config_auto_save = true ``` - + [⬆️ Back to top](#toc) - + --- - + #### Authentication and welcome page - + When using Authentication and welcome page to specify which user to use Web UI and custom the login page: example auth.txt Each line contains two elements, username, and password, separated by a comma. - + ``` admin,123456 user1,password1 @@ -544,10 +539,10 @@ guest,guest123 test,test123 ``` - + example welcome.html - + ```html @@ -561,15 +556,15 @@ example welcome.html ``` - + > [!NOTE] > welcome page will work if only authentication file is not blank. > If authentication file is blank, there will be no authentication. :) - + A usable configuration is as follows: - + ```toml title="config.toml" [basic] gui = true @@ -579,20 +574,20 @@ auth_file = "/path/to/auth/file" welcome_page = "/path/to/welcome/html/file" ``` - + [⬆️ Back to top](#toc) - + --- - + #### Glossary Support - + PDFMathTranslate supports the glossary table. The glossary tables file should be `csv` file. There are three columns in file. Here is a demo glossary file: - + | source | target | tgt_lng | |--------|---------|---------| | AutoML | 自动 ML | zh-CN | @@ -600,16 +595,16 @@ There are three columns in file. Here is a demo glossary file: | " | " | zh-CN | - + For CLI user: You can use multiple files for glossary. And different files should be split by `,`. - + ```bash pdf2zh_next example.pdf --glossaries "glossary1.csv,glossary2.csv,glossary3.csv" ``` - + For WebUI user: You can upload your own glossary file now. After you uploaded the file, you can check them by click their name and the content shows below. diff --git a/.doctemp/splitResult/getting-started.debug.md b/.doctemp/splitResult/getting-started.debug.md index c2c0afe74..9fa23dc25 100644 --- a/.doctemp/splitResult/getting-started.debug.md +++ b/.doctemp/splitResult/getting-started.debug.md @@ -4,7 +4,7 @@ PDFMathTranslate is a powerful PDF translation tool. You can install and start using this tool in various ways. - + --- @@ -15,7 +15,7 @@ PDFMathTranslate is a powerful PDF translation tool. You can install and start u 2. [**Docker**](./INSTALLATION_docker.md) Recommand for Linux 3. [**uv** (a Python package manager)](./INSTALLATION_uv.md) Recommand for macOS - + --- diff --git a/.doctemp/terms/APIS.terms.json b/.doctemp/terms/APIS.terms.json index a5d702940..ff073d0aa 100644 --- a/.doctemp/terms/APIS.terms.json +++ b/.doctemp/terms/APIS.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/Aliyun.terms.json b/.doctemp/terms/Aliyun.terms.json index 8ee116bb7..8ab147ed5 100644 --- a/.doctemp/terms/Aliyun.terms.json +++ b/.doctemp/terms/Aliyun.terms.json @@ -21,8 +21,10 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", - "Immersive Translate": "沉浸式翻译", - "# Aliyun Qwen": "# 阿里云通义千问" + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", + "Immersive Translate": "沉浸式翻译" } }, "zh_TW": { @@ -40,7 +42,9 @@ "Supported Languages": "支持的語言", "Community": "社區", "FAQ": "常見問題", - "# Aliyun Qwen": "# 阿里雲 Qwen" + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -58,8 +62,8 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", - "Immersive Translate": "没入型翻訳", - "# Aliyun Qwen": "# 阿里雲 Qwen" + "For Translators": "文書翻訳貢献ガイド", + "Immersive Translate": "没入型翻訳" } }, "ko": { @@ -77,7 +81,7 @@ "Supported Languages": "지원 언어", "Community": "커뮤니티", "FAQ": "자주 묻는 질문", - "# Aliyun Qwen": "# Aliyun Qwen" + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -95,7 +99,7 @@ "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", "FAQ": "Часто задаваемые вопросы", - "# Aliyun Qwen": "# Aliyun Qwen" + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -113,7 +117,7 @@ "Supported Languages": "Idiomas soportados", "Community": "Comunidad", "FAQ": "Preguntas frecuentes", - "# Aliyun Qwen": "# Aliyun Qwen" + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -131,7 +135,7 @@ "Supported Languages": "Langues supportées", "Community": "Communauté", "FAQ": "FAQ", - "# Aliyun Qwen": "# Aliyun Qwen" + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -149,7 +153,7 @@ "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", "FAQ": "Häufig gestellte Fragen", - "# Aliyun Qwen": "# Aliyun Qwen" + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -167,7 +171,7 @@ "Supported Languages": "Lingue supportate", "Community": "Comunità", "FAQ": "Domande frequenti", - "# Aliyun Qwen": "# Aliyun Qwen" + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -185,7 +189,7 @@ "Supported Languages": "Idiomas suportados", "Community": "Comunidade", "FAQ": "Perguntas frequentes", - "# Aliyun Qwen": "# Aliyun Qwen" + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/CODE_OF_CONDUCT.terms.json b/.doctemp/terms/CODE_OF_CONDUCT.terms.json index 38992d31a..fff62a732 100644 --- a/.doctemp/terms/CODE_OF_CONDUCT.terms.json +++ b/.doctemp/terms/CODE_OF_CONDUCT.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/Contribution-Guide.terms.json b/.doctemp/terms/Contribution-Guide.terms.json index 8e2daf0b5..4e599bd2f 100644 --- a/.doctemp/terms/Contribution-Guide.terms.json +++ b/.doctemp/terms/Contribution-Guide.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/Documentation-of-Translation-Services.terms.json b/.doctemp/terms/Documentation-of-Translation-Services.terms.json index eef1ba6cd..837ff4352 100644 --- a/.doctemp/terms/Documentation-of-Translation-Services.terms.json +++ b/.doctemp/terms/Documentation-of-Translation-Services.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/FAQ.terms.json b/.doctemp/terms/FAQ.terms.json index 787aad2ad..5ff91fb92 100644 --- a/.doctemp/terms/FAQ.terms.json +++ b/.doctemp/terms/FAQ.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/INSTALLATION_docker.terms.json b/.doctemp/terms/INSTALLATION_docker.terms.json index 7782ac654..c9a0bbcbb 100644 --- a/.doctemp/terms/INSTALLATION_docker.terms.json +++ b/.doctemp/terms/INSTALLATION_docker.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/INSTALLATION_uv.terms.json b/.doctemp/terms/INSTALLATION_uv.terms.json index 283252294..e349c9445 100644 --- a/.doctemp/terms/INSTALLATION_uv.terms.json +++ b/.doctemp/terms/INSTALLATION_uv.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/INSTALLATION_winexe.terms.json b/.doctemp/terms/INSTALLATION_winexe.terms.json index 5d8999095..731658e7b 100644 --- a/.doctemp/terms/INSTALLATION_winexe.terms.json +++ b/.doctemp/terms/INSTALLATION_winexe.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/Language-Codes.terms.json b/.doctemp/terms/Language-Codes.terms.json index 2b4cf141a..7cf67af3a 100644 --- a/.doctemp/terms/Language-Codes.terms.json +++ b/.doctemp/terms/Language-Codes.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/README.terms.json b/.doctemp/terms/README.terms.json index 67dbb1330..7c7454c2d 100644 --- a/.doctemp/terms/README.terms.json +++ b/.doctemp/terms/README.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/SiliconFlow.terms.json b/.doctemp/terms/SiliconFlow.terms.json index 50582122c..663bd8921 100644 --- a/.doctemp/terms/SiliconFlow.terms.json +++ b/.doctemp/terms/SiliconFlow.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/Translate-Contribution-Guide.terms.json b/.doctemp/terms/Translate-Contribution-Guide.terms.json index 635f793f5..7783289f7 100644 --- a/.doctemp/terms/Translate-Contribution-Guide.terms.json +++ b/.doctemp/terms/Translate-Contribution-Guide.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/USAGE_commandline.terms.json b/.doctemp/terms/USAGE_commandline.terms.json index 14395f34e..61f74a48c 100644 --- a/.doctemp/terms/USAGE_commandline.terms.json +++ b/.doctemp/terms/USAGE_commandline.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/USAGE_webui.terms.json b/.doctemp/terms/USAGE_webui.terms.json index 23e48fe16..fb65e12db 100644 --- a/.doctemp/terms/USAGE_webui.terms.json +++ b/.doctemp/terms/USAGE_webui.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/advanced.terms.json b/.doctemp/terms/advanced.terms.json index 85b3a9932..263ecb3da 100644 --- a/.doctemp/terms/advanced.terms.json +++ b/.doctemp/terms/advanced.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/getting-started.terms.json b/.doctemp/terms/getting-started.terms.json index 057347466..619cff6ea 100644 --- a/.doctemp/terms/getting-started.terms.json +++ b/.doctemp/terms/getting-started.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/introduction.terms.json b/.doctemp/terms/introduction.terms.json index 73ec322f6..fb7021f46 100644 --- a/.doctemp/terms/introduction.terms.json +++ b/.doctemp/terms/introduction.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/terms/supported_languages.terms.json b/.doctemp/terms/supported_languages.terms.json index ab28da63a..377717d23 100644 --- a/.doctemp/terms/supported_languages.terms.json +++ b/.doctemp/terms/supported_languages.terms.json @@ -21,6 +21,9 @@ "Supported Languages": "支持的语言", "Community": "社区", "FAQ": "常见问题", + "Aliyun": "阿里云", + "SiliconFlow": "硅基流动", + "For Translators": "文档翻译贡献指南", "Immersive Translate": "沉浸式翻译" } }, @@ -38,7 +41,10 @@ "Advanced": "高級選項", "Supported Languages": "支持的語言", "Community": "社區", - "FAQ": "常見問題" + "FAQ": "常見問題", + "Aliyun": "阿里雲", + "SiliconFlow": "硅基流動", + "For Translators": "文檔翻譯貢獻指南" } }, "ja": { @@ -56,6 +62,7 @@ "Supported Languages": "サポート言語", "Community": "コミュニティ", "FAQ": "よくある質問", + "For Translators": "文書翻訳貢献ガイド", "Immersive Translate": "没入型翻訳" } }, @@ -73,7 +80,8 @@ "Advanced": "고급 옵션", "Supported Languages": "지원 언어", "Community": "커뮤니티", - "FAQ": "자주 묻는 질문" + "FAQ": "자주 묻는 질문", + "For Translators": "문서 번역 기여 가이드" } }, "ru": { @@ -90,7 +98,8 @@ "Advanced": "Расширенные параметры", "Supported Languages": "Поддерживаемые языки", "Community": "Сообщество", - "FAQ": "Часто задаваемые вопросы" + "FAQ": "Часто задаваемые вопросы", + "For Translators": "Руководство по внесению вклада в переводы" } }, "es": { @@ -107,7 +116,8 @@ "Advanced": "Opciones avanzadas", "Supported Languages": "Idiomas soportados", "Community": "Comunidad", - "FAQ": "Preguntas frecuentes" + "FAQ": "Preguntas frecuentes", + "For Translators": "Guía de contribución de traducciones" } }, "fr": { @@ -124,7 +134,8 @@ "Advanced": "Options avancées", "Supported Languages": "Langues supportées", "Community": "Communauté", - "FAQ": "FAQ" + "FAQ": "FAQ", + "For Translators": "Guide de contribution des traductions" } }, "de": { @@ -141,7 +152,8 @@ "Advanced": "Erweiterte Optionen", "Supported Languages": "Unterstützte Sprachen", "Community": "Gemeinschaft", - "FAQ": "Häufig gestellte Fragen" + "FAQ": "Häufig gestellte Fragen", + "For Translators": "Guide de contribution des traductions" } }, "it": { @@ -158,7 +170,8 @@ "Advanced": "Opzioni avanzate", "Supported Languages": "Lingue supportate", "Community": "Comunità", - "FAQ": "Domande frequenti" + "FAQ": "Domande frequenti", + "For Translators": "Guida alla contribuzione per le traduzioni" } }, "pt": { @@ -175,7 +188,8 @@ "Advanced": "Opções avançadas", "Supported Languages": "Idiomas suportados", "Community": "Comunidade", - "FAQ": "Perguntas frequentes" + "FAQ": "Perguntas frequentes", + "For Translators": "Guia de contribuição para traduções" } } } diff --git a/.doctemp/translated/APIS.translated.json b/.doctemp/translated/APIS.translated.json index 69a6df90b..74e3db783 100644 --- a/.doctemp/translated/APIS.translated.json +++ b/.doctemp/translated/APIS.translated.json @@ -57,7 +57,7 @@ } }, { - "chunk_id": "h_rule_4414eb29", + "chunk_id": "h_rule_d89cf333", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 11, @@ -201,7 +201,7 @@ } }, { - "chunk_id": "h_rule_169a436a", + "chunk_id": "h_rule_712718ea", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 41, @@ -255,7 +255,7 @@ } }, { - "chunk_id": "h_rule_21774012", + "chunk_id": "h_rule_9dcfa49f", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 97, diff --git a/.doctemp/translated/Documentation-of-Translation-Services.translated.json b/.doctemp/translated/Documentation-of-Translation-Services.translated.json index 752d71e40..73c94a7c0 100644 --- a/.doctemp/translated/Documentation-of-Translation-Services.translated.json +++ b/.doctemp/translated/Documentation-of-Translation-Services.translated.json @@ -21,7 +21,7 @@ } }, { - "chunk_id": "h_rule_0ff56125", + "chunk_id": "h_rule_8ee75b42", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 3, diff --git a/.doctemp/translated/INSTALLATION_docker.translated.json b/.doctemp/translated/INSTALLATION_docker.translated.json index 10a6e9248..9f701e19c 100644 --- a/.doctemp/translated/INSTALLATION_docker.translated.json +++ b/.doctemp/translated/INSTALLATION_docker.translated.json @@ -21,7 +21,7 @@ } }, { - "chunk_id": "h_rule_a4336eb1", + "chunk_id": "h_rule_d44cb6ef", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 3, diff --git a/.doctemp/translated/INSTALLATION_uv.translated.json b/.doctemp/translated/INSTALLATION_uv.translated.json index 299a72283..72b5b9e9f 100644 --- a/.doctemp/translated/INSTALLATION_uv.translated.json +++ b/.doctemp/translated/INSTALLATION_uv.translated.json @@ -21,7 +21,7 @@ } }, { - "chunk_id": "h_rule_31c838fb", + "chunk_id": "h_rule_db71edfa", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 3, @@ -93,7 +93,7 @@ } }, { - "chunk_id": "h_rule_051b9a12", + "chunk_id": "h_rule_a20d0d6e", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 13, diff --git a/.doctemp/translated/INSTALLATION_winexe.translated.json b/.doctemp/translated/INSTALLATION_winexe.translated.json index cebcc206d..121016429 100644 --- a/.doctemp/translated/INSTALLATION_winexe.translated.json +++ b/.doctemp/translated/INSTALLATION_winexe.translated.json @@ -21,7 +21,7 @@ } }, { - "chunk_id": "h_rule_766a091b", + "chunk_id": "h_rule_192aec21", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 3, diff --git a/.doctemp/translated/Language-Codes.translated.json b/.doctemp/translated/Language-Codes.translated.json index 88344f034..72f4b578c 100644 --- a/.doctemp/translated/Language-Codes.translated.json +++ b/.doctemp/translated/Language-Codes.translated.json @@ -21,7 +21,7 @@ } }, { - "chunk_id": "h_rule_5e62bbcd", + "chunk_id": "h_rule_b750efc6", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 3, diff --git a/.doctemp/translated/README.translated.json b/.doctemp/translated/README.translated.json index b8326b3e1..de0feefda 100644 --- a/.doctemp/translated/README.translated.json +++ b/.doctemp/translated/README.translated.json @@ -759,7 +759,7 @@ } }, { - "chunk_id": "h_rule_64259f0c", + "chunk_id": "h_rule_0c0b4bc7", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 94, diff --git a/.doctemp/translated/USAGE_commandline.translated.json b/.doctemp/translated/USAGE_commandline.translated.json index c690a2ffb..354a60d52 100644 --- a/.doctemp/translated/USAGE_commandline.translated.json +++ b/.doctemp/translated/USAGE_commandline.translated.json @@ -21,7 +21,7 @@ } }, { - "chunk_id": "h_rule_16d7ccfb", + "chunk_id": "h_rule_4a861785", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 3, @@ -165,7 +165,7 @@ } }, { - "chunk_id": "h_rule_3a4d9b1f", + "chunk_id": "h_rule_487433fb", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 43, diff --git a/.doctemp/translated/USAGE_webui.translated.json b/.doctemp/translated/USAGE_webui.translated.json index 66b5871ba..f9dec65d6 100644 --- a/.doctemp/translated/USAGE_webui.translated.json +++ b/.doctemp/translated/USAGE_webui.translated.json @@ -21,7 +21,7 @@ } }, { - "chunk_id": "h_rule_cdc4a3db", + "chunk_id": "h_rule_cd8270c0", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 3, @@ -93,28 +93,28 @@ } }, { - "chunk_id": "chunk_2A12C8AD", + "chunk_id": "chunk_3B3548CA", "chunk_type": "list", - "original_content": "1. Python installed (3.10 <= version <= 3.12)\n\n2. Install our package:\n\n3. Start using in browser:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. If your browswer has not been started automatically, goto\n\n ```bash\n http://localhost:7860/\n ```\n\n Drop the PDF file into the window and click `Translate`.\n", + "original_content": "1. Python installed (3.10 <= version <= 3.12)\n\n2. Install our package:\n\n3. Start using in browser:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. If your browswer has not been started automatically, goto\n\n ```bash\n http://localhost:7860/\n ```\n\n Drop the PDF file into the window and click `Translate`.\n\n5. If you deploy PDFMathTranslate with docker, and you are using ollama as PDFMathTranslate's backend LLM, you should fill \"Ollama host\" with\n\n ```bash\n http://host.docker.internal:11434\n ```\n", "start_line_no": 11, "translations": { - "ko": "1. Python 설치 (3.10 <= 버전 <= 3.12)\n\n2. 패키지 설치:\n\n3. 브라우저에서 사용 시작:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. 브라우저가 자동으로 시작되지 않은 경우 다음으로 이동:\n\n ```bash\n http://localhost:7860/\n ```\n\n PDF 파일을 창에 드롭하고 `Translate` 을 클릭하세요.\n", - "zh_TW": "1. 已安裝 Python(3.10 <= 版本 <= 3.12)\n\n2. 安裝我們的套件:\n\n3. 在瀏覽器中開始使用:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. 如果瀏覽器未自動啟動,請前往\n\n ```bash\n http://localhost:7860/\n ```\n\n 將 `PDF` 文件拖曳至視窗中並點擊 `Translate`。\n", - "fr": "1. Python installé (3.10 <= version <= 3.12)\n\n2. Installez notre package :\n\n3. Commencez à utiliser dans le navigateur :\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Si votre navigateur ne s'est pas lancé automatiquement, allez à\n\n ```bash\n http://localhost:7860/\n ```\n\n Déposez le fichier PDF dans la fenêtre et cliquez sur `Translate`.\n", - "ru": "1. Установленный Python (версия от 3.10 до 3.12)\n\n2. Установите наш пакет:\n\n3. Начните использование в браузере:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Если ваш браузер не запустился автоматически, перейдите по адресу\n\n ```bash\n http://localhost:7860/\n ```\n\n Перетащите `PDF` файл в окно и нажмите `Translate`.\n", - "pt": "1. Python instalado (versão entre 3.10 e 3.12)\n\n2. Instale nosso pacote:\n\n3. Comece a usar no navegador:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Se o seu navegador não tiver sido iniciado automaticamente, acesse\n\n ```bash\n http://localhost:7860/\n ```\n\n Arraste o arquivo `PDF` para a janela e clique em `Translate`.\n", - "ja": "1. Python がインストールされていること(3.10 <= バージョン <= 3.12)\n\n2. パッケージをインストール:\n\n3. ブラウザで使用開始:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. ブラウザが自動的に起動しない場合は、以下にアクセス:\n\n ```bash\n http://localhost:7860/\n ```\n\n `PDF` ファイルをウィンドウにドロップして、`Translate` をクリックしてください。\n", - "es": "1. Python instalado (versión 3.10 <= versión <= 3.12)\n\n2. Instala nuestro paquete:\n\n3. Comienza a usar en el navegador:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Si tu navegador no se ha iniciado automáticamente, ve a\n\n ```bash\n http://localhost:7860/\n ```\n\n Arrastra el archivo `PDF` a la ventana y haz clic en `Translate`.\n", - "de": "1. Python installiert (3.10 <= Version <= 3.12)\n\n2. Installieren Sie unser Paket:\n\n3. Beginnen Sie mit der Verwendung im Browser:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Falls Ihr Browser nicht automatisch gestartet wurde, gehen Sie zu\n\n ```bash\n http://localhost:7860/\n ```\n\n Ziehen Sie die `PDF`-Datei in das Fenster und klicken Sie auf `Translate`.\n", - "zh": "1. 已安装 Python(3.10 <= 版本 <= 3.12)\n\n2. 安装我们的包:\n\n3. 在浏览器中开始使用:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. 如果浏览器未自动启动,请访问\n\n ```bash\n http://localhost:7860/\n ```\n\n 将 `PDF` 文件拖入窗口并点击 `Translate`。\n", - "it": "1. Python installato (versione 3.10 <= versione <= 3.12)\n\n2. Installa il nostro pacchetto:\n\n3. Inizia a utilizzare nel browser:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Se il tuo browser non si è avviato automaticamente, vai a\n\n ```bash\n http://localhost:7860/\n ```\n\n Trascina il file `PDF` nella finestra e clicca `Translate`.\n" + "zh": "1. 已安装 Python(3.10 <= 版本 <= 3.12)\n\n2. 安装我们的软件包:\n\n3. 在浏览器中开始使用:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. 如果浏览器未自动启动,请访问\n\n ```bash\n http://localhost:7860/\n ```\n\n 将 `PDF` 文件拖入窗口并点击 `Translate`。\n\n5. 如果您通过 docker 部署 PDFMathTranslate,并使用 ollama 作为 PDFMathTranslate 的后端 `LLM`,则应在 \"Ollama host\" 中填写\n\n ```bash\n http://host.docker.internal:11434\n ```\n", + "es": "1. Python instalado (versión 3.10 <= versión <= 3.12)\n\n2. Instala nuestro paquete:\n\n3. Comienza a usar en el navegador:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Si tu navegador no se ha iniciado automáticamente, ve a\n\n ```bash\n http://localhost:7860/\n ```\n\n Arrastra el archivo PDF a la ventana y haz clic en `Translate`.\n\n5. Si despliegas PDFMathTranslate con docker, y estás usando ollama como backend LLM de PDFMathTranslate, debes llenar \"Ollama host\" con\n\n ```bash\n http://host.docker.internal:11434\n ```\n", + "de": "1. Python installiert (3.10 <= Version <= 3.12)\n\n2. Installieren Sie unser Paket:\n\n3. Beginnen Sie mit der Verwendung im Browser:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Falls Ihr Browser nicht automatisch gestartet wurde, gehen Sie zu\n\n ```bash\n http://localhost:7860/\n ```\n\n Ziehen Sie die PDF-Datei in das Fenster und klicken Sie auf `Translate`.\n\n5. Wenn Sie PDFMathTranslate mit Docker bereitstellen und ollama als Backend-LLM für PDFMathTranslate verwenden, sollten Sie \"Ollama host\" mit folgendem Wert ausfüllen:\n\n ```bash\n http://host.docker.internal:11434\n ```\n", + "ru": "1. Установленный Python (версия от 3.10 до 3.12)\n\n2. Установите наш пакет:\n\n3. Начните использование в браузере:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Если ваш браузер не запустился автоматически, перейдите по адресу:\n\n ```bash\n http://localhost:7860/\n ```\n\n Перетащите `PDF` файл в окно и нажмите `Translate`.\n\n5. Если вы развертываете PDFMathTranslate с помощью docker и используете ollama в качестве бэкенд LLM для PDFMathTranslate, вам следует указать \"Ollama host\" как:\n\n ```bash\n http://host.docker.internal:11434\n ```\n", + "it": "1. Python installato (versione 3.10 <= versione <= 3.12)\n\n2. Installa il nostro pacchetto:\n\n3. Inizia a utilizzare nel browser:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Se il tuo browser non si è avviato automaticamente, vai a\n\n ```bash\n http://localhost:7860/\n ```\n\n Trascina il file PDF nella finestra e clicca `Translate`.\n\n5. Se distribuisci PDFMathTranslate con docker e stai utilizzando ollama come backend LLM di PDFMathTranslate, dovresti inserire \"Ollama host\" con\n\n ```bash\n http://host.docker.internal:11434\n ```\n", + "pt": "1. Python instalado (versão entre 3.10 e 3.12)\n\n2. Instale nosso pacote:\n\n3. Comece a usar no navegador:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Se o seu navegador não foi iniciado automaticamente, acesse\n\n ```bash\n http://localhost:7860/\n ```\n\n Arraste o arquivo PDF para a janela e clique em `Translate`.\n\n5. Se você implantar o PDFMathTranslate com docker e estiver usando o ollama como o LLM de backend do PDFMathTranslate, você deve preencher \"Ollama host\" com\n\n ```bash\n http://host.docker.internal:11434\n ```\n", + "ko": "1. Python 설치 (3.10 <= 버전 <= 3.12)\n\n2. 패키지 설치:\n\n3. 브라우저에서 사용 시작:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. 브라우저가 자동으로 시작되지 않은 경우 다음으로 이동:\n\n ```bash\n http://localhost:7860/\n ```\n\n PDF 파일을 창에 드롭하고 `Translate` 을 클릭하세요.\n\n5. docker 로 PDFMathTranslate 를 배포하고 ollama 를 PDFMathTranslate 의 백엔드 LLM 으로 사용하는 경우 \"Ollama host\"에 다음을 입력해야 합니다:\n\n ```bash\n http://host.docker.internal:11434\n ```\n", + "zh_TW": "1. 已安裝 Python(3.10 <= 版本 <= 3.12)\n\n2. 安裝我們的套件:\n\n3. 在瀏覽器中開始使用:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. 如果瀏覽器未自動啟動,請前往\n\n ```bash\n http://localhost:7860/\n ```\n\n 將 `PDF` 文件拖入視窗並點擊 `Translate`。\n\n5. 如果您使用 docker 部署 PDFMathTranslate,且使用 ollama 作為 PDFMathTranslate 的後端 LLM,應在「Ollama host」欄位填入\n\n ```bash\n http://host.docker.internal:11434\n ```\n", + "fr": "1. Python installé (version 3.10 <= version <= 3.12)\n\n2. Installez notre package :\n\n3. Commencez à utiliser dans le navigateur :\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. Si votre navigateur ne s'est pas lancé automatiquement, allez à\n\n ```bash\n http://localhost:7860/\n ```\n\n Déposez le fichier PDF dans la fenêtre et cliquez sur `Translate`.\n\n5. Si vous déployez PDFMathTranslate avec docker, et que vous utilisez ollama comme backend LLM de PDFMathTranslate, vous devez remplir \"Ollama host\" avec\n\n ```bash\n http://host.docker.internal:11434\n ```\n", + "ja": "1. Python がインストールされていること(3.10 <= バージョン <= 3.12)\n\n2. パッケージをインストール:\n\n3. ブラウザで使用開始:\n\n ```bash\n pdf2zh_next --gui\n ```\n\n4. ブラウザが自動的に起動しない場合、次の URL にアクセス:\n\n ```bash\n http://localhost:7860/\n ```\n\n PDF ファイルをウィンドウにドロップし、`Translate` をクリック。\n\n5. PDFMathTranslate を docker でデプロイし、PDFMathTranslate のバックエンド LLM として ollama を使用している場合、「Ollama host」に次のように入力:\n\n ```bash\n http://host.docker.internal:11434\n ```\n" } }, { "chunk_id": "chunk_F5A7DD64", "chunk_type": "html_comment", "original_content": "", - "start_line_no": 29, + "start_line_no": 35, "translations": { "zh": "", "zh_TW": "", @@ -132,7 +132,7 @@ "chunk_id": "chunk_B79CAF04", "chunk_type": "image", "original_content": "\n", - "start_line_no": 30, + "start_line_no": 36, "translations": { "zh": "\n", "zh_TW": "\n", @@ -150,7 +150,7 @@ "chunk_id": "chunk_2FDC0409", "chunk_type": "header", "original_content": "### Environment Variables\n", - "start_line_no": 32, + "start_line_no": 38, "translations": { "zh_TW": "### 環境變數\n", "ja": "### 環境変数\n", @@ -168,7 +168,7 @@ "chunk_id": "chunk_7865A8EB", "chunk_type": "paragraph", "original_content": "You can set the source and target languages using environment variables:\n", - "start_line_no": 34, + "start_line_no": 40, "translations": { "ru": "Вы можете установить исходный и целевой языки с помощью переменных среды:\n", "zh": "您可以通过环境变量设置源语言和目标语言:\n", @@ -186,7 +186,7 @@ "chunk_id": "chunk_104D91B6", "chunk_type": "list", "original_content": "- `PDF2ZH_LANG_FROM`: Sets the source language. Defaults to \"English\".\n- `PDF2ZH_LANG_TO`: Sets the target language. Defaults to \"Simplified Chinese\".\n", - "start_line_no": 36, + "start_line_no": 42, "translations": { "ko": "- `PDF2ZH_LANG_FROM`: 소스 언어를 설정합니다. 기본값은 \"English\"입니다.\n- `PDF2ZH_LANG_TO`: 대상 언어를 설정합니다. 기본값은 \"Simplified Chinese\"입니다.\n", "zh": "- `PDF2ZH_LANG_FROM`: 设置源语言。默认为 \"English\"。\n- `PDF2ZH_LANG_TO`: 设置目标语言。默认为 \"Simplified Chinese\"。\n", @@ -204,7 +204,7 @@ "chunk_id": "chunk_EEBEC547", "chunk_type": "header", "original_content": "## Preview\n", - "start_line_no": 39, + "start_line_no": 45, "translations": { "es": "## Vista previa\n", "ko": "## 미리보기\n", @@ -222,7 +222,7 @@ "chunk_id": "chunk_433E69C5", "chunk_type": "image", "original_content": "", - "start_line_no": 41, + "start_line_no": 47, "translations": { "zh": "", "zh_TW": "", @@ -240,7 +240,7 @@ "chunk_id": "chunk_64A11402", "chunk_type": "image", "original_content": "\n", - "start_line_no": 42, + "start_line_no": 48, "translations": { "zh": "\n", "zh_TW": "\n", @@ -258,7 +258,7 @@ "chunk_id": "chunk_742C5FE6", "chunk_type": "header", "original_content": "## Maintainance\n", - "start_line_no": 44, + "start_line_no": 50, "translations": { "ko": "## 유지 관리\n", "es": "## Mantenimiento\n", @@ -273,21 +273,21 @@ } }, { - "chunk_id": "chunk_3D5EA421", + "chunk_id": "chunk_7E834869", "chunk_type": "paragraph", - "original_content": "GUI maintained by [Rongxin](https://github.com/reycn)", - "start_line_no": 46, + "original_content": "GUI maintained by [Rongxin](https://github.com/reycn)\n", + "start_line_no": 52, "translations": { - "ko": "[Rongxin](https://github.com/reycn) 이 유지 관리하는 GUI", - "fr": "GUI maintenu par [Rongxin](https://github.com/reycn)", - "de": "GUI gepflegt von [Rongxin](https://github.com/reycn)", - "zh_TW": "由 [Rongxin](https://github.com/reycn) 維護的 GUI", - "pt": "### TRANSLATION\n\nGUI mantido por [Rongxin](https://github.com/reycn)", - "ru": "Графический интерфейс поддерживается [Rongxin](https://github.com/reycn)", - "it": "GUI mantenuta da [Rongxin](https://github.com/reycn)", - "zh": "由 [Rongxin](https://github.com/reycn) 维护的 GUI", - "ja": "[Rongxin](https://github.com/reycn) がメンテナンスする GUI", - "es": "### TRANSLATION\n\nGUI mantenido por [Rongxin](https://github.com/reycn)" + "fr": "GUI maintenu par [Rongxin](https://github.com/reycn)\n", + "de": "GUI wird von [Rongxin](https://github.com/reycn) gepflegt\n", + "es": "GUI mantenida por [Rongxin](https://github.com/reycn)\n", + "zh": "由 [Rongxin](https://github.com/reycn) 维护的 GUI\n", + "pt": "GUI mantido por [Rongxin](https://github.com/reycn)\n", + "zh_TW": "由 [Rongxin](https://github.com/reycn) 維護的 GUI\n", + "ko": "[Rongxin](https://github.com/reycn) 이 유지 관리하는 GUI\n", + "it": "GUI mantenuta da [Rongxin](https://github.com/reycn)\n", + "ru": "GUI поддерживается [Rongxin](https://github.com/reycn)\n", + "ja": "GUI は [Rongxin](https://github.com/reycn) によってメンテナンスされています\n" } } ] diff --git a/.doctemp/translated/advanced.translated.json b/.doctemp/translated/advanced.translated.json index 31f536b14..0636c1494 100644 --- a/.doctemp/translated/advanced.translated.json +++ b/.doctemp/translated/advanced.translated.json @@ -21,7 +21,7 @@ } }, { - "chunk_id": "h_rule_bb1e2910", + "chunk_id": "h_rule_7193a0cb", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 3, @@ -57,28 +57,28 @@ } }, { - "chunk_id": "chunk_7ABB55CB", + "chunk_id": "chunk_F0A2B12C", "chunk_type": "list", - "original_content": "- [Command Line Args](#command-line-args)\n - [Args](#args)\n - [GUI Args](#gui-args)\n- [Rate Limiting Configuration Guide](#rate-limiting-configuration-guide)\n - [RPM (Requests Per Minute) Rate Limiting](#rpm-requests-per-minute-rate-limiting)\n - [Concurrent Connection Limiting](#concurrent-connection-limiting)\n - [Best Practices](#best-practices)\n- [Partial translation](#partial-translation)\n- [Specify source and target languages](#specify-source-and-target-languages)\n- [Translate wih exceptions](#translate-wih-exceptions)\n- [Custom prompt](#custom-prompt)\n- [Custom configuration](#custom-configuration)\n- [Skip clean](#skip-clean)\n- [Translation cache](#translation-cache)\n- [Deployment as a public services](#deployment-as-a-public-services)\n- [Authentication and welcome page](#authentication-and-welcome-page)\n- [Glossary Support](#glossary-support)\n", + "original_content": "- [Command Line Args](#command-line-args)\n- [Rate Limiting Configuration Guide](#rate-limiting-configuration-guide)\n- [Partial translation](#partial-translation)\n- [Specify source and target languages](#specify-source-and-target-languages)\n- [Translate wih exceptions](#translate-wih-exceptions)\n- [Custom prompt](#custom-prompt)\n- [Custom configuration](#custom-configuration)\n- [Skip clean](#skip-clean)\n- [Translation cache](#translation-cache)\n- [Deployment as a public services](#deployment-as-a-public-services)\n- [Authentication and welcome page](#authentication-and-welcome-page)\n- [Glossary Support](#glossary-support)\n", "start_line_no": 7, "translations": { - "zh": "- [命令行参数](#命令行参数)\n - [参数](#参数)\n - [GUI 参数](#gui-参数)\n- [速率限制配置指南](#速率限制配置指南)\n - [RPM(每分钟请求数)速率限制](#rpm 每分钟请求数速率限制)\n - [并发连接限制](#并发连接限制)\n - [最佳实践](#最佳实践)\n- [部分翻译](#部分翻译)\n- [指定源语言和目标语言](#指定源语言和目标语言)\n- [带例外的翻译](#带例外的翻译)\n- [自定义提示](#自定义提示)\n- [自定义配置](#自定义配置)\n- [跳过清理](#跳过清理)\n- [翻译缓存](#翻译缓存)\n- [部署为公共服务](#部署为公共服务)\n- [认证与欢迎页面](#认证与欢迎页面)\n- [术语表支持](#术语表支持)\n", - "zh_TW": "- [命令行參數](#命令行參數)\n - [參數](#參數)\n - [GUI 參數](#gui-參數)\n- [#### 速率限制配置指南](#####-速率限制配置指南)\n - [#### RPM(每分鐘請求數)速率限制](#####-rpm 每分鐘請求數速率限制)\n - [#### 並發連接限制](#####-並發連接限制)\n - [#### 最佳實踐](#####-最佳實踐)\n- [部分翻譯](#部分翻譯)\n- [指定源語言與目標語言](#指定源語言與目標語言)\n- [帶例外條件的翻譯](#帶例外條件的翻譯)\n- [自定義提示詞](#自定義提示詞)\n- [自定義配置](#自定義配置)\n- [跳過清理](#跳過清理)\n- [翻譯緩存](#翻譯緩存)\n- [部署為公共服務](#部署為公共服務)\n- [認證與歡迎頁面](#認證與歡迎頁面)\n- [術語表支援](#術語表支援)\n", - "fr": "- [Arguments de ligne de commande](#arguments-de-ligne-de-commande)\n - [Arguments](#arguments)\n - [Arguments GUI](#arguments-gui)\n- [Guide de configuration des limites de débit](#guide-de-configuration-des-limites-de-débit)\n - [Limitation du taux RPM (Requêtes Par Minute)](#limitation-du-taux-rpm-requêtes-par-minute)\n - [Limitation des connexions simultanées](#limitation-des-connexions-simultanées)\n - [Meilleures pratiques](#meilleures-pratiques)\n- [Traduction partielle](#traduction-partielle)\n- [Spécifier les langues source et cible](#spécifier-les-langues-source-et-cible)\n- [Traduction avec exceptions](#traduction-avec-exceptions)\n- [Invite personnalisée](#invite-personnalisée)\n- [Configuration personnalisée](#configuration-personnalisée)\n- [Ignorer le nettoyage](#ignorer-le-nettoyage)\n- [Cache de traduction](#cache-de-traduction)\n- [Déploiement en tant que service public](#déploiement-en-tant-que-service-public)\n- [Authentification et page d'accueil](#authentification-et-page-daccueil)\n- [Support du glossaire](#support-du-glossaire)\n", - "pt": "- [Argumentos da Linha de Comando](#argumentos-da-linha-de-comando)\n - [Argumentos](#argumentos)\n - [Argumentos da GUI](#argumentos-da-gui)\n- [#### Guia de Configuração de Limitação de Taxa](#guia-de-configuração-de-limitação-de-taxa)\n - [##### Limitação de Taxa RPM (Solicitações Por Minuto)](#limitação-de-taxa-rpm-solicitações-por-minuto)\n - [##### Limitação de Conexões Simultâneas](#limitação-de-conexões-simultâneas)\n - [##### Melhores práticas](#melhores-práticas)\n- [Tradução parcial](#tradução-parcial)\n- [Especificar idiomas de origem e destino](#especificar-idiomas-de-origem-e-destino)\n- [Tradução com exceções](#tradução-com-exceções)\n- [Prompt personalizado](#prompt-personalizado)\n- [Configuração personalizada](#configuração-personalizada)\n- [Pular limpeza](#pular-limpeza)\n- [Cache de tradução](#cache-de-tradução)\n- [Implantaçãocomo serviço público](#implantação-como-serviço-público)\n- [Autenticação e página de boas-vindas](#autenticação-e-página-de-boas-vindas)\n- [Suporte a glossário](#suporte-a-glossário)\n", - "ko": "- [명령줄 인수](#명령줄 - 인수)\n - [인수](#인수)\n - [GUI 인수](#gui-인수)\n- [속도 제한 구성 가이드](#속도 - 제한 - 구성 - 가이드)\n - [RPM (Requests Per Minute) 요청 속도 제한](#rpm-requests-per-minute-요청 - 속도 - 제한)\n - [동시 연결 제한](#동시 - 연결 - 제한)\n - [모범 사례](#모범 - 사례)\n- [부분 번역](#부분 - 번역)\n- [소스 및 대상 언어 지정](#소스 - 및 - 대상 - 언어 - 지정)\n- [예외와 함께 번역](#예외와 - 함께 - 번역)\n- [사용자 정의 프롬프트](#사용자 - 정의 - 프롬프트)\n- [사용자 정의 구성](#사용자 - 정의 - 구성)\n- [정리 건너뛰기](#정리 - 건너뛰기)\n- [번역 캐시](#번역 - 캐시)\n- [공개 서비스로 배포](#공개 - 서비스로 - 배포)\n- [인증 및 환영 페이지](#인증 - 및 - 환영 - 페이지)\n- [용어집 지원](#용어집 - 지원)\n", - "ja": "- [コマンドライン引数](#コマンドライン引数)\n - [引数](#引数)\n - [GUI 引数](#gui-引数)\n- [レート制限設定ガイド](#レート制限設定ガイド)\n - [RPM (リクエスト毎分) レート制限](#rpm-リクエスト毎分 - レート制限)\n - [同時接続制限](#同時接続制限)\n - [ベストプラクティス](#ベストプラクティス)\n- [部分翻訳](#部分翻訳)\n- [ソース言語とターゲット言語の指定](#ソース言語とターゲット言語の指定)\n- [例外付き翻訳](#例外付き翻訳)\n- [カスタムプロンプト](#カスタムプロンプト)\n- [カスタム設定](#カスタム設定)\n- [クリーニングのスキップ](#クリーニングのスキップ)\n- [翻訳キャッシュ](#翻訳キャッシュ)\n- [公開サービスとしてのデプロイ](#公開サービスとしてのデプロイ)\n- [認証とウェルカムページ](#認証とウェルカムページ)\n- [用語集サポート](#用語集サポート)\n", - "de": "- [Befehlszeilenargumente](#befehlszeilenargumente)\n - [Argumente](#argumente)\n - [GUI-Argumente](#gui-argumente)\n- [#### Anleitung zur Ratenbegrenzungskonfiguration](#anleitung-zur-ratenbegrenzungskonfiguration)\n - [#### RPM (Anfragen pro Minute) Ratenbegrenzung](#rpm-anfragen-pro-minute-ratenbegrenzung)\n - [#### Begrenzung gleichzeitiger Verbindungen](#begrenzung-gleichzeitiger-verbindungen)\n - [#### Best Practices](#best-practices)\n- [Partielle Übersetzung](#partielle-übersetzung)\n- [Quell- und Zielsprachen angeben](#quell--und-zielsprachen-angeben)\n- [Übersetzung mit Ausnahmen](#übersetzung-mit-ausnahmen)\n- [Benutzerdefinierte Eingabeaufforderung](#benutzerdefinierte-eingabeaufforderung)\n- [Benutzerdefinierte Konfiguration](#benutzerdefinierte-konfiguration)\n- [Bereinigung überspringen](#bereinigung-überspringen)\n- [Übersetzungscache](#übersetzungscache)\n- [Bereitstellung als öffentlicher Dienst](#bereitstellung-als-öffentlicher-dienst)\n- [Authentifizierung und Willkommensseite](#authentifizierung-und-willkommensseite)\n- [Glossarunterstützung](#glossarunterstützung)\n", - "es": "- [Argumentos de Línea de Comandos](#argumentos-de-línea-de-comandos)\n - [Argumentos](#argumentos)\n - [Argumentos de GUI](#argumentos-de-gui)\n- [#### Guía de Configuración de Límite de Tasa](#####-guía-de-configuración-de-límite-de-tasa)\n - [#### Limitación de tasa RPM (Solicitudes Por Minuto)](#####-limitación-de-tasa-rpm-solicitudes-por-minuto)\n - [#### Limitación de conexiones concurrentes](#####-limitación-de-conexiones-concurrentes)\n - [#### Mejores prácticas](#####-mejores-prácticas)\n- [Traducción parcial](#traducción-parcial)\n- [Especificar idiomas de origen y destino](#especificar-idiomas-de-origen-y-destino)\n- [Traducir con excepciones](#traducir-con-excepciones)\n- [Prompt personalizado](#prompt-personalizado)\n- [Configuración personalizada](#configuración-personalizada)\n- [Omitir limpieza](#omitir-limpieza)\n- [Caché de traducción](#caché-de-traducción)\n- [Despliegue como servicios públicos](#despliegue-como-servicios-públicos)\n- [Autenticación y página de bienvenida](#autenticación-y-página-de-bienvenida)\n- [Soporte de glosario](#soporte-de-glosario)\n", - "it": "- [Argomenti della riga di comando](#argomenti-della-riga-di-comando)\n - [Argomenti](#argomenti)\n - [Argomenti GUI](#argomenti-gui)\n- [#### Guida alla configurazione del limite di velocità](#guida-alla-configurazione-del-limite-di-velocità)\n - [#### Limitazione della velocità RPM (Richieste al minuto)](#limitazione-della-velocità-rpm-richieste-al-minuto)\n - [#### Limitazione delle connessioni simultanee](#limitazione-delle-connessioni-simultanee)\n - [#### Best Practices](#best-practices)\n- [Traduzione parziale](#traduzione-parziale)\n- [Specificare le lingue di origine e di destinazione](#specificare-le-lingue-di-origine-e-di-destinazione)\n- [Traduzione con eccezioni](#traduzione-con-eccezioni)\n- [Prompt personalizzato](#prompt-personalizzato)\n- [Configurazione personalizzata](#configurazione-personalizzata)\n- [Salta pulizia](#salta-pulizia)\n- [Cache di traduzione](#cache-di-traduzione)\n- [Distribuzione come servizi pubblici](#distribuzione-come-servizi-pubblici)\n- [Autenticazione e pagina di benvenuto](#autenticazione-e-pagina-di-benvenuto)\n- [Supporto glossario](#supporto-glossario)\n", - "ru": "- [Аргументы командной строки](#аргументы-командной-строки)\n - [Аргументы](#аргументы)\n - [Аргументы GUI](#аргументы-gui)\n- [#### Руководство по настройке ограничения скорости](#руководство-по-настройке-ограничения-скорости)\n - [##### Ограничение скорости RPM (запросов в минуту)](#ограничение-скорости-rpm-запросов-в-минуту)\n - [##### Ограничение количества одновременных подключений](#ограничение-количества-одновременных-подключений)\n - [##### Лучшие практики](#лучшие-практики)\n- [Частичный перевод](#частичный-перевод)\n- [Указание исходного и целевого языков](#указание-исходного-и-целевого-языков)\n- [Перевод с исключениями](#перевод-с-исключениями)\n- [Пользовательский промпт](#пользовательский-промпт)\n- [Пользовательская конфигурация](#пользовательская-конфигурация)\n- [Пропуск очистки](#пропуск-очистки)\n- [Кэш перевода](#кэш-перевода)\n- [Развертывание как публичный сервис](#развертывание-как-публичный-сервис)\n- [Аутентификация и приветственная страница](#аутентификация-и-приветственная-страница)\n- [Поддержка глоссария](#поддержка-глоссария)\n" + "zh": "- [命令行参数](#命令行参数)\n- [限流配置指南](#限流配置指南)\n- [部分翻译](#部分翻译)\n- [指定源语言和目标语言](#指定源语言和目标语言)\n- [带例外的翻译](#带例外的翻译)\n- [自定义提示词](#自定义提示词)\n- [自定义配置](#自定义配置)\n- [跳过清理](#跳过清理)\n- [翻译缓存](#翻译缓存)\n- [部署为公共服务](#部署为公共服务)\n- [认证与欢迎页](#认证与欢迎页)\n- [术语表支持](#术语表支持)\n", + "zh_TW": "- [命令行參數](#命令行參數)\n- [速率限制配置指南](#速率限制配置指南)\n- [部分翻譯](#部分翻譯)\n- [指定源語言與目標語言](#指定源語言與目標語言)\n- [帶例外條件的翻譯](#帶例外條件的翻譯)\n- [自定義提示詞](#自定義提示詞)\n- [自定義配置](#自定義配置)\n- [跳過清理](#跳過清理)\n- [翻譯緩存](#翻譯緩存)\n- [部署為公共服務](#部署為公共服務)\n- [認證與歡迎頁面](#認證與歡迎頁面)\n- [術語表支持](#術語表支持)\n", + "fr": "- [Arguments de ligne de commande](#arguments-de-ligne-de-commande)\n- [Guide de configuration de la limitation de débit](#guide-de-configuration-de-la-limitation-de-débit)\n- [Traduction partielle](#traduction-partielle)\n- [Spécifier les langues source et cible](#spécifier-les-langues-source-et-cible)\n- [Traduire avec exceptions](#traduire-avec-exceptions)\n- [Invite personnalisée](#invite-personnalisée)\n- [Configuration personnalisée](#configuration-personnalisée)\n- [Ignorer le nettoyage](#ignorer-le-nettoyage)\n- [Cache de traduction](#cache-de-traduction)\n- [Déploiement en tant que services publics](#déploiement-en-tant-que-services-publics)\n- [Authentification et page d'accueil](#authentification-et-page-daccueil)\n- [Support de glossaire](#support-de-glossaire)\n", + "ja": "- [コマンドライン引数](#コマンドライン引数)\n- [レート制限設定ガイド](#レート制限設定ガイド)\n- [部分翻訳](#部分翻訳)\n- [ソース言語とターゲット言語の指定](#ソース言語とターゲット言語の指定)\n- [例外付き翻訳](#例外付き翻訳)\n- [カスタムプロンプト](#カスタムプロンプト)\n- [カスタム設定](#カスタム設定)\n- [クリーン処理のスキップ](#クリーン処理のスキップ)\n- [翻訳キャッシュ](#翻訳キャッシュ)\n- [公開サービスとしてのデプロイ](#公開サービスとしてのデプロイ)\n- [認証とウェルカムページ](#認証とウェルカムページ)\n- [用語集サポート](#用語集サポート)\n", + "it": "- [Argomenti della riga di comando](#argomenti-della-riga-di-comando)\n- [Guida alla configurazione del rate limiting](#guida-alla-configurazione-del-rate-limiting)\n- [Traduzione parziale](#traduzione-parziale)\n- [Specificare le lingue di origine e di destinazione](#specificare-le-lingue-di-origine-e-di-destinazione)\n- [Tradurre con eccezioni](#tradurre-con-eccezioni)\n- [Prompt personalizzato](#prompt-personalizzato)\n- [Configurazione personalizzata](#configurazione-personalizzata)\n- [Salta la pulizia](#salta-la-pulizia)\n- [Cache delle traduzioni](#cache-delle-traduzioni)\n- [Distribuzione come servizi pubblici](#distribuzione-come-servizi-pubblici)\n- [Autenticazione e pagina di benvenuto](#autenticazione-e-pagina-di-benvenuto)\n- [Supporto per il glossario](#supporto-per-il-glossario)\n", + "pt": "- [Argumentos da Linha de Comando](#argumentos-da-linha-de-comando)\n- [Guia de Configuração de Limitação de Taxa](#guia-de-configuração-de-limitação-de-taxa)\n- [Tradução parcial](#tradução-parcial)\n- [Especificar idiomas de origem e destino](#especificar-idiomas-de-origem-e-destino)\n- [Traduzir com exceções](#traduzir-com-exceções)\n- [Prompt personalizado](#prompt-personalizado)\n- [Configuração personalizada](#configuração-personalizada)\n- [Pular limpeza](#pular-limpeza)\n- [Cache de tradução](#cache-de-tradução)\n- [Implantação como serviços públicos](#implantação-como-serviços-públicos)\n- [Autenticação e página de boas-vindas](#autenticação-e-página-de-boas-vindas)\n- [Suporte a Glossário](#suporte-a-glossário)\n", + "ru": "- [Аргументы командной строки](#аргументы-командной-строки)\n- [Руководство по настройке ограничения скорости](#руководство-по-настройке-ограничения-скорости)\n- [Частичный перевод](#частичный-перевод)\n- [Указание исходного и целевого языков](#указание-исходного-и-целевого-языков)\n- [Перевод с исключениями](#перевод-с-исключениями)\n- [Пользовательский промпт](#пользовательский-промпт)\n- [Пользовательская конфигурация](#пользовательская-конфигурация)\n- [Пропуск очистки](#пропуск-очистки)\n- [Кеширование перевода](#кеширование-перевода)\n- [Развертывание как публичный сервис](#развертывание-как-публичный-сервис)\n- [Аутентификация и приветственная страница](#аутентификация-и-приветственная-страница)\n- [Поддержка глоссария](#поддержка-глоссария)\n", + "ko": "- [명령줄 인수](#명령줄 - 인수)\n- [속도 제한 구성 가이드](#속도 - 제한 - 구성 - 가이드)\n- [부분 번역](#부분 - 번역)\n- [소스 및 대상 언어 지정](#소스 - 및 - 대상 - 언어 - 지정)\n- [예외와 함께 번역](#예외와 - 함께 - 번역)\n- [사용자 정의 프롬프트](#사용자 - 정의 - 프롬프트)\n- [사용자 정의 구성](#사용자 - 정의 - 구성)\n- [정리 건너뛰기](#정리 - 건너뛰기)\n- [번역 캐시](#번역 - 캐시)\n- [공용 서비스로 배포](#공용 - 서비스로 - 배포)\n- [인증 및 환영 페이지](#인증 - 및 - 환영 - 페이지)\n- [용어집 지원](#용어집 - 지원)\n", + "de": "- [Kommandozeilenargumente](#kommandozeilenargumente)\n- [Rate-Limiting-Konfigurationsleitfaden](#rate-limiting-konfigurationsleitfaden)\n- [Partielle Übersetzung](#partielle-übersetzung)\n- [Quell- und Zielsprachen angeben](#quell--und-zielsprachen-angeben)\n- [Übersetzung mit Ausnahmen](#übersetzung-mit-ausnahmen)\n- [Benutzerdefinierte Eingabeaufforderung](#benutzerdefinierte-eingabeaufforderung)\n- [Benutzerdefinierte Konfiguration](#benutzerdefinierte-konfiguration)\n- [Bereinigung überspringen](#bereinigung-überspringen)\n- [Übersetzungscache](#übersetzungscache)\n- [Bereitstellung als öffentlicher Dienst](#bereitstellung-als-öffentlicher-dienst)\n- [Authentifizierung und Willkommensseite](#authentifizierung-und-willkommensseite)\n- [Glossarunterstützung](#glossarunterstützung)\n", + "es": "- [Argumentos de línea de comandos](#argumentos-de-línea-de-comandos)\n- [Guía de configuración de límite de tasa](#guía-de-configuración-de-límite-de-tasa)\n- [Traducción parcial](#traducción-parcial)\n- [Especificar idiomas de origen y destino](#especificar-idiomas-de-origen-y-destino)\n- [Traducir con excepciones](#traducir-con-excepciones)\n- [Prompt personalizado](#prompt-personalizado)\n- [Configuración personalizada](#configuración-personalizada)\n- [Omitir limpieza](#omitir-limpieza)\n- [Caché de traducción](#caché-de-traducción)\n- [Despliegue como servicio público](#despliegue-como-servicio-público)\n- [Autenticación y página de bienvenida](#autenticación-y-página-de-bienvenida)\n- [Soporte de glosario](#soporte-de-glosario)\n" } }, { - "chunk_id": "h_rule_ac856836", + "chunk_id": "h_rule_0fe0f941", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 25, + "start_line_no": 20, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -96,7 +96,7 @@ "chunk_id": "chunk_3BF1A9B5", "chunk_type": "header", "original_content": "#### Command Line Args\n", - "start_line_no": 27, + "start_line_no": 22, "translations": { "zh_TW": "#### 命令行參數\n", "ja": "#### コマンドライン引数\n", @@ -114,7 +114,7 @@ "chunk_id": "chunk_A2860DDF", "chunk_type": "paragraph", "original_content": "Execute the translation command in the command line to generate the translated document `example-mono.pdf` and the bilingual document `example-dual.pdf` in the current working directory. Use Google as the default translation service. More support translation services can find [HERE](https://github.com/PDFMathTranslate/PDFMathTranslate-next/blob/main/docs/ADVANCED.md#services).\n", - "start_line_no": 29, + "start_line_no": 24, "translations": { "zh": "在命令行中执行翻译命令,在当前工作目录下生成翻译后的文档 `example-mono.pdf` 和双语文档 `example-dual.pdf`。默认使用 Google 作为翻译服务。更多支持的翻译服务可在 [HERE](https://github.com/PDFMathTranslate/PDFMathTranslate-next/blob/main/docs/ADVANCED.md#services) 找到。\n", "zh_TW": "在命令行中執行翻譯指令,於當前工作目錄下生成翻譯後的文檔 `example-mono.pdf` 與雙語文檔 `example-dual.pdf`。預設使用 Google 作為翻譯服務。更多支援的翻譯服務可查閱 [HERE](https://github.com/PDFMathTranslate/PDFMathTranslate-next/blob/main/docs/ADVANCED.md#services)。\n", @@ -132,7 +132,7 @@ "chunk_id": "chunk_B6CD1E39", "chunk_type": "image", "original_content": "\"cmd\"/\n", - "start_line_no": 31, + "start_line_no": 26, "translations": { "zh": "\"cmd\"/\n", "zh_TW": "\"cmd\"/\n", @@ -150,7 +150,7 @@ "chunk_id": "chunk_B3EB591F", "chunk_type": "paragraph", "original_content": "In the following table, we list all advanced options for reference:\n", - "start_line_no": 33, + "start_line_no": 28, "translations": { "ru": "В следующей таблице перечислены все расширенные параметры для справки:\n", "de": "In der folgenden Tabelle listen wir alle erweiterten Optionen zur Referenz auf:\n", @@ -168,7 +168,7 @@ "chunk_id": "chunk_A2A42E6B", "chunk_type": "header", "original_content": "##### Args\n", - "start_line_no": 35, + "start_line_no": 30, "translations": { "zh": "##### 参数\n", "zh_TW": "##### 參數\n", @@ -186,7 +186,7 @@ "chunk_id": "chunk_7A00EE21", "chunk_type": "longtable_head", "original_content": "| Option | Function | Example |\n| ------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |\n| `files` | Local PDF file path | `pdf2zh ~/local.pdf` |", - "start_line_no": 37, + "start_line_no": 32, "translations": { "zh": "| 选项 | 功能 | 示例 |\n| ------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |\n| `files` | 本地 `PDF` 文件路径 | `pdf2zh ~/local.pdf` |", "zh_TW": "| 選項 | 功能 | 範例 |\n| ------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |\n| `files` | 本地 `PDF` 文件路徑 | `pdf2zh ~/local.pdf` |", @@ -204,7 +204,7 @@ "chunk_id": "chunk_848B1EE1", "chunk_type": "longtable_content", "original_content": "| `links` | Online files | `pdf2zh http://arxiv.org/paper.pdf` |", - "start_line_no": 40, + "start_line_no": 35, "translations": { "zh": "| `链接` | 在线文件 | `pdf2zh http://arxiv.org/paper.pdf` |", "de": "| `links` | Online-Dateien | `pdf2zh http://arxiv.org/paper.pdf` |", @@ -222,7 +222,7 @@ "chunk_id": "chunk_8B4991D7", "chunk_type": "longtable_content", "original_content": "| `--output` | Output directory for files | `pdf2zh example.pdf --output /outputpath` |", - "start_line_no": 41, + "start_line_no": 36, "translations": { "zh": "| `--output` | 文件输出目录 | `pdf2zh example.pdf --output /outputpath` |", "ja": "| `--output` | ファイルの出力ディレクトリ | `pdf2zh example.pdf --output /outputpath` |", @@ -240,7 +240,7 @@ "chunk_id": "chunk_D7ED91EE", "chunk_type": "longtable_content", "original_content": "| `--` | Use [**specific service**](./Documentation-of-Translation-Services.md) for translation | `pdf2zh example.pdf --openai`
`pdf2zh example.pdf --deepseek` |", - "start_line_no": 42, + "start_line_no": 37, "translations": { "zh_TW": "| `--` | 使用 [**特定服務**](./Documentation-of-Translation-Services.md) 進行翻譯 | `pdf2zh example.pdf --openai`
`pdf2zh example.pdf --deepseek` |", "ru": "| `--` | Использовать [**определенный сервис**](./Documentation-of-Translation-Services.md) для перевода | `pdf2zh example.pdf --openai`
`pdf2zh example.pdf --deepseek` |", @@ -258,7 +258,7 @@ "chunk_id": "chunk_00AF4E48", "chunk_type": "longtable_content", "original_content": "| `--help`, `-h` | Show help message and exit | `pdf2zh -h` |", - "start_line_no": 43, + "start_line_no": 38, "translations": { "zh": "| `--help`, `-h` | 显示帮助信息并退出 | `pdf2zh -h` |", "de": "| `--help`, `-h` | Hilfe-Nachricht anzeigen und beenden | `pdf2zh -h` |", @@ -276,7 +276,7 @@ "chunk_id": "chunk_B0ABBFCE", "chunk_type": "longtable_content", "original_content": "| `--config-file` | Path to the configuration file | `pdf2zh --config-file /path/to/config/config.toml` |", - "start_line_no": 44, + "start_line_no": 39, "translations": { "fr": "| `--config-file` | Chemin vers le fichier de configuration | `pdf2zh --config-file /path/to/config/config.toml` |", "es": "| `--config-file` | Ruta al archivo de configuración | `pdf2zh --config-file /ruta/al/config/config.toml` |", @@ -294,7 +294,7 @@ "chunk_id": "chunk_634BA748", "chunk_type": "longtable_content", "original_content": "| `--report-interval` | Progress report interval in seconds | `pdf2zh example.pdf --report-interval 5` |", - "start_line_no": 45, + "start_line_no": 40, "translations": { "zh_TW": "| `--report-interval` | 進度報告間隔(秒) | `pdf2zh example.pdf --report-interval 5` |", "es": "| `--report-interval` | Intervalo de informe de progreso en segundos | `pdf2zh example.pdf --report-interval 5` |", @@ -312,7 +312,7 @@ "chunk_id": "chunk_46037BF6", "chunk_type": "longtable_content", "original_content": "| `--debug` | Use debug logging level | `pdf2zh example.pdf --debug` |", - "start_line_no": 46, + "start_line_no": 41, "translations": { "es": "| `--debug` | Usar nivel de registro de depuración | `pdf2zh example.pdf --debug` |", "ko": "| `--debug` | 디버그 로깅 레벨 사용 | `pdf2zh example.pdf --debug` |", @@ -330,7 +330,7 @@ "chunk_id": "chunk_18BA0512", "chunk_type": "longtable_content", "original_content": "| `--gui` | Interact with GUI | `pdf2zh --gui` |", - "start_line_no": 47, + "start_line_no": 42, "translations": { "ja": "| `--gui` | GUI と対話する | `pdf2zh --gui` |", "ko": "| `--gui` | GUI 와 상호 작용 | `pdf2zh --gui` |", @@ -348,7 +348,7 @@ "chunk_id": "chunk_0DA1F9CB", "chunk_type": "longtable_content", "original_content": "| `--warmup` | Only download and verify required assets then exit | `pdf2zh example.pdf --warmup` |", - "start_line_no": 48, + "start_line_no": 43, "translations": { "zh": "| `--warmup` | 仅下载并验证所需资源后退出 | `pdf2zh example.pdf --warmup` |", "fr": "| `--warmup` | Télécharge et vérifie uniquement les ressources requises puis quitte | `pdf2zh example.pdf --warmup` |", @@ -366,7 +366,7 @@ "chunk_id": "chunk_D380BDDD", "chunk_type": "longtable_content", "original_content": "| `--generate-offline-assets` | Generate offline assets package in the specified directory | `pdf2zh example.pdf --generate-offline-assets /path` |", - "start_line_no": 49, + "start_line_no": 44, "translations": { "zh": "| `--generate-offline-assets` | 在指定目录中生成离线资源包 | `pdf2zh example.pdf --generate-offline-assets /path` |", "ko": "| `--generate-offline-assets` | 지정된 디렉터리에 오프라인 자산 패키지 생성 | `pdf2zh example.pdf --generate-offline-assets /path` |", @@ -384,7 +384,7 @@ "chunk_id": "chunk_F5703109", "chunk_type": "longtable_content", "original_content": "| `--restore-offline-assets` | Restore offline assets package from the specified directory | `pdf2zh example.pdf --restore-offline-assets /path` |", - "start_line_no": 50, + "start_line_no": 45, "translations": { "zh": "| `--restore-offline-assets` | 从指定目录恢复离线资源包 | `pdf2zh example.pdf --restore-offline-assets /path` |", "zh_TW": "| `--restore-offline-assets` | 從指定目錄恢復離線資源包 | `pdf2zh example.pdf --restore-offline-assets /path` |", @@ -402,7 +402,7 @@ "chunk_id": "chunk_EB44345E", "chunk_type": "longtable_content", "original_content": "| `--version` | Show version then exit | `pdf2zh --version` |", - "start_line_no": 51, + "start_line_no": 46, "translations": { "zh_TW": "| `--version` | 顯示版本後退出 | `pdf2zh --version` |", "de": "| `--version` | Version anzeigen und beenden | `pdf2zh --version` |", @@ -420,7 +420,7 @@ "chunk_id": "chunk_AD6D96FE", "chunk_type": "longtable_content", "original_content": "| `--pages` | Partial document translation | `pdf2zh example.pdf --pages 1,2,1-,-3,3-5` |", - "start_line_no": 52, + "start_line_no": 47, "translations": { "zh_TW": "| `--pages` | 部分文件翻譯 | `pdf2zh example.pdf --pages 1,2,1-,-3,3-5` |", "es": "| `--pages` | Traducción parcial del documento | `pdf2zh example.pdf --pages 1,2,1-,-3,3-5` |", @@ -438,7 +438,7 @@ "chunk_id": "chunk_DB35B267", "chunk_type": "longtable_content", "original_content": "| `--lang-in` | The code of source language | `pdf2zh example.pdf --lang-in en` |", - "start_line_no": 53, + "start_line_no": 48, "translations": { "zh": "| `--lang-in` | 源语言的语言代码 | `pdf2zh example.pdf --lang-in en` |", "ja": "| `--lang-in` | ソース言語のコード | `pdf2zh example.pdf --lang-in en` |", @@ -456,7 +456,7 @@ "chunk_id": "chunk_CAF754AF", "chunk_type": "longtable_content", "original_content": "| `--lang-out` | The code of target language | `pdf2zh example.pdf --lang-out zh-CN` |", - "start_line_no": 54, + "start_line_no": 49, "translations": { "zh": "| `--lang-out` | 目标语言的语言代码 | `pdf2zh example.pdf --lang-out zh-CN` |", "ru": "| `--lang-out` | Код целевого языка | `pdf2zh example.pdf --lang-out zh-CN` |", @@ -474,7 +474,7 @@ "chunk_id": "chunk_2E1280AA", "chunk_type": "longtable_content", "original_content": "| `--min-text-length` | Minimum text length to translate | `pdf2zh example.pdf --min-text-length 5` |", - "start_line_no": 55, + "start_line_no": 50, "translations": { "zh_TW": "| `--min-text-length` | 最小文字長度以進行翻譯 | `pdf2zh example.pdf --min-text-length 5` |", "ja": "| `--min-text-length` | 翻訳する最小テキスト長 | `pdf2zh example.pdf --min-text-length 5` |", @@ -492,7 +492,7 @@ "chunk_id": "chunk_03902660", "chunk_type": "longtable_content", "original_content": "| `--rpc-doclayout` | RPC service host address for document layout analysis | |", - "start_line_no": 56, + "start_line_no": 51, "translations": { "zh": "| `--rpc-doclayout` | 用于文档布局分析的 RPC 服务主机地址 | |", "ja": "| `--rpc-doclayout` | ドキュメントレイアウト分析用の RPC サービスホストアドレス | |", @@ -510,7 +510,7 @@ "chunk_id": "chunk_D3C262BD", "chunk_type": "longtable_content", "original_content": "| `--qps` | QPS limit for translation service | `pdf2zh example.pdf --qps 200` |", - "start_line_no": 57, + "start_line_no": 52, "translations": { "zh_TW": "| `--qps` | 翻譯服務的 QPS 限制 | `pdf2zh example.pdf --qps 200` |", "ru": "| `--qps` | Лимит QPS для службы перевода | `pdf2zh example.pdf --qps 200` |", @@ -528,7 +528,7 @@ "chunk_id": "chunk_0F22CD53", "chunk_type": "longtable_content", "original_content": "| `--ignore-cache` | Ignore translation cache | `pdf2zh example.pdf --ignore-cache` |", - "start_line_no": 58, + "start_line_no": 53, "translations": { "zh": "| `--ignore-cache` | 忽略翻译缓存 | `pdf2zh example.pdf --ignore-cache` |", "zh_TW": "| `--ignore-cache` | 忽略翻譯快取 | `pdf2zh example.pdf --ignore-cache` |", @@ -546,7 +546,7 @@ "chunk_id": "chunk_ED6020AC", "chunk_type": "longtable_content", "original_content": "| `--custom-system-prompt` | Custom system prompt for translation. Used for `/no_think` in Qwen 3 | `pdf2zh example.pdf --custom-system-prompt \"/no_think You are a professional, authentic machine translation engine\"` |", - "start_line_no": 59, + "start_line_no": 54, "translations": { "ko": "| `--custom-system-prompt` | 번역을 위한 사용자 정의 시스템 프롬프트. Qwen 3 에서 `/no_think` 에 사용됨 | `pdf2zh example.pdf --custom-system-prompt \"/no_think You are a professional, authentic machine translation engine\"` |", "pt": "| `--custom-system-prompt` | Prompt personalizado do sistema para tradução. Usado para `/no_think` em Qwen 3 | `pdf2zh example.pdf --custom-system-prompt \"/no_think You are a professional, authentic machine translation engine\"` |", @@ -564,7 +564,7 @@ "chunk_id": "chunk_FC174A78", "chunk_type": "longtable_content", "original_content": "| `--pool-max-worker` | Maximum number of workers for translation pool. If not set, will use qps as the number of workers | `pdf2zh example.pdf --pool-max-worker 100` |", - "start_line_no": 60, + "start_line_no": 55, "translations": { "ja": "| `--pool-max-worker` | 翻訳プールの最大ワーカー数。設定されていない場合、qps をワーカー数として使用します | `pdf2zh example.pdf --pool-max-worker 100` |", "de": "| `--pool-max-worker` | Maximale Anzahl der Worker für den Übersetzungspool. Wenn nicht gesetzt, wird qps als Anzahl der Worker verwendet | `pdf2zh example.pdf --pool-max-worker 100` |", @@ -582,7 +582,7 @@ "chunk_id": "chunk_ED9DDA51", "chunk_type": "longtable_content", "original_content": "| `--no-auto-extract-glossary` | Disable auto extract glossary | `pdf2zh example.pdf --no-auto-extract-glossary` |", - "start_line_no": 61, + "start_line_no": 56, "translations": { "ja": "| `--no-auto-extract-glossary` | 用語集の自動抽出を無効にする | `pdf2zh example.pdf --no-auto-extract-glossary` |", "es": "| `--no-auto-extract-glossary` | Desactivar la extracción automática del glosario | `pdf2zh example.pdf --no-auto-extract-glossary` |", @@ -600,7 +600,7 @@ "chunk_id": "chunk_3A42A3F8", "chunk_type": "longtable_content", "original_content": "| `--primary-font-family` | Override primary font family for translated text. Choices: 'serif' for serif fonts, 'sans-serif' for sans-serif fonts, 'script' for script/italic fonts. If not specified, uses automatic font selection based on original text properties. | `pdf2zh example.pdf --primary-font-family serif` |", - "start_line_no": 62, + "start_line_no": 57, "translations": { "es": "| `--primary-font-family` | Anula la familia de fuentes principal para el texto traducido. Opciones: 'serif' para fuentes serif, 'sans-serif' para fuentes sans-serif, 'script' para fuentes script/cursivas. Si no se especifica, utiliza la selección automática de fuentes basada en las propiedades del texto original. | `pdf2zh example.pdf --primary-font-family serif` |", "pt": "| `--primary-font-family` | Substitui a família de fontes primária para o texto traduzido. Opções: 'serif' para fontes serifadas, 'sans-serif' para fontes sem serifa, 'script' para fontes script/itálicas. Se não especificado, usa seleção automática de fonte baseada nas propriedades do texto original. | `pdf2zh example.pdf --primary-font-family serif` |", @@ -618,7 +618,7 @@ "chunk_id": "chunk_D91FDBD2", "chunk_type": "longtable_content", "original_content": "| `--no-dual` | Do not output bilingual PDF files | `pdf2zh example.pdf --no-dual` |", - "start_line_no": 63, + "start_line_no": 58, "translations": { "zh_TW": "| `--no-dual` | 不輸出雙語 PDF 文件 | `pdf2zh example.pdf --no-dual` |", "es": "| `--no-dual` | No generar archivos PDF bilingües | `pdf2zh example.pdf --no-dual` |", @@ -636,7 +636,7 @@ "chunk_id": "chunk_BF3C03E7", "chunk_type": "longtable_content", "original_content": "| `--no-mono` | Do not output monolingual PDF files | `pdf2zh example.pdf --no-mono` |", - "start_line_no": 64, + "start_line_no": 59, "translations": { "zh": "| `--no-mono` | 不输出单语 PDF 文件 | `pdf2zh example.pdf --no-mono` |", "fr": "| `--no-mono` | Ne pas générer de fichiers PDF monolingues | `pdf2zh example.pdf --no-mono` |", @@ -654,7 +654,7 @@ "chunk_id": "chunk_D70705B4", "chunk_type": "longtable_content", "original_content": "| `--formular-font-pattern` | Font pattern to identify formula text | `pdf2zh example.pdf --formular-font-pattern \"(MS.*)\"` |", - "start_line_no": 65, + "start_line_no": 60, "translations": { "zh": "| `--formular-font-pattern` | 用于识别公式文本的字体模式 | `pdf2zh example.pdf --formular-font-pattern \"(MS.*)\"` |", "ru": "| `--formular-font-pattern` | Шаблон шрифта для идентификации текста формул | `pdf2zh example.pdf --formular-font-pattern \"(MS.*)\"` |", @@ -672,7 +672,7 @@ "chunk_id": "chunk_BC7944E0", "chunk_type": "longtable_content", "original_content": "| `--formular-char-pattern` | Character pattern to identify formula text | `pdf2zh example.pdf --formular-char-pattern \"(MS.*)\"` |", - "start_line_no": 66, + "start_line_no": 61, "translations": { "zh": "| `--formular-char-pattern` | 用于识别公式文本的字符模式 | `pdf2zh example.pdf --formular-char-pattern \"(MS.*)\"` |", "ru": "| `--formular-char-pattern` | Шаблон символов для идентификации текста формул | `pdf2zh example.pdf --formular-char-pattern \"(MS.*)\"` |", @@ -690,7 +690,7 @@ "chunk_id": "chunk_73F7BC27", "chunk_type": "longtable_content", "original_content": "| `--split-short-line` | Force split short line into different paragraphs | `pdf2zh example.pdf --split-short-line` |", - "start_line_no": 67, + "start_line_no": 62, "translations": { "zh_TW": "| `--split-short-line` | 強制將短行拆分為不同段落 | `pdf2zh example.pdf --split-short-line` |", "es": "| `--split-short-line` | Forzar la división de líneas cortas en diferentes párrafos | `pdf2zh example.pdf --split-short-line` |", @@ -708,7 +708,7 @@ "chunk_id": "chunk_17ED68F1", "chunk_type": "longtable_content", "original_content": "| `--short-line-split-factor` | Split threshold factor for short lines | |", - "start_line_no": 68, + "start_line_no": 63, "translations": { "zh_TW": "| `--short-line-split-factor` | 短行分割的閾值因子 | |", "ja": "| `--short-line-split-factor` | 短い行の分割閾値係数 | |", @@ -726,7 +726,7 @@ "chunk_id": "chunk_B4E886EC", "chunk_type": "longtable_content", "original_content": "| `--skip-clean` | Skip PDF cleaning step | `pdf2zh example.pdf --skip-clean` |", - "start_line_no": 69, + "start_line_no": 64, "translations": { "zh": "| `--skip-clean` | 跳过 PDF 清理步骤 | `pdf2zh example.pdf --skip-clean` |", "de": "| `--skip-clean` | PDF-Bereinigungsschritt überspringen | `pdf2zh example.pdf --skip-clean` |", @@ -744,7 +744,7 @@ "chunk_id": "chunk_857F16B2", "chunk_type": "longtable_content", "original_content": "| `--dual-translate-first` | 在双 PDF 模式下优先放置翻译页 | `pdf2zh example.pdf --dual-translate-first` |", - "start_line_no": 70, + "start_line_no": 65, "translations": { "zh": "| `--dual-translate-first` | 在双 PDF 模式下优先放置翻译页 | `pdf2zh example.pdf --dual-translate-first` |", "es": "| `--dual-translate-first` | En el modo de PDF dual, priorizar la colocación de páginas traducidas | `pdf2zh example.pdf --dual-translate-first` |", @@ -762,7 +762,7 @@ "chunk_id": "chunk_A04861D5", "chunk_type": "longtable_content", "original_content": "| `--disable-rich-text-translate` | Disable rich text translation | `pdf2zh example.pdf --disable-rich-text-translate` |", - "start_line_no": 71, + "start_line_no": 66, "translations": { "ru": "| `--disable-rich-text-translate` | Отключить перевод форматированного текста | `pdf2zh example.pdf --disable-rich-text-translate` |", "es": "| `--disable-rich-text-translate` | Deshabilitar la traducción de texto enriquecido | `pdf2zh example.pdf --disable-rich-text-translate` |", @@ -780,7 +780,7 @@ "chunk_id": "chunk_9D02F06D", "chunk_type": "longtable_content", "original_content": "| `--enhance-compatibility` | Enable all compatibility enhancement options | `pdf2zh example.pdf --enhance-compatibility` |", - "start_line_no": 72, + "start_line_no": 67, "translations": { "zh": "| `--enhance-compatibility` | 启用所有兼容性增强选项 | `pdf2zh example.pdf --enhance-compatibility` |", "ja": "| `--enhance-compatibility` | すべての互換性向上オプションを有効にする | `pdf2zh example.pdf --enhance-compatibility` |", @@ -798,7 +798,7 @@ "chunk_id": "chunk_7EC1028A", "chunk_type": "longtable_content", "original_content": "| `--use-alternating-pages-dual` | Use alternating pages mode for dual PDF | `pdf2zh example.pdf --use-alternating-pages-dual` |", - "start_line_no": 73, + "start_line_no": 68, "translations": { "it": "| `--use-alternating-pages-dual` | Utilizza la modalità pagine alternate per PDF duali | `pdf2zh example.pdf --use-alternating-pages-dual` |", "zh": "| `--use-alternating-pages-dual` | 为双栏 PDF 使用交替页面模式 | `pdf2zh example.pdf --use-alternating-pages-dual` |", @@ -816,7 +816,7 @@ "chunk_id": "chunk_D6BE0E79", "chunk_type": "longtable_content", "original_content": "| `--watermark-output-mode` | Watermark output mode for PDF files | `pdf2zh example.pdf --watermark-output-mode \"NoWaterMark\"` |", - "start_line_no": 74, + "start_line_no": 69, "translations": { "ko": "| `--watermark-output-mode` | PDF 파일의 워터마크 출력 모드 | `pdf2zh example.pdf --watermark-output-mode \"NoWaterMark\"` |", "zh_TW": "| `--watermark-output-mode` | PDF 文件的浮水印輸出模式 | `pdf2zh example.pdf --watermark-output-mode \"NoWaterMark\"` |", @@ -834,7 +834,7 @@ "chunk_id": "chunk_D63C027F", "chunk_type": "longtable_content", "original_content": "| `--max-pages-per-part` | Maximum pages per part for split translation | `pdf2zh example.pdf --max-pages-per-part 1` |", - "start_line_no": 75, + "start_line_no": 70, "translations": { "zh": "| `--max-pages-per-part` | 分块翻译时每部分的最大页数 | `pdf2zh example.pdf --max-pages-per-part 1` |", "es": "| `--max-pages-per-part` | Máximo de páginas por parte para traducción dividida | `pdf2zh example.pdf --max-pages-per-part 1` |", @@ -852,7 +852,7 @@ "chunk_id": "chunk_3F10F28E", "chunk_type": "longtable_content", "original_content": "| `--translate-table-text` | Translate table text (experimental) | `pdf2zh example.pdf --translate-table-text` |", - "start_line_no": 76, + "start_line_no": 71, "translations": { "es": "| `--translate-table-text` | Traducir texto de tablas (experimental) | `pdf2zh example.pdf --translate-table-text` |", "ko": "| `--translate-table-text` | 테이블 텍스트 번역 (실험적 기능) | `pdf2zh example.pdf --translate-table-text` |", @@ -870,7 +870,7 @@ "chunk_id": "chunk_8BCCD462", "chunk_type": "longtable_content", "original_content": "| `--skip-scanned-detection` | Skip scanned detection | `pdf2zh example.pdf --skip-scanned-detection` |", - "start_line_no": 77, + "start_line_no": 72, "translations": { "zh": "| `--skip-scanned-detection` | 跳过扫描检测 | `pdf2zh example.pdf --skip-scanned-detection` |", "ja": "| `--skip-scanned-detection` | スキャンされた検出をスキップ | `pdf2zh example.pdf --skip-scanned-detection` |", @@ -888,7 +888,7 @@ "chunk_id": "chunk_75518F89", "chunk_type": "longtable_content", "original_content": "| `--ocr-workaround` | Force translated text to be black and add white background | `pdf2zh example.pdf --ocr-workaround` |", - "start_line_no": 78, + "start_line_no": 73, "translations": { "zh_TW": "| `--ocr-workaround` | 強制將翻譯文字設為黑色並添加白色背景 | `pdf2zh example.pdf --ocr-workaround` |", "ru": "| `--ocr-workaround` | Принудительно сделать переведенный текст черным и добавить белый фон | `pdf2zh example.pdf --ocr-workaround` |", @@ -906,7 +906,7 @@ "chunk_id": "chunk_E4BD664E", "chunk_type": "longtable_content", "original_content": "| `--auto-enable-ocr-workaround` | Enable automatic OCR workaround. If a document is detected as heavily scanned, this will attempt to enable OCR processing and skip further scan detection. See documentation for details. (default: False) | `pdf2zh example.pdf --auto-enable-ocr-workaround True` |", - "start_line_no": 79, + "start_line_no": 74, "translations": { "zh_TW": "| `--auto-enable-ocr-workaround` | 啟用自動 OCR 解決方案。若檢測到文件為重度掃描文件,將嘗試啟用 OCR 處理並跳過後續掃描檢測。詳情請參閱文檔。(預設值:False) | `pdf2zh example.pdf --auto-enable-ocr-workaround True` |", "it": "| `--auto-enable-ocr-workaround` | Abilita la soluzione automatica OCR. Se un documento viene rilevato come pesantemente scansionato, questo tenterà di abilitare l'elaborazione OCR e salterà ulteriori rilevamenti di scansione. Consultare la documentazione per i dettagli. (predefinito: False) | `pdf2zh example.pdf --auto-enable-ocr-workaround True` |", @@ -924,7 +924,7 @@ "chunk_id": "chunk_6803D13A", "chunk_type": "longtable_content", "original_content": "| `--only-include-translated-page`| Only include translated pages in the output PDF. Effective only when --pages is used. | `pdf2zh example.pdf --pages 1-5 --only-include-translated-page` |", - "start_line_no": 80, + "start_line_no": 75, "translations": { "zh": "| `--only-include-translated-page` | 仅在输出 PDF 中包含已翻译的页面。仅在使用了 `--pages` 参数时生效。 | `pdf2zh example.pdf --pages 1-5 --only-include-translated-page` |", "zh_TW": "| `--only-include-translated-page` | 僅在輸出 PDF 中包含已翻譯的頁面。僅在使用 `--pages` 參數時有效。 | `pdf2zh example.pdf --pages 1-5 --only-include-translated-page` |", @@ -942,7 +942,7 @@ "chunk_id": "chunk_1E404081", "chunk_type": "longtable_content", "original_content": "| `--glossaries` | Custom glossary for translation. | `pdf2zh example.pdf --glossaries \"glossary1.csv,glossary2.csv,glossary3.csv\"` |", - "start_line_no": 81, + "start_line_no": 76, "translations": { "es": "| `--glossaries` | Glosario personalizado para traducción. | `pdf2zh example.pdf --glossaries \"glossary1.csv,glossary2.csv,glossary3.csv\"` |", "it": "| `--glossaries` | Glossario personalizzato per la traduzione. | `pdf2zh example.pdf --glossaries \"glossary1.csv,glossary2.csv,glossary3.csv\"` |", @@ -960,7 +960,7 @@ "chunk_id": "chunk_1B83C5B9", "chunk_type": "longtable_content", "original_content": "| `--save-auto-extracted-glossary`| save automatically extracted glossary. | `pdf2zh example.pdf --save-auto-extracted-glossary` |", - "start_line_no": 82, + "start_line_no": 77, "translations": { "zh_TW": "| `--save-auto-extracted-glossary`| 保存自動提取的詞彙表。 | `pdf2zh example.pdf --save-auto-extracted-glossary` |", "pt": "| `--save-auto-extracted-glossary`| salvar o glossário extraído automaticamente. | `pdf2zh example.pdf --save-auto-extracted-glossary` |", @@ -978,7 +978,7 @@ "chunk_id": "chunk_CE6D9EA3", "chunk_type": "longtable_content", "original_content": "| `--no-merge-alternating-line-numbers` | Disable merging of alternating line numbers and text paragraphs in documents with line numbers | `pdf2zh example.pdf --no-merge-alternating-line-numbers` |", - "start_line_no": 83, + "start_line_no": 78, "translations": { "ru": "| `--no-merge-alternating-line-numbers` | Отключить объединение чередующихся номеров строк и текстовых абзацев в документах с номерами строк | `pdf2zh example.pdf --no-merge-alternating-line-numbers` |", "es": "| `--no-merge-alternating-line-numbers` | Desactiva la fusión de números de línea alternos y párrafos de texto en documentos con números de línea | `pdf2zh example.pdf --no-merge-alternating-line-numbers` |", @@ -996,7 +996,7 @@ "chunk_id": "chunk_6ADE00C8", "chunk_type": "longtable_content", "original_content": "| `--no-remove-non-formula-lines` | Disable removal of non-formula lines within paragraph areas | `pdf2zh example.pdf --no-remove-non-formula-lines` |", - "start_line_no": 84, + "start_line_no": 79, "translations": { "fr": "| `--no-remove-non-formula-lines` | Désactive la suppression des lignes non-formules dans les zones de paragraphe | `pdf2zh example.pdf --no-remove-non-formula-lines` |", "ja": "| `--no-remove-non-formula-lines` | 段落エリア内の非数式行の削除を無効化 | `pdf2zh example.pdf --no-remove-non-formula-lines` |", @@ -1014,7 +1014,7 @@ "chunk_id": "chunk_2525055D", "chunk_type": "longtable_content", "original_content": "| `--non-formula-line-iou-threshold` | Set IoU threshold for identifying non-formula lines (0.0-1.0) | `pdf2zh example.pdf --non-formula-line-iou-threshold 0.85` |", - "start_line_no": 85, + "start_line_no": 80, "translations": { "de": "| `--non-formula-line-iou-threshold` | Setze den IoU-Schwellenwert für die Identifizierung von Nicht-Formel-Zeilen (0.0-1.0) | `pdf2zh example.pdf --non-formula-line-iou-threshold 0.85` |", "ja": "| `--non-formula-line-iou-threshold` | 非数式行を識別するための IoU 閾値を設定 (0.0-1.0) | `pdf2zh example.pdf --non-formula-line-iou-threshold 0.85` |", @@ -1032,7 +1032,7 @@ "chunk_id": "chunk_6ACD14AF", "chunk_type": "longtable_content", "original_content": "| `--figure-table-protection-threshold` | Set protection threshold for figures and tables (0.0-1.0). Lines within figures/tables will not be processed | `pdf2zh example.pdf --figure-table-protection-threshold 0.95` |", - "start_line_no": 86, + "start_line_no": 81, "translations": { "zh_TW": "| `--figure-table-protection-threshold` | 設定圖表和表格的保護閾值 (0.0-1.0)。圖表/表格內的線條將不會被處理 | `pdf2zh example.pdf --figure-table-protection-threshold 0.95` |", "ja": "| `--figure-table-protection-threshold` | 図表の保護閾値を設定(0.0-1.0)。図表内の行は処理されません | `pdf2zh example.pdf --figure-table-protection-threshold 0.95` |", @@ -1050,7 +1050,7 @@ "chunk_id": "chunk_1DE32F1F", "chunk_type": "longtable_content", "original_content": "| `--skip-formula-offset-calculation` | Skip formula offset calculation during processing | `pdf2zh example.pdf --skip-formula-offset-calculation` |\n\n", - "start_line_no": 87, + "start_line_no": 82, "translations": { "it": "| `--skip-formula-offset-calculation` | Salta il calcolo dell'offset della formula durante l'elaborazione | `pdf2zh example.pdf --skip-formula-offset-calculation` |\n\n", "fr": "| `--skip-formula-offset-calculation` | Ignorer le calcul du décalage des formules pendant le traitement | `pdf2zh example.pdf --skip-formula-offset-calculation` |\n\n", @@ -1068,7 +1068,7 @@ "chunk_id": "chunk_140EFE95", "chunk_type": "header", "original_content": "##### GUI Args\n", - "start_line_no": 90, + "start_line_no": 85, "translations": { "zh_TW": "##### 圖形界面參數\n", "zh": "##### GUI 参数\n", @@ -1086,7 +1086,7 @@ "chunk_id": "chunk_2D086D22", "chunk_type": "longtable_head", "original_content": "| Option | Function | Example |\n| ------------------------------- | -------------------------------------- | ----------------------------------------------- |\n| `--share` | Enable sharing mode | `pdf2zh --gui --share` |", - "start_line_no": 92, + "start_line_no": 87, "translations": { "ru": "| Опция | Функция | Пример |\n| ------------------------------- | -------------------------------------- | ----------------------------------------------- |\n| `--share` | Включить режим общего доступа | `pdf2zh --gui --share` |", "zh": "| 选项 | 功能 | 示例 |\n| ------------------------------- | -------------------------------------- | ----------------------------------------------- |\n| `--share` | 启用共享模式 | `pdf2zh --gui --share` |", @@ -1104,7 +1104,7 @@ "chunk_id": "chunk_927CDC03", "chunk_type": "longtable_content", "original_content": "| `--auth-file` | Path to the authentication file | `pdf2zh --gui --auth-file /path` |", - "start_line_no": 95, + "start_line_no": 90, "translations": { "ko": "| `--auth-file` | 인증 파일 경로 | `pdf2zh --gui --auth-file /path` |", "it": "| `--auth-file` | Percorso del file di autenticazione | `pdf2zh --gui --auth-file /percorso` |", @@ -1122,7 +1122,7 @@ "chunk_id": "chunk_951E61B3", "chunk_type": "longtable_content", "original_content": "| `--welcome-page` | Path to the welcome html file | `pdf2zh --gui --welcome-page /path` |", - "start_line_no": 96, + "start_line_no": 91, "translations": { "ja": "| `--welcome-page` | ウェルカム HTML ファイルのパス | `pdf2zh --gui --welcome-page /path` |", "ru": "| `--welcome-page` | Путь к HTML-файлу приветственной страницы | `pdf2zh --gui --welcome-page /path` |", @@ -1140,7 +1140,7 @@ "chunk_id": "chunk_A9F2F2FE", "chunk_type": "longtable_content", "original_content": "| `--enabled-services` | Enabled translation services | `pdf2zh --gui --enabled-services \"Bing,OpenAI\"` |", - "start_line_no": 97, + "start_line_no": 92, "translations": { "zh": "| `--enabled-services` | 启用的翻译服务 | `pdf2zh --gui --enabled-services \"Bing,OpenAI\"` |", "ru": "| `--enabled-services` | Включенные службы перевода | `pdf2zh --gui --enabled-services \"Bing,OpenAI\"` |", @@ -1158,7 +1158,7 @@ "chunk_id": "chunk_2C863550", "chunk_type": "longtable_content", "original_content": "| `--disable-gui-sensitive-input` | Disable GUI sensitive input | `pdf2zh --gui --disable-gui-sensitive-input` |", - "start_line_no": 98, + "start_line_no": 93, "translations": { "zh": "| `--disable-gui-sensitive-input` | 禁用 GUI 敏感输入 | `pdf2zh --gui --disable-gui-sensitive-input` |", "zh_TW": "| `--disable-gui-sensitive-input` | 禁用圖形界面敏感輸入 | `pdf2zh --gui --disable-gui-sensitive-input` |", @@ -1176,7 +1176,7 @@ "chunk_id": "chunk_0598D53D", "chunk_type": "longtable_content", "original_content": "| `--disable-config-auto-save` | Disable automatic configuration saving | `pdf2zh --gui --disable-config-auto-save` |", - "start_line_no": 99, + "start_line_no": 94, "translations": { "zh_TW": "| `--disable-config-auto-save` | 禁用自動配置儲存 | `pdf2zh --gui --disable-config-auto-save` |", "zh": "| `--disable-config-auto-save` | 禁用自动保存配置 | `pdf2zh --gui --disable-config-auto-save` |", @@ -1194,7 +1194,7 @@ "chunk_id": "chunk_99D3B3A8", "chunk_type": "longtable_content", "original_content": "| `--server-port` | WebUI Port | `pdf2zh --gui --server-port 7860` |\n", - "start_line_no": 100, + "start_line_no": 95, "translations": { "zh": "| `--server-port` | WebUI 端口 | `pdf2zh --gui --server-port 7860` |\n", "es": "| `--server-port` | Puerto de WebUI | `pdf2zh --gui --server-port 7860` |\n", @@ -1212,7 +1212,7 @@ "chunk_id": "chunk_F1B6ECA2", "chunk_type": "paragraph", "original_content": "[⬆️ Back to top](#toc)\n", - "start_line_no": 416, + "start_line_no": 411, "translations": { "zh": "[⬆️ 返回顶部](#目录)\n", "ja": "[⬆️ トップに戻る](#toc)\n", @@ -1227,10 +1227,10 @@ } }, { - "chunk_id": "h_rule_2e907fc9", + "chunk_id": "h_rule_a29d8049", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 104, + "start_line_no": 99, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -1248,7 +1248,7 @@ "chunk_id": "chunk_E0DC0651", "chunk_type": "header", "original_content": "#### Rate Limiting Configuration Guide\n", - "start_line_no": 106, + "start_line_no": 101, "translations": { "ko": "#### 속도 제한 구성 가이드\n", "de": "#### Anleitung zur Ratenbegrenzungskonfiguration\n", @@ -1266,7 +1266,7 @@ "chunk_id": "chunk_23D405EC", "chunk_type": "paragraph", "original_content": "When using translation services, proper rate limiting configuration is crucial to avoid API errors and optimize performance. This guide explains how to configure `--qps` and `--pool-max-worker` parameters based on different upstream service limitations.\n", - "start_line_no": 108, + "start_line_no": 103, "translations": { "zh": "在使用翻译服务时,合理的速率限制配置对于避免 API 错误和优化性能至关重要。本指南将根据不同的上游服务限制,讲解如何配置 `--qps` 和 `--pool-max-worker` 参数。\n", "fr": "Lors de l'utilisation des services de traduction, une configuration appropriée des limites de débit est cruciale pour éviter les erreurs d'API et optimiser les performances. Ce guide explique comment configurer les paramètres `--qps` et `--pool-max-worker` en fonction des différentes limitations des services en amont.\n", @@ -1284,7 +1284,7 @@ "chunk_id": "chunk_742CD289", "chunk_type": "blockquote", "original_content": "> [!TIP]\n>\n> It is recommended that the pool_size does not exceed 1000. If the pool_size calculated by the following method exceeds 1000, please use 1000.\n", - "start_line_no": 110, + "start_line_no": 105, "translations": { "pt": "> [!TIP]\n>\n> É recomendado que o `pool_size` não exceda 1000. Se o `pool_size` calculado pelo método a seguir exceder 1000, por favor, use 1000.\n", "de": "> [!TIP]\n>\n> Es wird empfohlen, dass die pool_size 1000 nicht überschreitet. Wenn die nach folgender Methode berechnete pool_size 1000 überschreitet, verwenden Sie bitte 1000.\n", @@ -1302,7 +1302,7 @@ "chunk_id": "chunk_F9E5B2E2", "chunk_type": "header", "original_content": "##### RPM (Requests Per Minute) Rate Limiting\n", - "start_line_no": 114, + "start_line_no": 109, "translations": { "ja": "##### RPM (リクエスト毎分) レート制限\n", "ko": "##### RPM (Requests Per Minute) 요청 속도 제한\n", @@ -1320,7 +1320,7 @@ "chunk_id": "chunk_CDE1A5D3", "chunk_type": "paragraph", "original_content": "When the upstream service has RPM limitations, use the following calculation:\n\n**Calculation Formula:**", - "start_line_no": 116, + "start_line_no": 111, "translations": { "zh": "当上游服务有 RPM 限制时,使用以下计算方式:\n\n**计算公式:**", "ja": "上流サービスに RPM 制限がある場合、以下の計算式を使用します:\n\n**計算式:**", @@ -1338,7 +1338,7 @@ "chunk_id": "chunk_D293CCA3", "chunk_type": "list", "original_content": "- `qps = floor(rpm / 60)`\n- `pool_size = qps * 10`\n", - "start_line_no": 119, + "start_line_no": 114, "translations": { "fr": "- `qps = floor(rpm / 60)`\n- `pool_size = qps * 10`\n", "zh": "- `qps = floor(rpm / 60)`\n- `pool_size = qps * 10`\n", @@ -1356,7 +1356,7 @@ "chunk_id": "chunk_1C383BEE", "chunk_type": "blockquote", "original_content": "> [!NOTE]\n> The factor of 10 is an empirical coefficient that generally works well for most scenarios.\n", - "start_line_no": 122, + "start_line_no": 117, "translations": { "ko": "> [!NOTE]\n> 10 이라는 계수는 대부분의 시나리오에서 잘 작동하는 경험적 계수입니다.\n", "ja": "> [!NOTE]\n> 10 という係数は、ほとんどのシナリオでうまく機能する経験的な係数です。\n", @@ -1374,7 +1374,7 @@ "chunk_id": "chunk_AB49073F", "chunk_type": "paragraph", "original_content": "**Example:**\nIf your translation service has a limit of 600 RPM:", - "start_line_no": 125, + "start_line_no": 120, "translations": { "es": "**Ejemplo:**\nSi tu servicio de traducción tiene un límite de 600 RPM:", "zh": "**示例:**\n如果您的翻译服务限制为 600 RPM:", @@ -1392,7 +1392,7 @@ "chunk_id": "chunk_131B05E6", "chunk_type": "list", "original_content": "- `qps = floor(600 / 60) = 10`\n- `pool_size = 10 * 10 = 100`\n", - "start_line_no": 127, + "start_line_no": 122, "translations": { "zh_TW": "- `qps = floor(600 / 60) = 10`\n- `pool_size = 10 * 10 = 100`\n", "pt": "- `qps = floor(600 / 60) = 10`\n- `pool_size = 10 * 10 = 100`\n", @@ -1410,7 +1410,7 @@ "chunk_id": "chunk_D4EF62BC", "chunk_type": "code_block", "original_content": "```bash\npdf2zh example.pdf --qps 10 --pool-max-worker 100\n```\n", - "start_line_no": 130, + "start_line_no": 125, "translations": { "zh": "```bash\npdf2zh example.pdf --qps 10 --pool-max-worker 100\n```\n", "zh_TW": "```bash\npdf2zh example.pdf --qps 10 --pool-max-worker 100\n```\n", @@ -1428,7 +1428,7 @@ "chunk_id": "chunk_C7673CDB", "chunk_type": "header", "original_content": "##### Concurrent Connection Limiting\n", - "start_line_no": 134, + "start_line_no": 129, "translations": { "fr": "##### Limitation des connexions simultanées\n", "de": "##### Begrenzung gleichzeitiger Verbindungen\n", @@ -1446,7 +1446,7 @@ "chunk_id": "chunk_62AE5A6C", "chunk_type": "paragraph", "original_content": "When the upstream service has concurrent connection limitations (like GLM official service), use this approach:\n\n**Calculation Formula:**", - "start_line_no": 136, + "start_line_no": 131, "translations": { "zh_TW": "當上游服務有並發連接限制(如 GLM 官方服務)時,使用此方法:\n\n**計算公式:**", "es": "Cuando el servicio ascendente tiene limitaciones de conexiones concurrentes (como el servicio oficial de GLM), utiliza este enfoque:\n\n**Fórmula de cálculo:**", @@ -1464,7 +1464,7 @@ "chunk_id": "chunk_B095EF50", "chunk_type": "list", "original_content": "- `pool_size = max(floor(0.9 * official_concurrent_limit), official_concurrent_limit - 20)`\n- `qps = pool_size`\n", - "start_line_no": 139, + "start_line_no": 134, "translations": { "ko": "- `pool_size = max(floor(0.9 * official_concurrent_limit), official_concurrent_limit - 20)`\n- `qps = pool_size`\n", "fr": "- `pool_size = max(floor(0.9 * official_concurrent_limit), official_concurrent_limit - 20)`\n- `qps = pool_size`\n", @@ -1482,7 +1482,7 @@ "chunk_id": "chunk_1616A330", "chunk_type": "paragraph", "original_content": "**Example:**\nIf your translation service allows 50 concurrent connections:", - "start_line_no": 142, + "start_line_no": 137, "translations": { "zh_TW": "**範例:**\n若您的翻譯服務允許 50 個並發連接:", "es": "**Ejemplo:**\nSi tu servicio de traducción permite 50 conexiones concurrentes:", @@ -1500,7 +1500,7 @@ "chunk_id": "chunk_1D19FB94", "chunk_type": "list", "original_content": "- `pool_size = max(floor(0.9 * 50), 50 - 20) = max(45, 30) = 45`\n- `qps = 45`\n", - "start_line_no": 144, + "start_line_no": 139, "translations": { "zh": "- `pool_size = max(floor(0.9 * 50), 50 - 20) = max(45, 30) = 45`\n- `qps = 45`\n", "ja": "- `pool_size = max(floor(0.9 * 50), 50 - 20) = max(45, 30) = 45`\n- `qps = 45`\n", @@ -1518,7 +1518,7 @@ "chunk_id": "chunk_DB872698", "chunk_type": "code_block", "original_content": "```bash\npdf2zh example.pdf --qps 45 --pool-max-worker 45\n```\n", - "start_line_no": 147, + "start_line_no": 142, "translations": { "zh": "```bash\npdf2zh example.pdf --qps 45 --pool-max-worker 45\n```\n", "zh_TW": "```bash\npdf2zh example.pdf --qps 45 --pool-max-worker 45\n```\n", @@ -1536,7 +1536,7 @@ "chunk_id": "chunk_4C0D79DD", "chunk_type": "header", "original_content": "##### Best Practices\n", - "start_line_no": 151, + "start_line_no": 146, "translations": { "de": "##### Best Practices\n", "ko": "##### 모범 사례\n", @@ -1554,7 +1554,7 @@ "chunk_id": "chunk_60A6D664", "chunk_type": "blockquote", "original_content": "> [!TIP]\n> - Always start with conservative values and gradually increase if needed\n> - Monitor your service's response times and error rates\n> - Different services may require different optimization strategies\n> - Consider your specific use case and document size when setting these parameters\n\n", - "start_line_no": 153, + "start_line_no": 148, "translations": { "zh": "> [!TIP]\n> - 始终从保守值开始,必要时逐步增加\n> - 监控服务的响应时间和错误率\n> - 不同服务可能需要不同的优化策略\n> - 设置这些参数时,请考虑您的具体用例和文档大小\n\n", "zh_TW": "> [!TIP]\n> - 始終從保守值開始,並根據需要逐步增加\n> - 監控服務的響應時間和錯誤率\n> - 不同的服務可能需要不同的優化策略\n> - 設置這些參數時,請考慮您的具體使用案例和文件大小\n\n", @@ -1569,10 +1569,10 @@ } }, { - "chunk_id": "h_rule_44bdc99b", + "chunk_id": "h_rule_722c0d79", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 162, + "start_line_no": 157, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -1590,7 +1590,7 @@ "chunk_id": "chunk_ADC018D0", "chunk_type": "header", "original_content": "#### Partial translation\n", - "start_line_no": 164, + "start_line_no": 159, "translations": { "zh_TW": "#### 部分翻譯\n", "ru": "#### Частичный перевод\n", @@ -1608,7 +1608,7 @@ "chunk_id": "chunk_A7D2451C", "chunk_type": "paragraph", "original_content": "Use the `--pages` parameter to translate a portion of a document.\n", - "start_line_no": 166, + "start_line_no": 161, "translations": { "zh": "使用 `--pages` 参数翻译文档的一部分。\n", "ru": "Используйте параметр `--pages` для перевода части документа.\n", @@ -1626,7 +1626,7 @@ "chunk_id": "chunk_C04AFE09", "chunk_type": "list", "original_content": "- If the page numbers are consecutive, you can write it like this:\n", - "start_line_no": 168, + "start_line_no": 163, "translations": { "zh_TW": "- 如果頁碼是連續的,可以這樣寫:\n", "ko": "- 페이지 번호가 연속적인 경우 다음과 같이 작성할 수 있습니다:\n", @@ -1644,7 +1644,7 @@ "chunk_id": "chunk_037196E3", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next example.pdf --pages 1-3\n```\n", - "start_line_no": 170, + "start_line_no": 165, "translations": { "zh": "```bash\npdf2zh_next example.pdf --pages 1-3\n```\n", "zh_TW": "```bash\npdf2zh_next example.pdf --pages 1-3\n```\n", @@ -1662,7 +1662,7 @@ "chunk_id": "chunk_02CC256B", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next example.pdf --pages 25-\n```\n", - "start_line_no": 174, + "start_line_no": 169, "translations": { "zh": "```bash\npdf2zh_next example.pdf --pages 25-\n```\n", "zh_TW": "```bash\npdf2zh_next example.pdf --pages 25-\n```\n", @@ -1680,7 +1680,7 @@ "chunk_id": "chunk_773EEC89", "chunk_type": "blockquote", "original_content": "> [!TIP]\n> `25-` includes all pages after page 25. If your document has 100 pages, this is equivalent to `25-100`.\n> \n> Similarly, `-25` includes all pages before page 25, which is equivalent to `1-25`.\n", - "start_line_no": 178, + "start_line_no": 173, "translations": { "ru": "> [!TIP]\n> `25-` включает все страницы после 25-й. Если ваш документ содержит 100 страниц, это эквивалентно `25-100`.\n> \n> Аналогично, `-25` включает все страницы до 25-й, что эквивалентно `1-25`.\n", "zh_TW": "> [!TIP]\n> `25-` 包含第 25 頁之後的所有頁面。如果您的文件有 100 頁,這等同於 `25-100`。\n> \n> 同理,`-25` 包含第 25 頁之前的所有頁面,等同於 `1-25`。\n", @@ -1698,7 +1698,7 @@ "chunk_id": "chunk_1A89F075", "chunk_type": "list", "original_content": "- If the pages are not consecutive, you can use a comma `,` to separate them.\n", - "start_line_no": 183, + "start_line_no": 178, "translations": { "ko": "- 페이지가 연속적이지 않은 경우 쉼표 `,` 를 사용하여 구분할 수 있습니다.\n", "fr": "- Si les pages ne sont pas consécutives, vous pouvez utiliser une virgule `,` pour les séparer.\n", @@ -1716,7 +1716,7 @@ "chunk_id": "chunk_046E7E79", "chunk_type": "paragraph", "original_content": "For example, if you want to translate the first and third pages, you can use the following command:\n", - "start_line_no": 185, + "start_line_no": 180, "translations": { "zh": "例如,如果你想翻译第一页和第三页,可以使用以下命令:\n", "es": "Por ejemplo, si deseas traducir la primera y tercera página, puedes usar el siguiente comando:\n", @@ -1734,7 +1734,7 @@ "chunk_id": "chunk_7FBB71F3", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next example.pdf --pages \"1,3\"\n```\n", - "start_line_no": 187, + "start_line_no": 182, "translations": { "zh": "```bash\npdf2zh_next example.pdf --pages \"1,3\"\n```\n", "zh_TW": "```bash\npdf2zh_next example.pdf --pages \"1,3\"\n```\n", @@ -1752,7 +1752,7 @@ "chunk_id": "chunk_376C9855", "chunk_type": "list", "original_content": "- If the pages include both consecutive and non-consecutive ranges, you can also connect them with a comma, like this:\n", - "start_line_no": 191, + "start_line_no": 186, "translations": { "zh": "- 如果页面同时包含连续和非连续范围,也可以用逗号连接,例如:\n", "ko": "- 페이지에 연속적 및 비연속적 범위가 모두 포함된 경우, 다음과 같이 쉼표로 연결할 수도 있습니다:\n", @@ -1770,7 +1770,7 @@ "chunk_id": "chunk_DE0F06A2", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next example.pdf --pages \"1,3,10-20,25-\"\n```\n", - "start_line_no": 193, + "start_line_no": 188, "translations": { "zh": "```bash\npdf2zh_next example.pdf --pages \"1,3,10-20,25-\"\n```\n", "zh_TW": "```bash\npdf2zh_next example.pdf --pages \"1,3,10-20,25-\"\n```\n", @@ -1788,7 +1788,7 @@ "chunk_id": "chunk_16D6BA70", "chunk_type": "paragraph", "original_content": "This command will translate the first page, the third page, pages 10-20, and all pages from 25 to the end.\n\n\n[⬆️ Back to top](#toc)\n", - "start_line_no": 197, + "start_line_no": 192, "translations": { "zh": "该命令将翻译第一页、第三页、第 10 至 20 页以及从第 25 页开始的所有页面。\n\n\n[⬆️ 返回顶部](#目录)\n", "es": "Este comando traducirá la primera página, la tercera página, las páginas 10-20 y todas las páginas desde la 25 hasta el final.\n\n\n[⬆️ Volver arriba](#toc)\n", @@ -1803,10 +1803,10 @@ } }, { - "chunk_id": "h_rule_c99e0975", + "chunk_id": "h_rule_44986cd7", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 202, + "start_line_no": 197, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -1824,7 +1824,7 @@ "chunk_id": "chunk_482C5F18", "chunk_type": "header", "original_content": "#### Specify source and target languages\n", - "start_line_no": 204, + "start_line_no": 199, "translations": { "zh": "#### 指定源语言和目标语言\n", "zh_TW": "#### 指定來源與目標語言\n", @@ -1842,7 +1842,7 @@ "chunk_id": "chunk_3E16227B", "chunk_type": "paragraph", "original_content": "See [Google Languages Codes](https://developers.google.com/admin-sdk/directory/v1/languages), [DeepL Languages Codes](https://developers.deepl.com/docs/resources/supported-languages)\n", - "start_line_no": 206, + "start_line_no": 201, "translations": { "ko": "[Google 언어 코드](https://developers.google.com/admin-sdk/directory/v1/languages), [DeepL 언어 코드](https://developers.deepl.com/docs/resources/supported-languages) 참조\n", "zh_TW": "請參閱 [Google Languages Codes](https://developers.google.com/admin-sdk/directory/v1/languages)、[DeepL Languages Codes](https://developers.deepl.com/docs/resources/supported-languages)\n", @@ -1860,7 +1860,7 @@ "chunk_id": "chunk_CE426311", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next example.pdf --lang-in en -lang-out ja\n```\n", - "start_line_no": 208, + "start_line_no": 203, "translations": { "zh": "```bash\npdf2zh_next example.pdf --lang-in en -lang-out ja\n```\n", "zh_TW": "```bash\npdf2zh_next example.pdf --lang-in en -lang-out ja\n```\n", @@ -1875,10 +1875,10 @@ } }, { - "chunk_id": "h_rule_ba0b5620", + "chunk_id": "h_rule_1216eb18", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 214, + "start_line_no": 209, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -1896,7 +1896,7 @@ "chunk_id": "chunk_EA41DE52", "chunk_type": "header", "original_content": "#### Translate wih exceptions\n", - "start_line_no": 216, + "start_line_no": 211, "translations": { "fr": "#### Traduire avec exceptions\n", "ru": "#### Перевод с исключениями\n", @@ -1914,7 +1914,7 @@ "chunk_id": "chunk_6BAF2E56", "chunk_type": "paragraph", "original_content": "Use regex to specify formula fonts and characters that need to be preserved:\n", - "start_line_no": 218, + "start_line_no": 213, "translations": { "es": "Usar expresiones regulares para especificar fuentes de fórmulas y caracteres que deben preservarse:\n", "ko": "보존해야 할 수식 글꼴과 문자를 지정하기 위해 정규식을 사용합니다:\n", @@ -1932,7 +1932,7 @@ "chunk_id": "chunk_8D6F2147", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next example.pdf --formular-font-pattern \"(CM[^RT].*|MS.*|.*Ital)\" --formular-char-pattern \"(\\(|\\||\\)|\\+|=|\\d|[\\u0080-\\ufaff])\"\n```\n", - "start_line_no": 220, + "start_line_no": 215, "translations": { "zh": "```bash\npdf2zh_next example.pdf --formular-font-pattern \"(CM[^RT].*|MS.*|.*Ital)\" --formular-char-pattern \"(\\(|\\||\\)|\\+|=|\\d|[\\u0080-\\ufaff])\"\n```\n", "zh_TW": "```bash\npdf2zh_next example.pdf --formular-font-pattern \"(CM[^RT].*|MS.*|.*Ital)\" --formular-char-pattern \"(\\(|\\||\\)|\\+|=|\\d|[\\u0080-\\ufaff])\"\n```\n", @@ -1950,7 +1950,7 @@ "chunk_id": "chunk_8FEF09F4", "chunk_type": "paragraph", "original_content": "Preserve `Latex`, `Mono`, `Code`, `Italic`, `Symbol` and `Math` fonts by default:\n", - "start_line_no": 224, + "start_line_no": 219, "translations": { "zh": "默认保留 `Latex`、`Mono`、`Code`、`Italic`、`Symbol` 和 `Math` 字体:\n", "zh_TW": "預設保留 `Latex`、`Mono`、`Code`、`Italic`、`Symbol` 與 `Math` 字體:\n", @@ -1968,7 +1968,7 @@ "chunk_id": "chunk_ACAC9383", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next example.pdf --formular-font-pattern \"(CM[^R]|MS.M|XY|MT|BL|RM|EU|LA|RS|LINE|LCIRCLE|TeX-|rsfs|txsy|wasy|stmary|.*Mono|.*Code|.*Ital|.*Sym|.*Math)\"\n```\n", - "start_line_no": 226, + "start_line_no": 221, "translations": { "zh": "```bash\npdf2zh_next example.pdf --formular-font-pattern \"(CM[^R]|MS.M|XY|MT|BL|RM|EU|LA|RS|LINE|LCIRCLE|TeX-|rsfs|txsy|wasy|stmary|.*Mono|.*Code|.*Ital|.*Sym|.*Math)\"\n```\n", "zh_TW": "```bash\npdf2zh_next example.pdf --formular-font-pattern \"(CM[^R]|MS.M|XY|MT|BL|RM|EU|LA|RS|LINE|LCIRCLE|TeX-|rsfs|txsy|wasy|stmary|.*Mono|.*Code|.*Ital|.*Sym|.*Math)\"\n```\n", @@ -1983,10 +1983,10 @@ } }, { - "chunk_id": "h_rule_11a44d37", + "chunk_id": "h_rule_56986cf4", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 232, + "start_line_no": 227, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -2004,7 +2004,7 @@ "chunk_id": "chunk_37A13558", "chunk_type": "header", "original_content": "#### Custom prompt\n", - "start_line_no": 234, + "start_line_no": 229, "translations": { "pt": "#### Prompt personalizado\n", "it": "#### Prompt personalizzato\n", @@ -2022,7 +2022,7 @@ "chunk_id": "chunk_54E57534", "chunk_type": "html_comment", "original_content": "\n", - "start_line_no": 236, + "start_line_no": 231, "translations": { "zh": "\n", "zh_TW": "\n", @@ -2040,7 +2040,7 @@ "chunk_id": "chunk_5F141742", "chunk_type": "paragraph", "original_content": "Custom system prompt for translation. It is mainly used to add the '/no_think' instruction of Qwen 3 in the prompt.\n", - "start_line_no": 238, + "start_line_no": 233, "translations": { "ko": "번역을 위한 사용자 정의 시스템 프롬프트. 주로 프롬프트에 Qwen 3 의 '/no_think' 지시를 추가하는 데 사용됩니다.\n", "ru": "Пользовательский системный запрос для перевода. В основном используется для добавления инструкции '/no_think' Qwen 3 в запрос.\n", @@ -2058,7 +2058,7 @@ "chunk_id": "chunk_4E347A0E", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next example.pdf --custom-system-prompt \"/no_think You are a professional and reliable machine translation engine responsible for translating the input text into zh_CN.When translating, strictly follow the instructions below to ensure translation quality and preserve all formatting, tags, and placeholders:\"\n```\n", - "start_line_no": 240, + "start_line_no": 235, "translations": { "zh": "```bash\npdf2zh_next example.pdf --custom-system-prompt \"/no_think You are a professional and reliable machine translation engine responsible for translating the input text into zh_CN.When translating, strictly follow the instructions below to ensure translation quality and preserve all formatting, tags, and placeholders:\"\n```\n", "zh_TW": "```bash\npdf2zh_next example.pdf --custom-system-prompt \"/no_think You are a professional and reliable machine translation engine responsible for translating the input text into zh_CN.When translating, strictly follow the instructions below to ensure translation quality and preserve all formatting, tags, and placeholders:\"\n```\n", @@ -2073,10 +2073,10 @@ } }, { - "chunk_id": "h_rule_96474852", + "chunk_id": "h_rule_f644669a", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 246, + "start_line_no": 241, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -2094,7 +2094,7 @@ "chunk_id": "chunk_1EC5A9B5", "chunk_type": "header", "original_content": "#### Custom configuration\n", - "start_line_no": 248, + "start_line_no": 243, "translations": { "zh": "#### 自定义配置\n", "ja": "#### カスタム設定\n", @@ -2112,7 +2112,7 @@ "chunk_id": "chunk_754794E1", "chunk_type": "paragraph", "original_content": "There are multiple ways to modify and import the configuration file.\n", - "start_line_no": 250, + "start_line_no": 245, "translations": { "zh": "有多种方式可以修改和导入配置文件。\n", "ja": "設定ファイルを変更およびインポートする方法は複数あります。\n", @@ -2130,7 +2130,7 @@ "chunk_id": "chunk_B9BF8271", "chunk_type": "blockquote", "original_content": "> [!NOTE]\n> **Configuration File Hierarchy**\n>\n> When modifying the same parameter using different methods, the software will apply changes according to the priority order below. \n>\n> Higher-ranked modifications will override lower-ranked ones.\n>\n> **cli/gui > env > user config file > default config file**\n", - "start_line_no": 252, + "start_line_no": 247, "translations": { "ja": "> [!NOTE]\n> **設定ファイルの階層**\n>\n> 同じパラメータを異なる方法で変更する場合、ソフトウェアは以下の優先順位に従って変更を適用します。\n>\n> 上位の変更は下位の変更を上書きします。\n>\n> **cli/gui > env > ユーザー設定ファイル > デフォルト設定ファイル**\n", "pt": "> [!NOTE]\n> **Hierarquia do Arquivo de Configuração**\n>\n> Ao modificar o mesmo parâmetro usando métodos diferentes, o software aplicará as alterações de acordo com a ordem de prioridade abaixo.\n>\n> Modificações com classificação mais alta substituirão as de classificação mais baixa.\n>\n> **cli/gui > env > arquivo de configuração do usuário > arquivo de configuração padrão**\n", @@ -2148,7 +2148,7 @@ "chunk_id": "chunk_06B261DE", "chunk_type": "list", "original_content": "- Modifying Configuration via **Command Line Arguments**\n", - "start_line_no": 261, + "start_line_no": 256, "translations": { "ja": "- **コマンドライン引数** を介した設定の変更\n", "de": "- Konfiguration über **Kommandozeilen-Argumente** ändern\n", @@ -2166,7 +2166,7 @@ "chunk_id": "chunk_4579F74D", "chunk_type": "paragraph", "original_content": "For most cases, you can directly pass your desired settings through command line arguments. Please refer to [Command Line Args](#cmd) for more information.\n\nFor example, if you want to enable a GUI window, you can use the following command:\n", - "start_line_no": 263, + "start_line_no": 258, "translations": { "ja": "ほとんどの場合、コマンドライン引数を通じて希望の設定を直接渡すことができます。詳細については、[コマンドライン引数](#cmd) を参照してください。\n\n例えば、GUI ウィンドウを有効にしたい場合は、次のコマンドを使用できます:\n", "ru": "В большинстве случаев вы можете напрямую передать желаемые настройки через аргументы командной строки. Подробнее см. в разделе [Аргументы командной строки](#cmd).\n\nНапример, если вы хотите включить окно GUI, можно использовать следующую команду:\n", @@ -2184,7 +2184,7 @@ "chunk_id": "chunk_9668B90D", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next --gui\n```\n", - "start_line_no": 267, + "start_line_no": 262, "translations": { "zh": "```bash\npdf2zh_next --gui\n```\n", "zh_TW": "```bash\npdf2zh_next --gui\n```\n", @@ -2202,7 +2202,7 @@ "chunk_id": "chunk_85CC4581", "chunk_type": "list", "original_content": "- Modifying Configuration via **Environment Variables**\n", - "start_line_no": 271, + "start_line_no": 266, "translations": { "fr": "- Modification de la configuration via **Variables d'environnement**\n", "zh": "- 通过 **环境变量** 修改配置\n", @@ -2220,7 +2220,7 @@ "chunk_id": "chunk_A3573A4C", "chunk_type": "paragraph", "original_content": "You can replace the `--` in command line arguments with `PDF2ZH_`, connect parameters using `=`, and replace `-` with `_` as environment variables.\n\nFor example, if you want to enable a GUI window, you can use the following command:\n", - "start_line_no": 273, + "start_line_no": 268, "translations": { "zh_TW": "你可以將命令列參數中的 `--` 替換為 `PDF2ZH_`,使用 `=` 連接參數,並將 `-` 替換為 `_` 作為環境變數。\n\n例如,如果你想啟用圖形界面視窗,可以使用以下命令:\n", "zh": "你可以将命令行参数中的 `--` 替换为 `PDF2ZH_`,使用 `=` 连接参数,并将 `-` 替换为 `_` 作为环境变量。\n\n例如,如果你想启用 GUI 窗口,可以使用以下命令:\n", @@ -2238,7 +2238,7 @@ "chunk_id": "chunk_5A8D89BB", "chunk_type": "code_block", "original_content": "```bash\nPDF2ZH_GUI=TRUE pdf2zh_next\n```\n", - "start_line_no": 277, + "start_line_no": 272, "translations": { "zh": "```bash\nPDF2ZH_GUI=TRUE pdf2zh_next\n```\n", "zh_TW": "```bash\nPDF2ZH_GUI=TRUE pdf2zh_next\n```\n", @@ -2256,7 +2256,7 @@ "chunk_id": "chunk_9DD1EEE0", "chunk_type": "image", "original_content": "\"env\"/\n", - "start_line_no": 281, + "start_line_no": 276, "translations": { "zh": "\"env\"/\n", "zh_TW": "\"env\"/\n", @@ -2274,7 +2274,7 @@ "chunk_id": "chunk_11A0D60E", "chunk_type": "list", "original_content": "- User-Specified **Configuration File**\n", - "start_line_no": 283, + "start_line_no": 278, "translations": { "es": "- Archivo de **configuración** especificado por el usuario\n", "de": "- Benutzerdefinierte **Konfigurationsdatei**\n", @@ -2292,7 +2292,7 @@ "chunk_id": "chunk_9EE9DFB5", "chunk_type": "paragraph", "original_content": "You can specify a configuration file using the command line argument below:\n", - "start_line_no": 285, + "start_line_no": 280, "translations": { "de": "Sie können eine Konfigurationsdatei mit dem folgenden Kommandozeilen-Argument angeben:\n", "es": "Puedes especificar un archivo de configuración utilizando el siguiente argumento de la línea de comandos:\n", @@ -2310,7 +2310,7 @@ "chunk_id": "chunk_3B8259C7", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next --config-file '/path/config.toml'\n```\n", - "start_line_no": 287, + "start_line_no": 282, "translations": { "zh": "```bash\npdf2zh_next --config-file '/path/config.toml'\n```\n", "zh_TW": "```bash\npdf2zh_next --config-file '/path/config.toml'\n```\n", @@ -2328,7 +2328,7 @@ "chunk_id": "chunk_FC4FBE9E", "chunk_type": "paragraph", "original_content": "If you are unsure about the config file format, please refer to the default configuration file described below.\n", - "start_line_no": 291, + "start_line_no": 286, "translations": { "zh": "如果您不确定配置文件格式,请参考下方描述的默认配置文件。\n", "es": "Si no está seguro del formato del archivo de configuración, consulte el archivo de configuración predeterminado que se describe a continuación.\n", @@ -2346,7 +2346,7 @@ "chunk_id": "chunk_A4C0C077", "chunk_type": "list", "original_content": "- **Default Configuration File**\n", - "start_line_no": 293, + "start_line_no": 288, "translations": { "ja": "- **デフォルト設定ファイル**\n", "fr": "- **Fichier de configuration par défaut**\n", @@ -2364,7 +2364,7 @@ "chunk_id": "chunk_B17D9FE3", "chunk_type": "paragraph", "original_content": "The default configuration file is located at `~/.config/pdf2zh`. \nPlease do not modify the configuration files in the `default` directory. \nIt is strongly recommended to refer to this configuration file's content and use **User-Specified Configuration File** to implement your own configuration file.\n", - "start_line_no": 295, + "start_line_no": 290, "translations": { "zh": "默认配置文件位于 `~/.config/pdf2zh`。 \n请勿修改 `default` 目录中的配置文件。 \n强烈建议参考此配置文件的内容,并使用**自定义配置**来实现您自己的配置文件。\n", "pt": "O arquivo de configuração padrão está localizado em `~/.config/pdf2zh`. \nPor favor, não modifique os arquivos de configuração no diretório `default`. \nÉ altamente recomendável consultar o conteúdo deste arquivo de configuração e usar **Configuração personalizada** para implementar seu próprio arquivo de configuração.\n", @@ -2382,7 +2382,7 @@ "chunk_id": "chunk_15DFB8EE", "chunk_type": "blockquote", "original_content": "> [!TIP]\n> - By default, pdf2zh 2.0 automatically saves the current configuration to `~/.config/pdf2zh/config.v3.toml` each time you click the translate button in the GUI. This configuration file will be loaded by default on the next startup.\n> - The configuration files in the `default` directory are automatically generated by the program. You can copy them for modification, but please do not modify them directly.\n> - Configuration files may include version numbers such as \"v2\", \"v3\", etc. These are **configuration file version numbers**, **not** the version number of pdf2zh itself.\n\n", - "start_line_no": 299, + "start_line_no": 294, "translations": { "zh": "> [!TIP]\n> - 默认情况下,pdf2zh 2.0 每次在 GUI 中点击翻译按钮时,会自动将当前配置保存到 `~/.config/pdf2zh/config.v3.toml`。该配置文件将在下次启动时默认加载。\n> - `default` 目录中的配置文件由程序自动生成。您可以复制它们进行修改,但请勿直接修改。\n> - 配置文件中可能包含 \"v2\"、\"v3\" 等版本号。这些是**配置文件版本号**,**并非** pdf2zh 本身的版本号。\n\n", "it": "> [!TIP]\n> - Per impostazione predefinita, pdf2zh 2.0 salva automaticamente la configurazione corrente in `~/.config/pdf2zh/config.v3.toml` ogni volta che si fa clic sul pulsante di traduzione nella GUI. Questo file di configurazione verrà caricato per impostazione predefinita al prossimo avvio.\n> - I file di configurazione nella directory `default` vengono generati automaticamente dal programma. È possibile copiarli per modificarli, ma si prega di non modificarli direttamente.\n> - I file di configurazione possono includere numeri di versione come \"v2\", \"v3\", ecc. Questi sono **numeri di versione del file di configurazione**, **non** il numero di versione di pdf2zh stesso.\n\n", @@ -2397,10 +2397,10 @@ } }, { - "chunk_id": "h_rule_2e0409ca", + "chunk_id": "h_rule_b12bc520", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 307, + "start_line_no": 302, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -2418,7 +2418,7 @@ "chunk_id": "chunk_870EBD0C", "chunk_type": "header", "original_content": "#### Skip clean\n", - "start_line_no": 309, + "start_line_no": 304, "translations": { "zh": "#### 跳过清理\n", "ja": "#### クリーンをスキップ\n", @@ -2436,7 +2436,7 @@ "chunk_id": "chunk_012D63A3", "chunk_type": "paragraph", "original_content": "When this parameter is set to True, the PDF cleaning step will be skipped, which can improve compatibility and avoid some font processing issues.\n\nUsage:\n", - "start_line_no": 311, + "start_line_no": 306, "translations": { "zh": "当此参数设为 True 时,将跳过 PDF 清理步骤,这可以提高兼容性并避免一些字体处理问题。\n\n用法:\n", "ja": "このパラメータが True に設定されている場合、PDF のクリーンアップステップがスキップされ、互換性が向上し、一部のフォント処理の問題を回避できます。\n\n使い方:\n", @@ -2454,7 +2454,7 @@ "chunk_id": "chunk_56748FCD", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next example.pdf --skip-clean\n```\n", - "start_line_no": 315, + "start_line_no": 310, "translations": { "zh": "```bash\npdf2zh_next example.pdf --skip-clean\n```\n", "zh_TW": "```bash\npdf2zh_next example.pdf --skip-clean\n```\n", @@ -2472,7 +2472,7 @@ "chunk_id": "chunk_1078AA87", "chunk_type": "paragraph", "original_content": "Or using environment variables:\n", - "start_line_no": 319, + "start_line_no": 314, "translations": { "zh_TW": "或者使用環境變數:\n", "zh": "或者使用环境变量:\n", @@ -2490,7 +2490,7 @@ "chunk_id": "chunk_C147F788", "chunk_type": "code_block", "original_content": "```bash\nPDF2ZH_SKIP_CLEAN=TRUE pdf2zh_next example.pdf\n```\n", - "start_line_no": 321, + "start_line_no": 316, "translations": { "zh": "```bash\nPDF2ZH_SKIP_CLEAN=TRUE pdf2zh_next example.pdf\n```\n", "zh_TW": "```bash\nPDF2ZH_SKIP_CLEAN=TRUE pdf2zh_next example.pdf\n```\n", @@ -2508,7 +2508,7 @@ "chunk_id": "chunk_E510ADDB", "chunk_type": "blockquote", "original_content": "> [!TIP]\n> When `--enhance-compatibility` is enabled, Skip clean is automatically enabled.\n", - "start_line_no": 325, + "start_line_no": 320, "translations": { "zh": "> [!TIP]\n> 当启用 `--enhance-compatibility` 时,跳过清理会自动启用。\n", "es": "> [!TIP]\n> Cuando `--enhance-compatibility` está habilitado, Omitir limpieza se activa automáticamente.\n", @@ -2523,10 +2523,10 @@ } }, { - "chunk_id": "h_rule_6c6abaad", + "chunk_id": "h_rule_ff06cc0b", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 328, + "start_line_no": 323, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -2544,7 +2544,7 @@ "chunk_id": "chunk_A35603CF", "chunk_type": "header", "original_content": "#### Translation cache\n", - "start_line_no": 330, + "start_line_no": 325, "translations": { "zh_TW": "#### 翻譯快取\n", "fr": "#### Cache de traduction\n", @@ -2562,7 +2562,7 @@ "chunk_id": "chunk_F8D49E02", "chunk_type": "paragraph", "original_content": "PDFMathTranslate caches translated texts to increase speed and avoid unnecessary API calls for same contents. You can use `--ignore-cache` option to ignore translation cache and force retranslation.\n", - "start_line_no": 332, + "start_line_no": 327, "translations": { "zh_TW": "PDFMathTranslate 會快取已翻譯的文字,以提高速度並避免對相同內容進行不必要的 API 呼叫。你可以使用 `--ignore-cache` 選項來忽略翻譯快取並強制重新翻譯。\n", "ja": "PDFMathTranslate は翻訳済みのテキストをキャッシュし、同じ内容に対する不要な API 呼び出しを避けつつ速度を向上させます。`--ignore-cache` オプションを使用すると、翻訳キャッシュを無視して強制的に再翻訳を行うことができます。\n", @@ -2580,7 +2580,7 @@ "chunk_id": "chunk_D7B6C013", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next example.pdf --ignore-cache\n```\n", - "start_line_no": 334, + "start_line_no": 329, "translations": { "zh": "```bash\npdf2zh_next example.pdf --ignore-cache\n```\n", "zh_TW": "```bash\npdf2zh_next example.pdf --ignore-cache\n```\n", @@ -2595,10 +2595,10 @@ } }, { - "chunk_id": "h_rule_dff8a354", + "chunk_id": "h_rule_f7a74231", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 340, + "start_line_no": 335, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -2616,7 +2616,7 @@ "chunk_id": "chunk_05080CDF", "chunk_type": "header", "original_content": "#### Deployment as a public services\n", - "start_line_no": 342, + "start_line_no": 337, "translations": { "zh": "#### 部署为公共服务\n", "zh_TW": "#### 部署為公共服務\n", @@ -2634,7 +2634,7 @@ "chunk_id": "chunk_A72BDF82", "chunk_type": "paragraph", "original_content": "When deploying a pdf2zh GUI on public services, you should modify the configuration file as described below.\n", - "start_line_no": 344, + "start_line_no": 339, "translations": { "zh": "在公共服务上部署 pdf2zh GUI 时,您应按照以下说明修改配置文件。\n", "zh_TW": "在將 pdf2zh GUI 部署為公共服務時,您應按照以下說明修改配置檔案。\n", @@ -2652,7 +2652,7 @@ "chunk_id": "chunk_41166DB8", "chunk_type": "blockquote", "original_content": "> [!WARNING]\n>\n> This project has not been professionally audited for security, and may contain security vulnerabilities. Please evaluate the risks and take necessary security measures before deploying on public networks.\n\n\n> [!TIP]\n> - When deploying publicly, both disable_gui_sensitive_input and disable_config_auto_save should be enabled.\n> - Separate different available services with *English commas* , .\n", - "start_line_no": 346, + "start_line_no": 341, "translations": { "it": "> [!WARNING]\n>\n> Questo progetto non è stato sottoposto a un controllo professionale per la sicurezza e potrebbe contenere vulnerabilità. Si prega di valutare i rischi e adottare le necessarie misure di sicurezza prima di distribuire su reti pubbliche.\n\n\n> [!TIP]\n> - Quando si distribuisce pubblicamente, sia disable_gui_sensitive_input che disable_config_auto_save dovrebbero essere abilitati.\n> - Separare i diversi servizi disponibili con *virgole inglesi* , .\n", "zh": "> [!WARNING]\n>\n> 本项目尚未经过专业安全审计,可能存在安全漏洞。请在公共网络部署前评估风险并采取必要的安全措施。\n\n\n> [!TIP]\n> - 公开部署时,应同时启用 `disable_gui_sensitive_input` 和 `disable_config_auto_save` 选项。\n> - 使用*英文逗号* , 分隔不同的可用服务。\n", @@ -2670,7 +2670,7 @@ "chunk_id": "chunk_F2D0AEC1", "chunk_type": "paragraph", "original_content": "A usable configuration is as follows:\n", - "start_line_no": 405, + "start_line_no": 400, "translations": { "ko": "사용 가능한 구성은 다음과 같습니다:\n", "zh_TW": "一個可用的配置如下:\n", @@ -2688,7 +2688,7 @@ "chunk_id": "chunk_12A9803B", "chunk_type": "code_block", "original_content": "```toml title=\"config.toml\"\n[basic]\ngui = true\n\n[gui_settings]\nenabled_services = \"Bing,OpenAI\"\ndisable_gui_sensitive_input = true\ndisable_config_auto_save = true\n```\n", - "start_line_no": 357, + "start_line_no": 352, "translations": { "zh": "```toml title=\"config.toml\"\n[basic]\ngui = true\n\n[gui_settings]\nenabled_services = \"Bing,OpenAI\"\ndisable_gui_sensitive_input = true\ndisable_config_auto_save = true\n```\n", "zh_TW": "```toml title=\"config.toml\"\n[basic]\ngui = true\n\n[gui_settings]\nenabled_services = \"Bing,OpenAI\"\ndisable_gui_sensitive_input = true\ndisable_config_auto_save = true\n```\n", @@ -2703,10 +2703,10 @@ } }, { - "chunk_id": "h_rule_eb7e9627", + "chunk_id": "h_rule_fe5ed082", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 369, + "start_line_no": 364, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -2724,7 +2724,7 @@ "chunk_id": "chunk_E255AB78", "chunk_type": "header", "original_content": "#### Authentication and welcome page\n", - "start_line_no": 371, + "start_line_no": 366, "translations": { "zh": "#### 认证与欢迎页面\n", "ja": "#### 認証とウェルカムページ\n", @@ -2742,7 +2742,7 @@ "chunk_id": "chunk_1A5EEA9C", "chunk_type": "paragraph", "original_content": "When using Authentication and welcome page to specify which user to use Web UI and custom the login page:\n\nexample auth.txt\nEach line contains two elements, username, and password, separated by a comma.\n", - "start_line_no": 373, + "start_line_no": 368, "translations": { "zh": "当使用认证与欢迎页面来指定哪些用户可以使用 Web UI 并自定义登录页面时:\n\n示例 auth.txt \n每行包含两个元素,用户名和密码,以逗号分隔。\n", "ru": "При использовании аутентификации и приветственной страницы для указания, какой пользователь может использовать Web UI и настройки страницы входа:\n\nпример auth.txt\nКаждая строка содержит два элемента: имя пользователя и пароль, разделенные запятой.\n", @@ -2760,7 +2760,7 @@ "chunk_id": "chunk_B865D3B8", "chunk_type": "code_block", "original_content": "```\nadmin,123456\nuser1,password1\nuser2,abc123\nguest,guest123\ntest,test123\n```\n", - "start_line_no": 378, + "start_line_no": 373, "translations": { "zh": "```\nadmin,123456\nuser1,password1\nuser2,abc123\nguest,guest123\ntest,test123\n```\n", "zh_TW": "```\nadmin,123456\nuser1,password1\nuser2,abc123\nguest,guest123\ntest,test123\n```\n", @@ -2778,7 +2778,7 @@ "chunk_id": "chunk_0CEA118C", "chunk_type": "paragraph", "original_content": "example welcome.html\n", - "start_line_no": 386, + "start_line_no": 381, "translations": { "zh": "示例 welcome.html\n", "zh_TW": "範例 welcome.html\n", @@ -2796,7 +2796,7 @@ "chunk_id": "chunk_0FC66A15", "chunk_type": "code_block", "original_content": "```html\n\n\n\n Simple HTML\n\n\n

Hello, World!

\n

Welcome to my simple HTML page.

\n\n\n```\n", - "start_line_no": 388, + "start_line_no": 383, "translations": { "zh": "```html\n\n\n\n Simple HTML\n\n\n

Hello, World!

\n

Welcome to my simple HTML page.

\n\n\n```\n", "zh_TW": "```html\n\n\n\n Simple HTML\n\n\n

Hello, World!

\n

Welcome to my simple HTML page.

\n\n\n```\n", @@ -2814,7 +2814,7 @@ "chunk_id": "chunk_40E12FA3", "chunk_type": "blockquote", "original_content": "> [!NOTE]\n> welcome page will work if only authentication file is not blank.\n> If authentication file is blank, there will be no authentication. :)\n", - "start_line_no": 401, + "start_line_no": 396, "translations": { "zh": "> [!NOTE]\n> 欢迎页面仅在认证文件不为空时生效。\n> 如果认证文件为空,则不会进行认证。 :)\n", "zh_TW": "> [!NOTE]\n> 歡迎頁面僅在驗證檔案不為空白時才會運作。\n> 若驗證檔案為空白,則不會進行驗證。 :)\n", @@ -2832,7 +2832,7 @@ "chunk_id": "chunk_39D7C203", "chunk_type": "code_block", "original_content": "```toml title=\"config.toml\"\n[basic]\ngui = true\n\n[gui_settings]\nauth_file = \"/path/to/auth/file\"\nwelcome_page = \"/path/to/welcome/html/file\"\n```\n", - "start_line_no": 407, + "start_line_no": 402, "translations": { "zh": "```toml title=\"config.toml\"\n[basic]\ngui = true\n\n[gui_settings]\nauth_file = \"/path/to/auth/file\"\nwelcome_page = \"/path/to/welcome/html/file\"\n```\n", "zh_TW": "```toml title=\"config.toml\"\n[basic]\ngui = true\n\n[gui_settings]\nauth_file = \"/path/to/auth/file\"\nwelcome_page = \"/path/to/welcome/html/file\"\n```\n", @@ -2847,10 +2847,10 @@ } }, { - "chunk_id": "h_rule_f2d1dc34", + "chunk_id": "h_rule_9463b830", "chunk_type": "h_rule", "original_content": "---\n", - "start_line_no": 418, + "start_line_no": 413, "translations": { "zh": "---\n", "zh_TW": "---\n", @@ -2868,7 +2868,7 @@ "chunk_id": "chunk_4A9C44BF", "chunk_type": "header", "original_content": "#### Glossary Support\n", - "start_line_no": 420, + "start_line_no": 415, "translations": { "zh_TW": "#### 詞彙表支援\n", "pt": "#### Suporte ao Glossário\n", @@ -2886,7 +2886,7 @@ "chunk_id": "chunk_65580DD5", "chunk_type": "paragraph", "original_content": "PDFMathTranslate supports the glossary table. The glossary tables file should be `csv` file.\nThere are three columns in file. Here is a demo glossary file:\n", - "start_line_no": 422, + "start_line_no": 417, "translations": { "zh": "PDFMathTranslate 支持术语表功能。术语表文件应为 `csv` 格式。 \n文件包含三列数据,以下是示例术语表文件:\n", "zh_TW": "PDFMathTranslate 支援詞彙表功能。詞彙表檔案應為 `csv` 格式。 \n檔案中包含三欄,以下是一個示範詞彙表檔案:\n", @@ -2904,7 +2904,7 @@ "chunk_id": "chunk_2403CA4A", "chunk_type": "table", "original_content": "| source | target | tgt_lng |\n|--------|---------|---------|\n| AutoML | 自动 ML | zh-CN |\n| a,a | a | zh-CN |\n| \" | \" | zh-CN |\n\n", - "start_line_no": 425, + "start_line_no": 420, "translations": { "ko": "| source | target | tgt_lng |\n|--------|---------|---------|\n| AutoML | 자동 ML | ko |\n| a,a | a | ko |\n| \" | \" | ko |\n\n", "ja": "| source | target | tgt_lng |\n|--------|---------|---------|\n| AutoML | 自動 ML | zh-CN |\n| a,a | a | zh-CN |\n| \" | \" | zh-CN |\n\n", @@ -2922,7 +2922,7 @@ "chunk_id": "chunk_598725B0", "chunk_type": "paragraph", "original_content": "For CLI user:\nYou can use multiple files for glossary. And different files should be split by `,`.\n", - "start_line_no": 432, + "start_line_no": 427, "translations": { "zh_TW": "對於 CLI 使用者:\n您可以使用多個檔案作為詞彙表。不同檔案應以 `,` 分隔。\n", "zh": "对于 CLI 用户:\n你可以使用多个文件作为术语表。不同文件之间应以 `,` 分隔。\n", @@ -2940,7 +2940,7 @@ "chunk_id": "chunk_332A0BF8", "chunk_type": "code_block", "original_content": "```bash\npdf2zh_next example.pdf --glossaries \"glossary1.csv,glossary2.csv,glossary3.csv\"\n```\n", - "start_line_no": 435, + "start_line_no": 430, "translations": { "zh": "```bash\npdf2zh_next example.pdf --glossaries \"glossary1.csv,glossary2.csv,glossary3.csv\"\n```\n", "zh_TW": "```bash\npdf2zh_next example.pdf --glossaries \"glossary1.csv,glossary2.csv,glossary3.csv\"\n```\n", @@ -2958,7 +2958,7 @@ "chunk_id": "chunk_B3174CBC", "chunk_type": "paragraph", "original_content": "For WebUI user:\n\nYou can upload your own glossary file now. After you uploaded the file, you can check them by click their name and the content shows below.\n\n[⬆️ Back to top](#toc)\n", - "start_line_no": 439, + "start_line_no": 434, "translations": { "zh_TW": "對於 WebUI 使用者:\n\n您現在可以上傳自己的詞彙表檔案。上傳檔案後,您可以點擊檔案名稱來查看內容,內容會顯示在下方。\n\n[⬆️ 回到頂部](#目錄)\n", "zh": "对于 WebUI 用户:\n\n您现在可以上传自己的术语表文件了。上传文件后,可以通过点击文件名查看其内容,内容将显示在下方。\n\n[⬆️ 返回顶部](#目录)\n", diff --git a/.doctemp/translated/getting-started.translated.json b/.doctemp/translated/getting-started.translated.json index f8a412b94..d565fb7d5 100644 --- a/.doctemp/translated/getting-started.translated.json +++ b/.doctemp/translated/getting-started.translated.json @@ -39,7 +39,7 @@ } }, { - "chunk_id": "h_rule_176d4d55", + "chunk_id": "h_rule_265bfbdf", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 5, @@ -93,7 +93,7 @@ } }, { - "chunk_id": "h_rule_79a62a8c", + "chunk_id": "h_rule_2f10538b", "chunk_type": "h_rule", "original_content": "---\n", "start_line_no": 13, diff --git a/docs/de/advanced/advanced.md b/docs/de/advanced/advanced.md index 51561add4..0f4139d08 100644 --- a/docs/de/advanced/advanced.md +++ b/docs/de/advanced/advanced.md @@ -4,13 +4,8 @@

Inhaltsverzeichnis

-- [Befehlszeilenargumente](#befehlszeilenargumente) - - [Argumente](#argumente) - - [GUI-Argumente](#gui-argumente) -- [#### Anleitung zur Ratenbegrenzungskonfiguration](#anleitung-zur-ratenbegrenzungskonfiguration) - - [#### RPM (Anfragen pro Minute) Ratenbegrenzung](#rpm-anfragen-pro-minute-ratenbegrenzung) - - [#### Begrenzung gleichzeitiger Verbindungen](#begrenzung-gleichzeitiger-verbindungen) - - [#### Best Practices](#best-practices) +- [Kommandozeilenargumente](#kommandozeilenargumente) +- [Rate-Limiting-Konfigurationsleitfaden](#rate-limiting-konfigurationsleitfaden) - [Partielle Übersetzung](#partielle-übersetzung) - [Quell- und Zielsprachen angeben](#quell--und-zielsprachen-angeben) - [Übersetzung mit Ausnahmen](#übersetzung-mit-ausnahmen) diff --git a/docs/de/getting-started/USAGE_webui.md b/docs/de/getting-started/USAGE_webui.md index 40d7450b3..c142ed86e 100644 --- a/docs/de/getting-started/USAGE_webui.md +++ b/docs/de/getting-started/USAGE_webui.md @@ -24,7 +24,13 @@ Es gibt mehrere Methoden, um die WebUI-Oberfläche zu öffnen. Wenn Sie **Window http://localhost:7860/ ``` - Ziehen Sie die `PDF`-Datei in das Fenster und klicken Sie auf `Translate`. + Ziehen Sie die PDF-Datei in das Fenster und klicken Sie auf `Translate`. + +5. Wenn Sie PDFMathTranslate mit Docker bereitstellen und ollama als Backend-LLM für PDFMathTranslate verwenden, sollten Sie "Ollama host" mit folgendem Wert ausfüllen: + + ```bash + http://host.docker.internal:11434 + ``` @@ -43,7 +49,7 @@ Sie können die Quell- und Zielsprachen mit Umgebungsvariablen festlegen: ## Wartung -GUI gepflegt von [Rongxin](https://github.com/reycn) +GUI wird von [Rongxin](https://github.com/reycn) gepflegt
Ein Teil des Inhalts dieser Seite wurde von GPT übersetzt und kann Fehler enthalten.
\ No newline at end of file diff --git a/docs/en/advanced/advanced.md b/docs/en/advanced/advanced.md index 72ec6d54d..c86e1ad4e 100644 --- a/docs/en/advanced/advanced.md +++ b/docs/en/advanced/advanced.md @@ -5,12 +5,7 @@

Table of Contents

- [Command Line Args](#command-line-args) - - [Args](#args) - - [GUI Args](#gui-args) - [Rate Limiting Configuration Guide](#rate-limiting-configuration-guide) - - [RPM (Requests Per Minute) Rate Limiting](#rpm-requests-per-minute-rate-limiting) - - [Concurrent Connection Limiting](#concurrent-connection-limiting) - - [Best Practices](#best-practices) - [Partial translation](#partial-translation) - [Specify source and target languages](#specify-source-and-target-languages) - [Translate wih exceptions](#translate-wih-exceptions) diff --git a/docs/es/advanced/advanced.md b/docs/es/advanced/advanced.md index e782574dc..6f1ba3dd9 100644 --- a/docs/es/advanced/advanced.md +++ b/docs/es/advanced/advanced.md @@ -4,13 +4,8 @@

Tabla de Contenidos

-- [Argumentos de Línea de Comandos](#argumentos-de-línea-de-comandos) - - [Argumentos](#argumentos) - - [Argumentos de GUI](#argumentos-de-gui) -- [#### Guía de Configuración de Límite de Tasa](#####-guía-de-configuración-de-límite-de-tasa) - - [#### Limitación de tasa RPM (Solicitudes Por Minuto)](#####-limitación-de-tasa-rpm-solicitudes-por-minuto) - - [#### Limitación de conexiones concurrentes](#####-limitación-de-conexiones-concurrentes) - - [#### Mejores prácticas](#####-mejores-prácticas) +- [Argumentos de línea de comandos](#argumentos-de-línea-de-comandos) +- [Guía de configuración de límite de tasa](#guía-de-configuración-de-límite-de-tasa) - [Traducción parcial](#traducción-parcial) - [Especificar idiomas de origen y destino](#especificar-idiomas-de-origen-y-destino) - [Traducir con excepciones](#traducir-con-excepciones) @@ -18,7 +13,7 @@ - [Configuración personalizada](#configuración-personalizada) - [Omitir limpieza](#omitir-limpieza) - [Caché de traducción](#caché-de-traducción) -- [Despliegue como servicios públicos](#despliegue-como-servicios-públicos) +- [Despliegue como servicio público](#despliegue-como-servicio-público) - [Autenticación y página de bienvenida](#autenticación-y-página-de-bienvenida) - [Soporte de glosario](#soporte-de-glosario) diff --git a/docs/es/getting-started/USAGE_webui.md b/docs/es/getting-started/USAGE_webui.md index 089d6dd0f..bd1425ba8 100644 --- a/docs/es/getting-started/USAGE_webui.md +++ b/docs/es/getting-started/USAGE_webui.md @@ -24,7 +24,13 @@ Existen varios métodos para abrir la interfaz de WebUI. Si estás usando **Wind http://localhost:7860/ ``` - Arrastra el archivo `PDF` a la ventana y haz clic en `Translate`. + Arrastra el archivo PDF a la ventana y haz clic en `Translate`. + +5. Si despliegas PDFMathTranslate con docker, y estás usando ollama como backend LLM de PDFMathTranslate, debes llenar "Ollama host" con + + ```bash + http://host.docker.internal:11434 + ``` @@ -43,9 +49,7 @@ Puedes configurar los idiomas de origen y destino utilizando variables de entorn ## Mantenimiento -### TRANSLATION - -GUI mantenido por [Rongxin](https://github.com/reycn) +GUI mantenida por [Rongxin](https://github.com/reycn)
Parte del contenido de esta página ha sido traducido por GPT y puede contener errores.
\ No newline at end of file diff --git a/docs/fr/advanced/advanced.md b/docs/fr/advanced/advanced.md index c0f12ff95..758057d92 100644 --- a/docs/fr/advanced/advanced.md +++ b/docs/fr/advanced/advanced.md @@ -5,22 +5,17 @@

Table des matières

- [Arguments de ligne de commande](#arguments-de-ligne-de-commande) - - [Arguments](#arguments) - - [Arguments GUI](#arguments-gui) -- [Guide de configuration des limites de débit](#guide-de-configuration-des-limites-de-débit) - - [Limitation du taux RPM (Requêtes Par Minute)](#limitation-du-taux-rpm-requêtes-par-minute) - - [Limitation des connexions simultanées](#limitation-des-connexions-simultanées) - - [Meilleures pratiques](#meilleures-pratiques) +- [Guide de configuration de la limitation de débit](#guide-de-configuration-de-la-limitation-de-débit) - [Traduction partielle](#traduction-partielle) - [Spécifier les langues source et cible](#spécifier-les-langues-source-et-cible) -- [Traduction avec exceptions](#traduction-avec-exceptions) +- [Traduire avec exceptions](#traduire-avec-exceptions) - [Invite personnalisée](#invite-personnalisée) - [Configuration personnalisée](#configuration-personnalisée) - [Ignorer le nettoyage](#ignorer-le-nettoyage) - [Cache de traduction](#cache-de-traduction) -- [Déploiement en tant que service public](#déploiement-en-tant-que-service-public) +- [Déploiement en tant que services publics](#déploiement-en-tant-que-services-publics) - [Authentification et page d'accueil](#authentification-et-page-daccueil) -- [Support du glossaire](#support-du-glossaire) +- [Support de glossaire](#support-de-glossaire) --- diff --git a/docs/fr/getting-started/USAGE_webui.md b/docs/fr/getting-started/USAGE_webui.md index 1e9920053..63ad95fd6 100644 --- a/docs/fr/getting-started/USAGE_webui.md +++ b/docs/fr/getting-started/USAGE_webui.md @@ -8,7 +8,7 @@ Il existe plusieurs méthodes pour ouvrir l'interface WebUI. Si vous utilisez **Windows**, veuillez consulter [cet article](./INSTALLATION_winexe.md); -1. Python installé (3.10 <= version <= 3.12) +1. Python installé (version 3.10 <= version <= 3.12) 2. Installez notre package : @@ -26,6 +26,12 @@ Il existe plusieurs méthodes pour ouvrir l'interface WebUI. Si vous utilisez ** Déposez le fichier PDF dans la fenêtre et cliquez sur `Translate`. +5. Si vous déployez PDFMathTranslate avec docker, et que vous utilisez ollama comme backend LLM de PDFMathTranslate, vous devez remplir "Ollama host" avec + + ```bash + http://host.docker.internal:11434 + ``` + diff --git a/docs/it/advanced/advanced.md b/docs/it/advanced/advanced.md index a71e7acd8..33d275a04 100644 --- a/docs/it/advanced/advanced.md +++ b/docs/it/advanced/advanced.md @@ -5,22 +5,17 @@

Indice

- [Argomenti della riga di comando](#argomenti-della-riga-di-comando) - - [Argomenti](#argomenti) - - [Argomenti GUI](#argomenti-gui) -- [#### Guida alla configurazione del limite di velocità](#guida-alla-configurazione-del-limite-di-velocità) - - [#### Limitazione della velocità RPM (Richieste al minuto)](#limitazione-della-velocità-rpm-richieste-al-minuto) - - [#### Limitazione delle connessioni simultanee](#limitazione-delle-connessioni-simultanee) - - [#### Best Practices](#best-practices) +- [Guida alla configurazione del rate limiting](#guida-alla-configurazione-del-rate-limiting) - [Traduzione parziale](#traduzione-parziale) - [Specificare le lingue di origine e di destinazione](#specificare-le-lingue-di-origine-e-di-destinazione) -- [Traduzione con eccezioni](#traduzione-con-eccezioni) +- [Tradurre con eccezioni](#tradurre-con-eccezioni) - [Prompt personalizzato](#prompt-personalizzato) - [Configurazione personalizzata](#configurazione-personalizzata) -- [Salta pulizia](#salta-pulizia) -- [Cache di traduzione](#cache-di-traduzione) +- [Salta la pulizia](#salta-la-pulizia) +- [Cache delle traduzioni](#cache-delle-traduzioni) - [Distribuzione come servizi pubblici](#distribuzione-come-servizi-pubblici) - [Autenticazione e pagina di benvenuto](#autenticazione-e-pagina-di-benvenuto) -- [Supporto glossario](#supporto-glossario) +- [Supporto per il glossario](#supporto-per-il-glossario) --- diff --git a/docs/it/getting-started/USAGE_webui.md b/docs/it/getting-started/USAGE_webui.md index 25543cf9d..a941bd51d 100644 --- a/docs/it/getting-started/USAGE_webui.md +++ b/docs/it/getting-started/USAGE_webui.md @@ -24,7 +24,13 @@ Esistono diversi metodi per aprire l'interfaccia WebUI. Se stai utilizzando **Wi http://localhost:7860/ ``` - Trascina il file `PDF` nella finestra e clicca `Translate`. + Trascina il file PDF nella finestra e clicca `Translate`. + +5. Se distribuisci PDFMathTranslate con docker e stai utilizzando ollama come backend LLM di PDFMathTranslate, dovresti inserire "Ollama host" con + + ```bash + http://host.docker.internal:11434 + ``` diff --git a/docs/ja/advanced/advanced.md b/docs/ja/advanced/advanced.md index cfcf6c59b..4669eb1d6 100644 --- a/docs/ja/advanced/advanced.md +++ b/docs/ja/advanced/advanced.md @@ -5,18 +5,13 @@

目次

- [コマンドライン引数](#コマンドライン引数) - - [引数](#引数) - - [GUI 引数](#gui-引数) - [レート制限設定ガイド](#レート制限設定ガイド) - - [RPM (リクエスト毎分) レート制限](#rpm-リクエスト毎分 - レート制限) - - [同時接続制限](#同時接続制限) - - [ベストプラクティス](#ベストプラクティス) - [部分翻訳](#部分翻訳) - [ソース言語とターゲット言語の指定](#ソース言語とターゲット言語の指定) - [例外付き翻訳](#例外付き翻訳) - [カスタムプロンプト](#カスタムプロンプト) - [カスタム設定](#カスタム設定) -- [クリーニングのスキップ](#クリーニングのスキップ) +- [クリーン処理のスキップ](#クリーン処理のスキップ) - [翻訳キャッシュ](#翻訳キャッシュ) - [公開サービスとしてのデプロイ](#公開サービスとしてのデプロイ) - [認証とウェルカムページ](#認証とウェルカムページ) diff --git a/docs/ja/getting-started/USAGE_webui.md b/docs/ja/getting-started/USAGE_webui.md index 39d2e664b..a38602fb5 100644 --- a/docs/ja/getting-started/USAGE_webui.md +++ b/docs/ja/getting-started/USAGE_webui.md @@ -18,13 +18,19 @@ WebUI インターフェースを開く方法はいくつかあります。**Win pdf2zh_next --gui ``` -4. ブラウザが自動的に起動しない場合は、以下にアクセス: +4. ブラウザが自動的に起動しない場合、次の URL にアクセス: ```bash http://localhost:7860/ ``` - `PDF` ファイルをウィンドウにドロップして、`Translate` をクリックしてください。 + PDF ファイルをウィンドウにドロップし、`Translate` をクリック。 + +5. PDFMathTranslate を docker でデプロイし、PDFMathTranslate のバックエンド LLM として ollama を使用している場合、「Ollama host」に次のように入力: + + ```bash + http://host.docker.internal:11434 + ``` @@ -43,7 +49,7 @@ WebUI インターフェースを開く方法はいくつかあります。**Win ## メンテナンス -[Rongxin](https://github.com/reycn) がメンテナンスする GUI +GUI は [Rongxin](https://github.com/reycn) によってメンテナンスされています
このページの一部のコンテンツは GPT によって翻訳されており、エラーが含まれている可能性があります。
\ No newline at end of file diff --git a/docs/ko/advanced/advanced.md b/docs/ko/advanced/advanced.md index 8dfa889ba..f4763c6c6 100644 --- a/docs/ko/advanced/advanced.md +++ b/docs/ko/advanced/advanced.md @@ -5,12 +5,7 @@

목차

- [명령줄 인수](#명령줄 - 인수) - - [인수](#인수) - - [GUI 인수](#gui-인수) - [속도 제한 구성 가이드](#속도 - 제한 - 구성 - 가이드) - - [RPM (Requests Per Minute) 요청 속도 제한](#rpm-requests-per-minute-요청 - 속도 - 제한) - - [동시 연결 제한](#동시 - 연결 - 제한) - - [모범 사례](#모범 - 사례) - [부분 번역](#부분 - 번역) - [소스 및 대상 언어 지정](#소스 - 및 - 대상 - 언어 - 지정) - [예외와 함께 번역](#예외와 - 함께 - 번역) @@ -18,7 +13,7 @@ - [사용자 정의 구성](#사용자 - 정의 - 구성) - [정리 건너뛰기](#정리 - 건너뛰기) - [번역 캐시](#번역 - 캐시) -- [공개 서비스로 배포](#공개 - 서비스로 - 배포) +- [공용 서비스로 배포](#공용 - 서비스로 - 배포) - [인증 및 환영 페이지](#인증 - 및 - 환영 - 페이지) - [용어집 지원](#용어집 - 지원) diff --git a/docs/ko/getting-started/USAGE_webui.md b/docs/ko/getting-started/USAGE_webui.md index e41c12cf5..bc0ae0c92 100644 --- a/docs/ko/getting-started/USAGE_webui.md +++ b/docs/ko/getting-started/USAGE_webui.md @@ -26,6 +26,12 @@ WebUI 인터페이스를 여는 방법에는 여러 가지가 있습니다. **Wi PDF 파일을 창에 드롭하고 `Translate` 을 클릭하세요. +5. docker 로 PDFMathTranslate 를 배포하고 ollama 를 PDFMathTranslate 의 백엔드 LLM 으로 사용하는 경우 "Ollama host"에 다음을 입력해야 합니다: + + ```bash + http://host.docker.internal:11434 + ``` + diff --git a/docs/pt/advanced/advanced.md b/docs/pt/advanced/advanced.md index 67a911691..fddc075e1 100644 --- a/docs/pt/advanced/advanced.md +++ b/docs/pt/advanced/advanced.md @@ -5,22 +5,17 @@

Índice

- [Argumentos da Linha de Comando](#argumentos-da-linha-de-comando) - - [Argumentos](#argumentos) - - [Argumentos da GUI](#argumentos-da-gui) -- [#### Guia de Configuração de Limitação de Taxa](#guia-de-configuração-de-limitação-de-taxa) - - [##### Limitação de Taxa RPM (Solicitações Por Minuto)](#limitação-de-taxa-rpm-solicitações-por-minuto) - - [##### Limitação de Conexões Simultâneas](#limitação-de-conexões-simultâneas) - - [##### Melhores práticas](#melhores-práticas) +- [Guia de Configuração de Limitação de Taxa](#guia-de-configuração-de-limitação-de-taxa) - [Tradução parcial](#tradução-parcial) - [Especificar idiomas de origem e destino](#especificar-idiomas-de-origem-e-destino) -- [Tradução com exceções](#tradução-com-exceções) +- [Traduzir com exceções](#traduzir-com-exceções) - [Prompt personalizado](#prompt-personalizado) - [Configuração personalizada](#configuração-personalizada) - [Pular limpeza](#pular-limpeza) - [Cache de tradução](#cache-de-tradução) -- [Implantaçãocomo serviço público](#implantação-como-serviço-público) +- [Implantação como serviços públicos](#implantação-como-serviços-públicos) - [Autenticação e página de boas-vindas](#autenticação-e-página-de-boas-vindas) -- [Suporte a glossário](#suporte-a-glossário) +- [Suporte a Glossário](#suporte-a-glossário) --- diff --git a/docs/pt/getting-started/USAGE_webui.md b/docs/pt/getting-started/USAGE_webui.md index 3f0165302..4d3b09e37 100644 --- a/docs/pt/getting-started/USAGE_webui.md +++ b/docs/pt/getting-started/USAGE_webui.md @@ -18,13 +18,19 @@ Existem vários métodos para abrir a interface WebUI. Se você estiver usando * pdf2zh_next --gui ``` -4. Se o seu navegador não tiver sido iniciado automaticamente, acesse +4. Se o seu navegador não foi iniciado automaticamente, acesse ```bash http://localhost:7860/ ``` - Arraste o arquivo `PDF` para a janela e clique em `Translate`. + Arraste o arquivo PDF para a janela e clique em `Translate`. + +5. Se você implantar o PDFMathTranslate com docker e estiver usando o ollama como o LLM de backend do PDFMathTranslate, você deve preencher "Ollama host" com + + ```bash + http://host.docker.internal:11434 + ``` @@ -43,8 +49,6 @@ Você pode definir os idiomas de origem e destino usando variáveis de ambiente: ## Manutenção -### TRANSLATION - GUI mantido por [Rongxin](https://github.com/reycn)
diff --git a/docs/ru/advanced/advanced.md b/docs/ru/advanced/advanced.md index 9d2098007..c4b33a53c 100644 --- a/docs/ru/advanced/advanced.md +++ b/docs/ru/advanced/advanced.md @@ -5,19 +5,14 @@

Содержание

- [Аргументы командной строки](#аргументы-командной-строки) - - [Аргументы](#аргументы) - - [Аргументы GUI](#аргументы-gui) -- [#### Руководство по настройке ограничения скорости](#руководство-по-настройке-ограничения-скорости) - - [##### Ограничение скорости RPM (запросов в минуту)](#ограничение-скорости-rpm-запросов-в-минуту) - - [##### Ограничение количества одновременных подключений](#ограничение-количества-одновременных-подключений) - - [##### Лучшие практики](#лучшие-практики) +- [Руководство по настройке ограничения скорости](#руководство-по-настройке-ограничения-скорости) - [Частичный перевод](#частичный-перевод) - [Указание исходного и целевого языков](#указание-исходного-и-целевого-языков) - [Перевод с исключениями](#перевод-с-исключениями) - [Пользовательский промпт](#пользовательский-промпт) - [Пользовательская конфигурация](#пользовательская-конфигурация) - [Пропуск очистки](#пропуск-очистки) -- [Кэш перевода](#кэш-перевода) +- [Кеширование перевода](#кеширование-перевода) - [Развертывание как публичный сервис](#развертывание-как-публичный-сервис) - [Аутентификация и приветственная страница](#аутентификация-и-приветственная-страница) - [Поддержка глоссария](#поддержка-глоссария) diff --git a/docs/ru/getting-started/USAGE_webui.md b/docs/ru/getting-started/USAGE_webui.md index a526d77d2..cdf269e0f 100644 --- a/docs/ru/getting-started/USAGE_webui.md +++ b/docs/ru/getting-started/USAGE_webui.md @@ -18,7 +18,7 @@ pdf2zh_next --gui ``` -4. Если ваш браузер не запустился автоматически, перейдите по адресу +4. Если ваш браузер не запустился автоматически, перейдите по адресу: ```bash http://localhost:7860/ @@ -26,6 +26,12 @@ Перетащите `PDF` файл в окно и нажмите `Translate`. +5. Если вы развертываете PDFMathTranslate с помощью docker и используете ollama в качестве бэкенд LLM для PDFMathTranslate, вам следует указать "Ollama host" как: + + ```bash + http://host.docker.internal:11434 + ``` + @@ -43,7 +49,7 @@ ## Обслуживание -Графический интерфейс поддерживается [Rongxin](https://github.com/reycn) +GUI поддерживается [Rongxin](https://github.com/reycn)
Часть содержимого этой страницы была переведена GPT и может содержать ошибки.
\ No newline at end of file diff --git a/docs/zh/advanced/advanced.md b/docs/zh/advanced/advanced.md index bf35eba12..dea32701f 100644 --- a/docs/zh/advanced/advanced.md +++ b/docs/zh/advanced/advanced.md @@ -5,21 +5,16 @@

目录

- [命令行参数](#命令行参数) - - [参数](#参数) - - [GUI 参数](#gui-参数) -- [速率限制配置指南](#速率限制配置指南) - - [RPM(每分钟请求数)速率限制](#rpm 每分钟请求数速率限制) - - [并发连接限制](#并发连接限制) - - [最佳实践](#最佳实践) +- [限流配置指南](#限流配置指南) - [部分翻译](#部分翻译) - [指定源语言和目标语言](#指定源语言和目标语言) - [带例外的翻译](#带例外的翻译) -- [自定义提示](#自定义提示) +- [自定义提示词](#自定义提示词) - [自定义配置](#自定义配置) - [跳过清理](#跳过清理) - [翻译缓存](#翻译缓存) - [部署为公共服务](#部署为公共服务) -- [认证与欢迎页面](#认证与欢迎页面) +- [认证与欢迎页](#认证与欢迎页) - [术语表支持](#术语表支持) --- diff --git a/docs/zh/getting-started/USAGE_webui.md b/docs/zh/getting-started/USAGE_webui.md index fb96a5956..8f2723f12 100644 --- a/docs/zh/getting-started/USAGE_webui.md +++ b/docs/zh/getting-started/USAGE_webui.md @@ -10,7 +10,7 @@ 1. 已安装 Python(3.10 <= 版本 <= 3.12) -2. 安装我们的包: +2. 安装我们的软件包: 3. 在浏览器中开始使用: @@ -26,6 +26,12 @@ 将 `PDF` 文件拖入窗口并点击 `Translate`。 +5. 如果您通过 docker 部署 PDFMathTranslate,并使用 ollama 作为 PDFMathTranslate 的后端 `LLM`,则应在 "Ollama host" 中填写 + + ```bash + http://host.docker.internal:11434 + ``` + diff --git a/docs/zh_TW/advanced/advanced.md b/docs/zh_TW/advanced/advanced.md index b6605c19e..ccb859af3 100644 --- a/docs/zh_TW/advanced/advanced.md +++ b/docs/zh_TW/advanced/advanced.md @@ -5,12 +5,7 @@

目錄

- [命令行參數](#命令行參數) - - [參數](#參數) - - [GUI 參數](#gui-參數) -- [#### 速率限制配置指南](#####-速率限制配置指南) - - [#### RPM(每分鐘請求數)速率限制](#####-rpm 每分鐘請求數速率限制) - - [#### 並發連接限制](#####-並發連接限制) - - [#### 最佳實踐](#####-最佳實踐) +- [速率限制配置指南](#速率限制配置指南) - [部分翻譯](#部分翻譯) - [指定源語言與目標語言](#指定源語言與目標語言) - [帶例外條件的翻譯](#帶例外條件的翻譯) @@ -20,7 +15,7 @@ - [翻譯緩存](#翻譯緩存) - [部署為公共服務](#部署為公共服務) - [認證與歡迎頁面](#認證與歡迎頁面) -- [術語表支援](#術語表支援) +- [術語表支持](#術語表支持) --- diff --git a/docs/zh_TW/getting-started/USAGE_webui.md b/docs/zh_TW/getting-started/USAGE_webui.md index 475be38ef..c2a775fe0 100644 --- a/docs/zh_TW/getting-started/USAGE_webui.md +++ b/docs/zh_TW/getting-started/USAGE_webui.md @@ -24,7 +24,13 @@ http://localhost:7860/ ``` - 將 `PDF` 文件拖曳至視窗中並點擊 `Translate`。 + 將 `PDF` 文件拖入視窗並點擊 `Translate`。 + +5. 如果您使用 docker 部署 PDFMathTranslate,且使用 ollama 作為 PDFMathTranslate 的後端 LLM,應在「Ollama host」欄位填入 + + ```bash + http://host.docker.internal:11434 + ``` diff --git "a/http api \350\256\276\350\256\241.md" "b/http api \350\256\276\350\256\241.md" new file mode 100644 index 000000000..86f62ba57 --- /dev/null +++ "b/http api \350\256\276\350\256\241.md" @@ -0,0 +1,72 @@ +请你出一个设计稿/调研。核心是给本项目提供 http API. + +### 要求 + +1. 不可以有 `redis` 等第三方独立服务依赖。可以import包; + +2. `fastapi` 实现 http api; + +3. 直接传递 `SettingsModel` 来配置参数; + +4. 通过 http post body 来上传要处理的目标 pdf; + +5. https://github.com/gradio-app/gradio/issues/1608#issuecomment-1247038215 使用类似的方法,在 GUI 启动时自动启动对应的 API 服务。以下是其详细内容: + + Hi @sciai-ai I took a dive into FastAPI and it turns out that it is actually possible to serve your Gradio app within another FastAPI app quite easily using FastAPI's mount() method. Here's a little demo I put together: + + ```python + + """ + How to launch your Gradio app within another FastAPI app. + + Run this from the terminal as you would normally start a FastAPI app: `uvicorn run:app` + and navigate to http://localhost:8000/gradio in your browser to see the Gradio app. + """ + from fastapi import FastAPI + import gradio as gr + + CUSTOM_PATH = "/gradio" + + app = FastAPI() + + @app.get("/") + def read_main(): + return {"message": "This is your main app"} + + io = gr.Interface(lambda x: "Hello, " + x + "!", "textbox", "textbox") + gradio_app = gr.routes.App.create_app(io) + + app.mount(CUSTOM_PATH, gradio_app) + + ``` + + This serves the main app on `localhost:8000`, which could be an API endpoint, and it serves the Gradio app on `http://localhost:8000/gradio` and allows you to create a Gradio app within another FastAPI app. This should allow you to do what you're looking for, so I'll go ahead and (finally!) close this issue. If not, feel free to reopen with more details. + +6. 提供一个简易队列功能,允许排队。 + +### 需要提供的 API + +1. 使用 `Settingsmodel` + 上传 PDF 来创建任务,并返回任务 id。 任务 id 使用 `pdf2zh_next.4位随机16进制.uuid` 格式。其中 "pdf2zh_next"固定前缀,`uuid` 是随机生成的一个 `uuid`。例如:`pdf2zh_next.3E87.uuid`; + +2. 仅上传 PDF,使用**默认配置**创建任务; + + **默认配置**指 `gui.py` 第 214 行: + + ```python + settings = config_manager.initialize_cli_config() + ``` + +3. 使用任务ID查询任务; + +4. 下载结果文件; + +5. 取消任务。 + +- 任务信息仅保存在内存中。重启后原先所有任务丢失,原有任务id失效。 + +- 内存中最多允许排队 `10` 个任务,超出则报错。(排队任务数可在配置中修改) + +- 内存中最多保存最新的 `1000` 个任务的进度信息,超出的自动删除。(先进先出)(保存任务数可在配置中修改) + + +- 使用 GUI 进行的翻译也要归到这个队列里。 \ No newline at end of file diff --git a/http_api_design.md b/http_api_design.md new file mode 100644 index 000000000..2c6408910 --- /dev/null +++ b/http_api_design.md @@ -0,0 +1,253 @@ +### 背景与目标 + +- **目标**: 为 PDFMathTranslate-next 提供基于 FastAPI 的 HTTP API,实现任务化翻译、上传 PDF、按 `SettingsModel` 配置翻译参数、查询与下载结果、取消任务,以及一个内存级队列以限制并发与排队;并在 GUI 启动时自动挂载和联动同一套队列/任务系统。 +- **约束**: + - 不依赖 Redis 等独立服务(可用内存结构与 `asyncio`/线程/进程,并可用 Python 包)。 + - 使用 FastAPI 提供 HTTP 服务。 + - 任务态与历史进度仅驻留内存,进程重启即丢失。 + - 队列默认最多排队 10 个任务;最多保存 1000 条最新任务进度(均可配置)。 + - GUI 内发起的翻译也纳入同一队列/并发控制。 + +### 现状复用点 + +- `pdf2zh_next.config`:`ConfigManager.initialize_cli_config()` 可提供默认配置;`SettingsModel`(及其子模型)是唯一权威配置模型;具备校验、转译(引擎 transform)与字段约束。 +- `pdf2zh_next.high_level`: + - `do_translate_async_stream(settings, file)` 产出结构化事件(progress_start/update/end、finish、error),是最可靠的“翻译引擎异步流接口”。 + - 子进程隔离执行,支持取消、错误回传、结构化异常。 +- `pdf2zh_next.gui.translate_file(...)`:展示了如何从 UI 入参组装 `SettingsModel`(包含速率限制、PDF 输出选项、高阶参数等),可复用其参数映射逻辑为 API 层输入校验/映射的参考。 + +### 总体架构 + +- 采用单进程 FastAPI 应用(可多 worker 部署但内存任务不共享,见“部署建议”),组件: + - TaskManager(内存任务与队列管理) + - Worker 执行器(消费队列,调用 `do_translate_async_stream`) + - Storage(仅内存,结果文件路径落到本地磁盘 `pdf2zh_files//...`) + - API 层(FastAPI 路由定义) + - GUI 集成(用 `app.mount('/gradio', gradio_app)`;GUI 产生的作业也走 TaskManager) + +### 任务模型 + +- 任务 ID 规范:`pdf2zh_next.<4位随机16进制>.uuid`(如 `pdf2zh_next.3E87.uuid`)。 +- Task 字段(内存保存): + - id、status(queued/running/succeeded/failed/cancelled)、createTime、updateTime + - inputFilePath、resultMonoPath、resultDualPath、glossaryPath + - progress(0.0~1.0)、progressDesc、parts(total/idx)、stage(stage_current/total) + - error(message、type、details) + - settings(`SettingsModel` 的简化快照,避免敏感字段外泄) + +### 队列与并发控制 + +- 限制: + - `max_queue_size` 默认 10(可通过环境或 API 启动参数覆盖) + - `max_history_progress` 默认 1000,用环形缓冲或 FIFO 列表维护最近任务信息 + - `max_concurrency` 默认 1(可配置),决定并行运行任务数 +- 数据结构: + - `collections.deque` 作为等待队列 + - `dict[str, Task]` 作为任务表;另有 `OrderedDict` 维护进度历史的裁剪 +- 取消:设置 task.cancel_flag,调用 `AsyncCallback`/管道触发取消;worker 感知后停止并更新状态 + +### API 设计 + +- 路径前缀:`/api/v1` + +1) 创建任务(带 SettingsModel) +- `POST /api/v1/tasks` + - Content-Type: `multipart/form-data` + - `file`: PDF(二进制)或 `link`: URL(二选一) + - `settings`: JSON(`SettingsModel` 结构,若省略则使用默认) + - 响应: `{ task_id }` + +2) 创建任务(仅上传 PDF,使用默认配置) +- `POST /api/v1/tasks/default` + - multipart form:`file` 或 `link` + - 响应: `{ task_id }` + +3) 查询任务 +- `GET /api/v1/tasks/{task_id}` + - 响应: 任务元信息(status、progress、文件可用性、错误信息、创建/更新时间等) + +4) 下载结果 +- `GET /api/v1/tasks/{task_id}/result`(聚合) + - 响应: `{ mono_url, dual_url, glossary_url }`(如可访问则返回 URL;或 404) +- `GET /api/v1/tasks/{task_id}/files/mono|dual|glossary` + - 以 `FileResponse` 方式直传下载 + +5) 取消任务 +- `POST /api/v1/tasks/{task_id}/cancel` + - 响应: `{ ok: true }`(若处于 queued/running 则尝试取消;终态返回 409) + +6) 健康检查 +- `GET /health` + - 响应: `{ status: "ok", version: string, queue_size: int, running: int }` + - 说明:用于探针/监控,默认豁免鉴权(可通过配置修改)。 + +- 错误码: + - 400(参数错误/文件非法)、401(未认证/令牌无效)、404(任务不存在)、409(队列满/任务终态不可取消)、429(队列满时也可用) + +### SettingsModel 输入映射 + +- 支持两种输入: + - 直接传完整 `SettingsModel` JSON;服务端用 `SettingsModel(**payload)` 校验;并进行 `validate_settings()`;敏感字段(如 API Key)按原样使用但不回传 + - 默认配置:通过 `ConfigManager.initialize_cli_config()` 获取基础 `CLIEnvSettingsModel`,再 `to_settings_model()` +- 与 GUI 统一:保留 `gui.py` 中 `_build_translate_settings` 的映射规则作为参考,API 端不必暴露所有 UI 粒度字段;如需精细控制,可接受 `ui_inputs` 风格 JSON 并在服务端复用该构造流程(可选 V2) + +### Worker 执行流 + +- 入队 → 调度器根据并发度唤醒 Worker → 调用 `_prepare_input_file`(文件/链接下载,重用 `gui.py` 的实现思路)→ 根据 settings 生产输出目录 → `async for event in do_translate_async_stream(settings, file)`: + - progress_* 事件:更新内存任务进度 + - finish:写入 `mono_pdf_path/dual_pdf_path/glossary_path`,置 `succeeded` + - error:填充错误信息,置 `failed` +- 任务结束后:任务进度记录入历史队列,超出 `max_history_progress` 则丢弃最旧 + +### 与 GUI 的集成 + +- 在 FastAPI app 中使用 `app.mount('/gradio', gradio_app)`,GUI 按钮触发时不直接执行 `translate_file`,而是改为调用 TaskManager 的“创建任务”接口(或内部 API 调用),从而保证: + - GUI 任务与 HTTP 任务共享相同的队列/并发与统计 + - 取消操作亦走同一逻辑 +- 方案 A(推荐):将 `translate_file` 的核心“构建设置 + 提交执行”的部分抽象成 `enqueue_translation(settings, file_or_link)`,GUI 改调用该函数; +- 方案 B:GUI 继续原实现,但由 TaskManager 提供一个“内部队列接入适配器”,在 GUI 创建任务时经由适配器将作业统一登记 + +### 内存实现要点(无外部依赖) + +- 任务表、队列、运行中集合均为内存结构;使用 `asyncio.Queue` 或 `deque` + 自管信号; +- 通过 `max_queue_size` 限制等待队列长度; +- 结果文件落盘路径与 GUI 相同(`pdf2zh_files//`),避免重复实现; +- 取消通过与 `high_level` 一致的管道/事件触发; + +### 并发与健壮性 + +- 限制并发度以避免过载; +- 子进程崩溃由 `high_level` 已捕获并上抛结构化错误; +- 进程重启会丢任务信息与队列,文档中明确声明; +- 大文件上传限制(例如 200MB),并在下载链接模式下增加超时与大小保护(参考 `download_with_limit`)。 + +### 存储与文件生命周期(当前策略) + +- 暂无自动清理:当前版本不内置结果文件自动清理/过期策略,重启不会自动删除历史结果。 +- 手动清理建议: + - 定期清理 `pdf2zh_files` 下的历史任务目录(可按 mtime/完成时间)。 + - 示例(按 7 天过期): +```bash +find pdf2zh_files -type d -mtime +7 -exec rm -rf {} + +``` +- 留足磁盘空间:部署前请评估典型 PDF 规模与并发度,合理预留磁盘(建议 10~20GB 起,根据业务调整)。 +- 磁盘空间监控:建议使用外部监控/告警(如 Prometheus node_exporter)或定期 `df/du` 检查;V2 计划提供阈值检查与后台清理器。 +- 结果过期策略(V2 规划):支持基于 TTL 的后台清理与空间阈值触发清理(FIFO/最近最少访问)。 + +### 监控与健康检查 + +- 健康检查端点:`GET /health`,返回基础运行态(版本、队列长度、运行中数量)。 +- 鉴权:默认免认证,便于负载均衡与容器编排探针;可通过豁免路径配置修改。 +- 指标(V2 规划):提供 Prometheus 指标 `/metrics`(任务耗时、错误率、队列长度、磁盘可用空间等)。 + +### 安全与鉴权(API 认证) + +- 认证要求:除 `/health`、`/docs`、`/openapi.json` 外的所有 API 需通过 Bearer Token 认证。 +- 认证方式: + - 请求头:`Authorization: Bearer ` + - 令牌来源:环境变量 `HTTP_AUTH_TOKEN`(单一 Token,必填);可选 `HTTP_AUTH_TOKENS`(逗号分隔多 Token)。 + - 校验失败:返回 401,错误码 `UNAUTHORIZED`。 +- 输入安全: + - 文件扩展名与 MIME 检查,仅允许 PDF; + - 上传大小限制:由 `HTTP_FILE_SIZE_LIMIT_MB` 控制; + - CORS:按需配置允许域; + - 结果文件路径白名单 `allowed_paths` 与 GUI 一致。 + +### 部署建议 + +- 单实例:最简,内存任务即有效; +- 多实例(多 worker / 多 Pod):因任务保存在内存,不共享;建议: + - 通过入口做粘性会话/实例亲和,或 + - 显式声明“不可水平扩展共享队列”;需要水平扩展时再演进外部持久化(见“演进计划”) + +### 目录与文件变更(实施建议) + +- 新增:`pdf2zh_next/http_api.py`(若无则创建) + - 定义 FastAPI `app`,路由、模型、异常处理器、CORS; + - 实现 TaskManager(单例)与 Worker(后台任务/线程); + - 提供 `create_app(mount_gui=True)`,在 GUI 启动时复用同一进程并 `app.mount('/gradio', gradio_app)`。 +- GUI 侧调整:将按钮触发改为排队提交(方案 A)或接入适配器(方案 B)。 + +### 示例接口定义(伪代码) + +```python +# Pydantic models +class CreateTaskResponse(BaseModel): + task_id: str + +class TaskState(BaseModel): + id: str + status: Literal['queued','running','succeeded','failed','cancelled'] + progress: float | None + progress_desc: str | None + mono: bool + dual: bool + glossary: bool + error: dict | None + created_at: float + updated_at: float + +# FastAPI routes +@router.post('/tasks', response_model=CreateTaskResponse) +async def create_task(file: UploadFile | None = File(None), link: str | None = Form(None), settings: str | None = Form(None)): + # 校验 + 反序列化 settings + # 生成 task_id, 入队 + return {"task_id": task_id} + +@router.get('/tasks/{task_id}', response_model=TaskState) +async def get_task(task_id: str): + # 返回任务状态 + +@router.get('/tasks/{task_id}/result') +async def get_result(task_id: str): + # 返回文件可用性与下载链接 + +@router.get('/tasks/{task_id}/files/{kind}') +async def download(task_id: str, kind: Literal['mono','dual','glossary']): + # FileResponse + +@router.post('/tasks/{task_id}/cancel') +async def cancel_task(task_id: str): + # 尝试取消 + +@router.get('/health') +async def health(): + return {"status": "ok"} +``` + +### 错误与返回规范 + +- 统一错误响应:`{"error": {"code": str, "message": str}}` +- 典型: + - 队列已满 → 409/429 + `QUEUE_FULL` + - 非法文件/链接 → 400 + `INVALID_INPUT` + - 未认证/令牌无效 → 401 + `UNAUTHORIZED` + - 不存在的任务 → 404 + `NOT_FOUND` + - 终态取消 → 409 + `INVALID_STATE` + +### 配置项(环境变量) + +- `HTTP_MAX_QUEUE_SIZE`(默认 10) +- `HTTP_MAX_HISTORY_PROGRESS`(默认 1000) +- `HTTP_MAX_CONCURRENCY`(默认 1) +- `HTTP_FILE_SIZE_LIMIT_MB`(默认 200) +- `HTTP_AUTH_TOKEN`(必填,单 Token) +- `HTTP_AUTH_TOKENS`(可选,逗号分隔多 Token) +- `HTTP_AUTH_EXEMPT_PATHS`(可选,默认 `/health,/docs,/openapi.json`) +- `HTTP_HEALTH_ENABLED`(可选,默认 true) + +### 演进计划 + +- V1:单实例、内存队列、GUI 共用队列、REST API 完成。 +- V2(可选): + - API 端支持 `ui_inputs` 风格 payload,服务端复用 `_build_translate_settings` 逻辑。 + - SSE/WebSocket 推送任务进度(实时)。 + - 灰度引入外部存储(如 SQLite + 文件系统)以提供重启恢复与水平扩展(保留“无 Redis”选项)。 + - 内置后台清理器(TTL/空间阈值)、磁盘空间阈值监测与指标暴露。 + +### 风险与权衡 + +- 进程重启丢任务/进度:已在文档与 API 明确说明; +- 多实例不共享队列:需要时通过演进引入持久层; +- 大文件上传与磁盘占用:建议定期清理 `pdf2zh_files`; +- API Key 等敏感信息:仅入参使用,不回传,不持久化。 From 566ca82870518c859d1d76098422979e64aa13d2 Mon Sep 17 00:00:00 2001 From: pppppop65 Date: Sat, 25 Oct 2025 18:04:01 +0800 Subject: [PATCH 2/2] docs: Update HTTP API documentation for task ID formatting and response structure --- "http api \350\256\276\350\256\241.md" | 8 ++++---- http_api_design.md | 12 ++++++------ 2 files changed, 10 insertions(+), 10 deletions(-) diff --git "a/http api \350\256\276\350\256\241.md" "b/http api \350\256\276\350\256\241.md" index 86f62ba57..0fd99d0b0 100644 --- "a/http api \350\256\276\350\256\241.md" +++ "b/http api \350\256\276\350\256\241.md" @@ -2,7 +2,7 @@ ### 要求 -1. 不可以有 `redis` 等第三方独立服务依赖。可以import包; +1. 不可以有 `redis` 等第三方独立服务依赖。可以 import 包; 2. `fastapi` 实现 http api; @@ -46,7 +46,7 @@ ### 需要提供的 API -1. 使用 `Settingsmodel` + 上传 PDF 来创建任务,并返回任务 id。 任务 id 使用 `pdf2zh_next.4位随机16进制.uuid` 格式。其中 "pdf2zh_next"固定前缀,`uuid` 是随机生成的一个 `uuid`。例如:`pdf2zh_next.3E87.uuid`; +1. 使用 `Settingsmodel` + 上传 PDF 来创建任务,并返回任务 id。任务 id 使用 `pdf2zh_next.4位随机16进制.uuid` 格式。其中 "pdf2zh_next"固定前缀,`uuid` 是随机生成的一个 `uuid`。例如:`pdf2zh_next.3E87.uuid`; 2. 仅上传 PDF,使用**默认配置**创建任务; @@ -56,13 +56,13 @@ settings = config_manager.initialize_cli_config() ``` -3. 使用任务ID查询任务; +3. 使用任务 ID 查询任务; 4. 下载结果文件; 5. 取消任务。 -- 任务信息仅保存在内存中。重启后原先所有任务丢失,原有任务id失效。 +- 任务信息仅保存在内存中。重启后原先所有任务丢失,原有任务 id 失效。 - 内存中最多允许排队 `10` 个任务,超出则报错。(排队任务数可在配置中修改) diff --git a/http_api_design.md b/http_api_design.md index 2c6408910..35d68633c 100644 --- a/http_api_design.md +++ b/http_api_design.md @@ -55,30 +55,30 @@ - Content-Type: `multipart/form-data` - `file`: PDF(二进制)或 `link`: URL(二选一) - `settings`: JSON(`SettingsModel` 结构,若省略则使用默认) - - 响应: `{ task_id }` + - 响应:`{ task_id }` 2) 创建任务(仅上传 PDF,使用默认配置) - `POST /api/v1/tasks/default` - multipart form:`file` 或 `link` - - 响应: `{ task_id }` + - 响应:`{ task_id }` 3) 查询任务 - `GET /api/v1/tasks/{task_id}` - - 响应: 任务元信息(status、progress、文件可用性、错误信息、创建/更新时间等) + - 响应:任务元信息(status、progress、文件可用性、错误信息、创建/更新时间等) 4) 下载结果 - `GET /api/v1/tasks/{task_id}/result`(聚合) - - 响应: `{ mono_url, dual_url, glossary_url }`(如可访问则返回 URL;或 404) + - 响应:`{ mono_url, dual_url, glossary_url }`(如可访问则返回 URL;或 404) - `GET /api/v1/tasks/{task_id}/files/mono|dual|glossary` - 以 `FileResponse` 方式直传下载 5) 取消任务 - `POST /api/v1/tasks/{task_id}/cancel` - - 响应: `{ ok: true }`(若处于 queued/running 则尝试取消;终态返回 409) + - 响应:`{ ok: true }`(若处于 queued/running 则尝试取消;终态返回 409) 6) 健康检查 - `GET /health` - - 响应: `{ status: "ok", version: string, queue_size: int, running: int }` + - 响应:`{ status: "ok", version: string, queue_size: int, running: int }` - 说明:用于探针/监控,默认豁免鉴权(可通过配置修改)。 - 错误码: