From f025e87c5a30ef3c6467be1426e06c20a12ac1ea Mon Sep 17 00:00:00 2001 From: Byaidu <909756245@qq.com> Date: Fri, 22 Nov 2024 22:00:08 +0800 Subject: [PATCH] Revert "Merge pull request #108 from Byaidu/dev-guide" This reverts commit 860f4bc59ea551d5beaaf563b47c54a4685f5cf9, reversing changes made to b858569ab07cdbf4d16b023becb50d0dd5c99b64. --- docs/images/banner.nocolor.png | Bin 108881 -> 0 bytes docs/images/icon/setting-one.png | Bin 942 -> 0 bytes pdf2zh/gui.py | 307 +------------------------------ pdf2zh/translator.py | 102 +--------- 4 files changed, 10 insertions(+), 399 deletions(-) delete mode 100644 docs/images/banner.nocolor.png delete mode 100644 docs/images/icon/setting-one.png diff --git a/docs/images/banner.nocolor.png b/docs/images/banner.nocolor.png deleted file mode 100644 index 039f424fbb114884231dcaf89f0b44bbcf481bc7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 108881 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

gu!xyG3{%@aX{&U>orOQ5H+W$P< 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 U;>5gaZ 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≀?VemYWqlV(Ldroy^@&+g} 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 QApigX07*qoM6N<$f(Cz_6#xJL diff --git a/pdf2zh/gui.py b/pdf2zh/gui.py index 41019f40..81656c49 100644 --- a/pdf2zh/gui.py +++ b/pdf2zh/gui.py @@ -237,12 +237,12 @@ def translate( transition: background-color 0.2s ease-in; } - .progress-bar-wrap { - border-radius: 8px !important; - } - .progress-bar { - border-radius: 8px !important; - } +.progress-bar-wrap { + border-radius: 8px !important; +} +.progress-bar { + border-radius: 8px !important; +} # .input-file label { # color: #165DFF !important; @@ -257,7 +257,7 @@ def translate( # color: #165DFF !important; # } """, -) as demo1: +) as demo: gr.Markdown("# PDFMathTranslate") with gr.Row(): @@ -280,7 +280,7 @@ def translate( # lang_src = gr.Dropdown( # label="Source Language", # info="Which translation service to use. Some require keys", - # choices=["Google", "DeepL", "DeepLX", "Azure", "OpenAI", "Ollama"], + # choices=["Google", "DeepL", "DeepLX", "Ollama", "Azure"], # value="Google", # ) lang_to = gr.Dropdown( @@ -403,297 +403,6 @@ def on_select_service(value, evt: gr.EventData): ) -class EnvSync: - """Two-way synchronization between a variable and its system environment counterpart.""" - - def __init__(self, env_name: str, default_value: str = ""): - self._name = env_name - self._value = os.environ.get(env_name, default_value) - # Initialize the environment variable if it doesn't exist - if env_name not in os.environ: - os.environ[env_name] = default_value - - @property - def value(self) -> str: - """Get the current value, ensuring sync with system env.""" - sys_value = os.environ.get(self._name) - if sys_value != self._value: - self._value = sys_value - return self._value - - @value.setter - def value(self, new_value: str): - """Set the value and sync with system env.""" - self._value = new_value - os.environ[self._name] = new_value - - def __str__(self) -> str: - return self.value - - def __bool__(self) -> bool: - return bool(self.value) - - -# Global setup -with gr.Blocks( - title="PDFMathTranslate - PDF Translation with preserved formats", - theme=gr.themes.Default( - primary_hue=custom_blue, spacing_size="md", radius_size="lg" - ), - css=""" - # .secondary-text {color: #999 !important;} - footer {visibility: hidden} - .env-warning {color: #dd5500 !important;} - .env-success {color: #559900 !important;} - .logo {border: transparent;} - .logo label {display: none;} - .logo .top-panel {display: none;} - .title {text-align: center;} - .title h1 {color: #999999 !important;} - .question {text-align: center;} - .question h2 {color: #165DFF !important;} - .info-text {text-align: center; margin-top: -5px;} - .info-text p {color: #aaaaaa !important;} - """, -) as demo3: - gr.Markdown(" ", elem_classes=["title"]) - gr.Markdown(" ", elem_classes=["title"]) - gr.Markdown(" ", elem_classes=["title"]) - gr.Markdown(" ", elem_classes=["title"]) - gr.Image("./docs/images/banner.nocolor.png", elem_classes=["logo"], width=400) - gr.Markdown("# Configuration Guide

", elem_classes=["title"]) - gr.Markdown("## Use Google Translate?
", elem_classes=["question"]) - with gr.Row(): - gr.Markdown("") - use_google = gr.Button( - "Yes", - variant="primary", - elem_classes=["secondary-text"], - ) - use_other = gr.Button( - "No", - variant="secondary", - elem_classes=["secondary-text"], - ) - gr.Markdown("") - with gr.Row(): - gr.Markdown("") - gr.Markdown( - "Google Translate", - elem_classes=["info-text"], - ) - gr.Markdown( - "DeepL, OpenAI, and more", - elem_classes=["info-text"], - ) - gr.Markdown("") - # gr.Markdown( - # """- Properly configured.
- # - GitHub: Byaidu/PDFMathTranslate
- # - GUI by: Rongxin""" - # ) - -with gr.Blocks( - title="PDFMathTranslate - PDF Translation with preserved formats", - theme=gr.themes.Default( - primary_hue=custom_blue, spacing_size="md", radius_size="lg" - ), - css=""" - # .secondary-text {color: #999 !important;} - footer {visibility: hidden} - .env-warning {color: #dd5500 !important;} - .env-success {color: #559900 !important;} - .logo {border: transparent; - height: 10vh;} - .logo label {display: none;} - .logo .top-panel {display: none;} - .title {text-align: center; - height: 5vh;} - .title h1 {color: #999999 !important;} - .question {text-align: center;} - .question h2 {color: #165DFF !important;} - .info-text {text-align: center; margin-top: -5px;} - .info-text p {color: #aaaaaa !important;} - - @keyframes pulse-background { - 0% { background-color: #FFFFFF; } - 25% { background-color: #FFFFFF; } - 50% { background-color: #E8F3FF; } - 75% { background-color: #FFFFFF; } - 100% { background-color: #FFFFFF; } - } - - /* Add dashed border to input-file class */ - .input-file { - border: 1.2px dashed #165DFF !important; - border-radius: 6px !important; - # background-color: #ffffff !important; - animation: pulse-background 2s ease-in-out; - transition: background-color 0.4s ease-out; - width: 80vw; - height: 60vh; - margin: 0 auto; - } - - .input-file:hover { - border: 1.2px dashed #165DFF !important; - border-radius: 6px !important; - color: #165DFF !important; - background-color: #E8F3FF !important; - transition: background-color 0.2s ease-in; - box-shadow: 4px 4px 20px rgba(22, 93, 255, 0.1); - } - - - .input-file label { - color: #165DFF !important; - border: 1.2px dashed #165DFF !important; - border-left: none !important; - border-top: none !important; - } - .input-file .top-panel { - color: #165DFF !important; - border: 1.2px dashed #165DFF !important; - border-right: none !important; - border-top: none !important; - } - .input-file .filename { - color: #165DFF !important; - background-color: #FFFFFF !important; - } - .input-file .download { - color: #165DFF !important; - background-color: #FFFFFF !important; - } - .input-file .wrap { - color: #165DFF !important; - } - .input-file .or { - color: #165DFF !important; - } - - .progress-bar-wrap { - border-radius: 8px !important; - } - .progress-bar { - border-radius: 8px !important; - } - - .options-row { - align-items: center; - display: flex; - } - .options-row .wrap { - align-items: center; - justify-content: center; - flex-wrap: wrap; - gap: 1rem;} - - .options-row .form label { - color: #999;} - .options-row .form { - border: none !important; - align-items: center !important;} - .options-row [data-testid="block-info"] { - display: none !important;} - .logo-row { - align-items: center;} - .title-row { - align-items: center;} - .details-row { - align-items: center;} - .hide-frame { - border: none !important;} - .hide-frame .top-panel { - display: none !important;} - .hide-frame label { - display: none !important;} - .options-icon { - height: 2em; - width: 2em; - } - .options-btn { - line-height: var(--line-md); - background-color: #FFFFFF; - border: 1.2px solid var(--checkbox-label-border-color) !important; - border-radius: 6px !important; - # color: var(--checkbox-label-border-color) !important; - color: #999; - transition: background-color 0.2s ease-in; - } - .options-btn:hover { - background-color: #fafafa; - # border: 1.2px solid #fcfcfc !important; - } - """, -) as demo: - with gr.Row(elem_classes=["logo-row"]): - gr.Image("./docs/images/banner.nocolor.png", elem_classes=["logo"]) - with gr.Row(elem_classes=["title-row"]): - gr.Markdown("# PDFMathTranslate", elem_classes=["title"]) - with gr.Row(elem_classes=["input-file-row"]): - gr.File( - label="Upload PDF", - file_count="single", - file_types=[".pdf"], - interactive=True, - elem_classes=["input-file", "secondary-text"], - ) - with gr.Row(elem_classes=["options-row"]): - gr.Markdown("") - # gr.Dropdown( - # ["Google", "DeepL", "DeepLX", "Azure", "OpenAI", "Ollama"], - # value="Google", - # label="Translation Service", - # interactive=True, - # elem_classes=["secondary-text"], - # ) - # gr.Dropdown( - # [ - # "Chinese", - # "English", - # "French", - # "German", - # "Japanese", - # "Korean", - # "Russian", - # "Spanish", - # ], - # value="Chinese", - # label="To", - # interactive=True, - # elem_classes=["secondary-text"], - # scale=2, - # ) - gr.Radio( - ["All Pages", "First Page", "First 5 Pages"], - value="All Pages", - label="Pages", - interactive=True, - elem_classes=["secondary-text"], - scale=2, - ) - gr.Markdown("") - with gr.Row(elem_classes=["options-row"]): - gr.Markdown("") - gr.Markdown("") - # gr.Image( - # "./docs/images/icon/setting-one.png", - # elem_classes=["hide-frame", "options-icon"], - # scale=1, - # ) - # gr.Markdown("Advanced Settings", elem_classes=["secondary-text"]) - gr.Button( - "⚙️ Advanced Options", - variant="secondary", - elem_classes=["options-btn"], - ) - gr.Markdown("") - gr.Markdown("") - # with gr.Row(elem_classes=["details-row"]): - # gr.Markdown("Technical details", elem_classes=["info-text"]) - - def setup_gui(share=False): try: demo.launch(server_name="0.0.0.0", debug=True, inbrowser=True, share=share) diff --git a/pdf2zh/translator.py b/pdf2zh/translator.py index ff82055a..173bade0 100644 --- a/pdf2zh/translator.py +++ b/pdf2zh/translator.py @@ -11,10 +11,6 @@ from azure.ai.translation.text import TextTranslationClient from azure.core.credentials import AzureKeyCredential -import hmac -import hashlib -import time -from datetime import datetime,UTC class BaseTranslator: def __init__(self, service, lang_out, lang_in, model): @@ -62,96 +58,6 @@ def translate(self, text): result = html.unescape(re_result[0]) return result -class TencentTranslator(BaseTranslator): - def sign(self,key, msg): - return hmac.new(key, msg.encode("utf-8"), hashlib.sha256).digest() - - def __init__(self, service, lang_out, lang_in, model): - lang_out = "zh" if lang_out == "auto" else lang_out - lang_in = "en" if lang_in == "auto" else lang_in - super().__init__(service, lang_out, lang_in, model) - try: - server_url = ( - "tmt.tencentcloudapi.com" - ) - self.secret_id = os.getenv("Tencent_SECRET_ID") - self.secret_key = os.getenv("Tencent_SECRET_KEY") - - except KeyError as e: - missing_var = e.args[0] - raise ValueError( - f"The environment variable '{missing_var}' is required but not set." - ) from e - - self.session = requests.Session() - self.base_link = f"{server_url}" - - def translate(self, text): - text = text[:5000] - data={ - "SourceText":text, - "Source":self.lang_in, - "Target":self.lang_out, - "ProjectId":0 - } - payloadx = dumps(data) - hashed_request_payload = hashlib.sha256(payloadx.encode("utf-8")).hexdigest() - canonical_request = ("POST" + "\n" + - "/" + "\n" + - "" + "\n" + - "content-type:application/json; charset=utf-8\nhost:tmt.tencentcloudapi.com\nx-tc-action:texttranslate\n" + "\n" + - "content-type;host;x-tc-action" + "\n" + - hashed_request_payload) - - timestamp = int(time.time()) - date = datetime.fromtimestamp(timestamp, UTC).strftime("%Y-%m-%d") - credential_scope = date + "/tmt/tc3_request" - hashed_canonical_request = hashlib.sha256(canonical_request.encode("utf-8")).hexdigest() - algorithm = "TC3-HMAC-SHA256" - string_to_sign = (algorithm + "\n" + - str(timestamp) + "\n" + - credential_scope + "\n" + - hashed_canonical_request) - secret_date = self.sign(("TC3" + self.secret_key).encode("utf-8"), date) - secret_service = self.sign(secret_date, "tmt") - secret_signing = self.sign(secret_service, "tc3_request") - signed_headers = "content-type;host;x-tc-action" - signature = hmac.new(secret_signing, string_to_sign.encode("utf-8"), hashlib.sha256).hexdigest() - authorization = (algorithm + " " + - "Credential=" + self.secret_id + "/" + credential_scope + ", " + - "SignedHeaders=" + signed_headers + ", " + - "Signature=" + signature) - self.headers = { - "Authorization": authorization, - "Content-Type": "application/json; charset=utf-8", - "Host": "tmt.tencentcloudapi.com", - "X-TC-Action": "TextTranslate", - "X-TC-Region":"ap-beijing", - "X-TC-Timestamp": str(timestamp), - "X-TC-Version": "2018-03-21" - } - - response = self.session.post( - "https://"+self.base_link, - json=data, - headers=self.headers, - ) - # 1. Status code test - if response.status_code == 200: - result = loads(response.text) - else: - raise ValueError("HTTP error: " + str(response.status_code)) - # 2. Result test - try: - result = result['Response']['TargetText'] - return result - except KeyError: - result = "" - raise ValueError("No valid key in Tencent's response") - # 3. Result length check - if len(result) == 0: - raise ValueError("Empty translation result") - return result class DeepLXTranslator(BaseTranslator): def __init__(self, service, lang_out, lang_in, model): @@ -172,11 +78,7 @@ def __init__(self, service, lang_out, lang_in, model): ) from e self.session = requests.Session() - server_url=server_url.rstrip('/') - if auth_key: - self.base_link = f"{server_url}/{auth_key}/translate" - else: - self.base_link = f"{server_url}/translate" + self.base_link = f"{server_url}/{auth_key}/translate" self.headers = { "User-Agent": "Mozilla/4.0 (compatible;MSIE 6.0;Windows NT 5.1;SV1;.NET CLR 1.1.4322;.NET CLR 2.0.50727;.NET CLR 3.0.04506.30)" } @@ -210,6 +112,7 @@ def translate(self, text): raise ValueError("Empty translation result") return result + class DeepLTranslator(BaseTranslator): def __init__(self, service, lang_out, lang_in, model): lang_out='ZH' if lang_out=='auto' else lang_out @@ -315,4 +218,3 @@ def translate(self, text) -> str: translated_text = response[0].translations[0].text return translated_text -