QudadFlow Translator Privacy Policy
Version 0.8.15 · Effective date: October 23, 2026This policy explains how QudadFlow Translator processes information when you use the Microsoft Edge / Google Chrome extension. Developer and privacy contact: lcf1249288484@outlook.com.
Information processed
After you start a translation, the extension reads your selected text or visible text from the current webpage. It sends the text, source and target languages, and the authentication and configuration fields required by your selected API directly to the endpoint you configure. Depending on the API, the request can also include a model name, translation instructions, paragraph markers, and custom request fields or headers.
The extension does not collect browsing history or start translation without your action. After you enable immersive translation, it scans the page body, open shadow roots and accessible same-origin frames, then supplements newly visible, inserted or changed text as you read. Script checks and browser-local language detection skip confidently identified target-language text; no separate remote language-detection service is called. Closing the panel, restoring the original, changing translation configuration or navigating stops supplementation. Page extraction skips editable controls, hidden content, extension translations and content marked to be excluded. Text that you explicitly select can still be sent when you request selection translation.
Document reader
The document reader in version 0.7.0 supports PDF, DOCX, TXT, and Markdown. Files you choose or drop are parsed locally using bundled libraries. When you open a remote document URL, the extension requests access to that source's HTTP(S) scheme and host on all ports, then downloads the file into the browser. Where browser rules permit, this download may include that source site's login cookies. Your translation API key is not attached to document downloads. Local file selection does not require broad file-URL access.
Opening or navigating a document does not start translation. After you click a translate button, extracted text and the translation request settings are sent to your configured API; original PDF or DOCX file bytes and PDF passwords are not uploaded to it. Embedded images are sent only through the optional AI workflow described below. Source URLs are kept in the reader's temporary input, not sent as translation context. Passwords, if requested by an encrypted PDF, are used only for local decryption. JavaScript and external resources embedded in documents are not executed or fetched.
The open reader holds file data, extracted text, and translations in tab memory. Closing or replacing the document clears that reader state. Successful text translations may also remain in the bounded service-worker memory cache described below. No original document library or body-translation history is saved; optional research memory is described below. If you export bilingual TXT, the browser saves that file to your chosen download location; delete it there when no longer needed.
Optional AI picture/chart workflow (0.8.15)
Traditional translation APIs and AI can both translate document body text. The separate workflow at the bottom can locally identify numbered PDF figures and tables, extract Word images, or capture a manually selected PDF region or whole page. Local extraction and previews do not call an API. After you click an analysis button, the extension sends the chosen image(s), target language, analysis instructions, model and authentication fields directly to the active OpenAI-compatible API endpoint selected in Settings, using the model selected in the reading interface. A whole-page capture includes the visible content of that page as an image. The original document file and its password are not sent.
The separate, optional AI figure-localisation action in the figure overview sends an image of each explicitly selected PDF page, including visible body text, its image dimensions, existing page-crop labels and normalized coordinates, and up to 24,000 characters of extracted text from that page to the image-capable model selected on the active API. An empty page-range field means only the current page. Pages are sent sequentially with no extension-imposed API deadline. If unusable JSON or coordinates leave a page with no valid crops, the same image and page text may be sent once more with a format-correction instruction. Invalid candidates are reported without discarding valid ones; after an unsuccessful correction, processing continues with the next selected page. An API/HTTP or network error stops subsequent requests immediately; Stop cancels the sequence. The user can explicitly retry the reported problem pages. This action does not use Skills or notebook memory and does not save localisation responses to research memory. Temporary page diagnostics and retry selections remain only in reader-tab memory, are cleared when the document is replaced or closed, and are not logged externally by the extension. Returned crop coordinates are validated and shown for review; only candidates you confirm enter the gallery, including after partial failures. Uncertain or replacement crops require manual selection. Confirmed replacement clears that item's analysis and code drafts. Coordinates, captions and image-table transcriptions require comparison with the source.
Extracted document images, previews and AI results are held in the reader's tab memory and bypass the service-worker text cache. Opted-in research results may additionally be saved in the research database described below. Replacing or closing the document clears them; changing the configuration clears analysis results. Images you download and bilingual TXT exports remain in your chosen download folder. The AI provider applies its own retention terms. Choose the image region and endpoint with care, and verify AI text and chart explanations against the original.
Paper Q&A, Skills and optional cross-page memory (0.8.8)
The paper action opens an independent browser window with locally captured article text, tables, figure candidates and source information. Generic extraction is available again after navigating to another paper; the existing window keeps its captured source. This does not start background crawling, automatically read supplements, or synchronize the previous window to a later page. Full-paper analysis sends the complete extracted material without a fixed body-character cutoff, subject to your provider's limits.
The default paper overview lists figures/tables identified by captions, references or chart semantics, excluding ordinary webpage images and automatic whole-viewport images. Explicit manual screenshot supplements remain available. Selection and search stay in local window memory. Unloaded originals may show locally captured thumbnail previews, otherwise placeholders; previews remain separate from analysis-ready originals. Select all includes usable figures/image tables outside the current search and originals awaiting loading; clear selection removes the shared selection. Native text tables already enter paper context without selection. Selection alone does not download originals or call AI. Explicit batch loading can target all pending originals, search matches or selected items; it combines their source-permission requests and downloads without AI. An explicit batch analysis sends selected loaded images one at a time; paper Q&A uses direct images or the explicit multi-image reading and synthesis flow described below. Search does not deselect hidden items, and the overview shows their count. Closing or reloading the window clears its selection.
Native webpage/Word tables and TXT/Markdown pipe tables are extracted locally into copyable text without AI. Copy writes the chosen table to your system clipboard; if permission fails, a selected read-only text field permits manual copying. Markdown/TSV downloads save table content to your chosen download directory and remain there until deleted. Explicit image-table transcription sends the selected image and related material through the AI workflow below; results are unverified and may be retained by optional notebook memory. Copying or downloading an existing table makes no new API request.
After you explicitly capture an article, the paper window automatically reads eligible same-origin numbered full-table links from that captured page. The download runs in the bound original article document and may use that website's existing login cookies; it does not attach your translation API key or request new host permissions. Downloaded HTML is parsed locally in a detached, inert template without executing scripts or fetching embedded resources. Successfully read tables join the temporary capture, copy/export controls and paper material sent when you explicitly ask AI a question. An unreadable or unavailable table keeps its source link and retry action. This step does not call AI, read supplementary attachments or crawl other websites. Table-page downloads have a 20-second resource timeout and a 5 MB limit; translation and AI calls keep their separate no-deadline behavior.
Paper Q&A can send up to four explicitly selected original figure images (12 MB total), captions and source labels together with the paper material to the chosen AI endpoint. The dedicated Select all and ask action selects all usable figures and explicitly loads pending originals, requesting their source permissions within that click; it does not submit an AI question. For larger selections, submitting the question sends each image, caption, related extraction-page text and question sequentially to the selected AI, then sends all labeled AI readings with the selected paper material in a final synthesis request. N images require N+1 requests. The final call receives unverified AI readings rather than the original images. Per-image steps do not use or save notebook memory; the final answer follows the selected Skill and memory setting. Stop or a failed request ends the remaining sequence and synthesis; completed image results remain in window memory and can be exported. Loading an image alone does not call AI. The local window retains at most 20 conversation turns; follow-up requests include up to the latest six completed turns, within 24,000 characters. Incomplete answers can be exported but are excluded from follow-up context. Conversation state stays in the window's memory unless you enable notebook saving or export Markdown. Closing/reloading the window clears that in-memory conversation; the separate capture cache below may remain.
Clicking the webpage paper action explicitly extracts article text, tables, captions and image candidates locally. The standard action may temporarily capture the active viewport and retain only visible chart crops. The paper window offers a separate supplementation step that retains the whole visible source-page screenshot, including any visible interface or personal content, as a preview in the same window. Numbered-reference cross-checks run locally and do not automatically call AI. You can also explicitly import or paste PNG/JPEG/WebP screenshots into either research view. Imported images remain in that window's memory. Capture, import and paste do not call AI or automatically select an image. Only clicking image analysis or submitting paper Q&A with selected images sends their pixels to your chosen AI endpoint. Check the preview and crop unwanted content before analysis. Offscreen/remote images require a separate load action and optional source-domain access; image downloads omit cookies and reject redirects. Image source URLs can be retained in the temporary capture to support this action.
Webpage captures use local IndexedDB, with at most four captures, up to 16 MB image bytes each (including at most 12 supplementary screenshots), and a one-hour lifetime that supplementation does not extend. The cache also keeps a temporary browser tab/window/document binding, page title and a URL digest to prevent mixing screenshots from different papers. This binding is used only locally and is not sent to AI; URL query parameters are not stored as part of the binding. Expired captures are removed on subsequent research management/capture access, not by a background deletion timer. Closing a research tab does not immediately erase this cache. Local document images remain in tab memory. Removing the extension deletes this local database.
Paper, chart and code-generation analysis sends the selected material, captions, related page text, source title/page and HTTP(S) origin/path (without URL query, fragment or credentials), selected Skill instructions, optional question and enabled notebook context to your chosen AI endpoint. Source filenames can appear as titles. The raw document and its password are not uploaded. Basic document-body translation does not include source URLs or research memory. API providers apply their own retention and billing terms.
Skills are local text prompt templates, not executable scripts. Research memory is off by default. If enabled, completed analysis text, a bounded source excerpt and sanitized source metadata are saved as individual IndexedDB records, isolated by notebook. Each subsequent opted-in request selects at most six records from that notebook, bounded to 4,000, 6,000 (default) or 12,000 characters. Ordinary translation does not create or use this memory. It is not automatically synced to the developer, GitHub or other devices.
Memory is limited globally to 300 records and two million content characters, with at most 2,000 source-excerpt characters and 10,000 analysis characters per record. Duplicate records are deduplicated and oldest records are evicted when capacity is exceeded. Choose retention of 7, 30 or 90 days (default), or capacity-only retention. Expired records are excluded from context immediately and removed on subsequent research management access. Disabling memory stops future use/saving but does not erase existing records. Settings supports searching, deleting entries/notebooks, clearing a notebook, and exporting all saved research as JSON or Markdown. Exports contain saved research text, sources and Skills, but no extension API configuration or image bytes. Text you place in source material or Skills may itself contain personal information; it remains part of that content.
Python/R generation returns text drafts and optional downloads; the extension never executes generated code. Downloaded scripts, notes, images and exports persist in your selected folder until you delete them. Verify code and data independently.
Translation providers
QudadFlow Translator does not operate a translation server or proxy. You choose the API provider and endpoint, including Google Cloud Translation, DeepL, Microsoft Translator, an OpenAI-compatible service, or a custom JSON service. That provider receives your translation requests and applies its own privacy, retention, security, and billing terms. Choose a trusted endpoint; use HTTPS for remote services.
Provider privacy information: Google, DeepL, and Microsoft. For other endpoints, consult the provider you configure.
Optional upstream model discovery and draft testing (0.7.1)
Clicking Read upstream models sends your current draft API key and configured custom headers directly to the same-origin models route derived from the OpenAI-compatible endpoint (normally /v1/models). It does not send webpage text, documents, research memory or images. Requests omit cookies, reject redirects, and accept at most 2 MB of response data and 1,000 unique model entries. Full model details stay in the settings tab. A compact catalog of model IDs, recognized input/output modalities, fetch time and a SHA-256 connection digest is saved in browser-local storage. Raw keys, endpoints and headers are not copied into catalog records. Catalogs are isolated by provider, endpoint, credentials and custom headers, limited to 1,000 models per connection, 20 connections and 2 MB total; oldest catalogs are evicted when capacity is exceeded. Catalogs have no time-based expiry, are not synced or sent to the developer, and are removed with extension data. Reading-page selectors use the matching catalog. With a saved AI connection and no catalog, opening a reading view automatically requests the model list with the saved active credentials and existing host permission. Every reading selector also offers Refresh/Cancel. Multiple views share one in-flight request; cached lists are reused. Errors and empty lists keep the current model, and a failed automatic read is retried only explicitly within that worker session. These calls send no webpage text, documents, images or research memory. Reading-page messages cannot supply an alternate endpoint or key. Changing the active connection aborts its old discovery request. The shared request can continue after one reading view closes so that other views can use its result. API schemes switch only in Settings; reading pages change only the shared active model and the active saved scheme's model, stopping existing work. Discovery does not select a model or activate an unsaved draft.
You explicitly choose whether to copy a model ID into the draft. Missing capabilities remain unknown. Test connection sends the fixed sentence “This is a connection test.” and the current draft settings to the configured translation endpoint, bypassing the cache. Testing does not save or apply the draft and does not validate image input. Model loading and tests can request persistent optional permission for the API host; canceling a request or leaving without saving does not revoke that permission. Use browser extension settings to revoke retained grants.
Translation, model discovery, connection tests and AI analysis have no extension-imposed deadline. They wait until completion, an actual HTTP/network/stream failure or manual cancellation. Closing or leaving a settings tab cancels its pending model/test requests. Provider and browser/network limits can still interrupt calls. Separate document and image downloads retain resource safeguards.
Local storage and API keys
Immersive text color and the configurable webpage shortcut are saved as local browser preferences, separately from API profiles. They are not sent to providers or the developer. Changing them does not retranslate text, cancel active translation or clear its memory cache. The default Shift+A shortcut starts immersive translation only on already authorized HTTP/HTTPS pages; inputs and editors retain Select All. You can type and save or record another combination, reset or disable it in settings.
Settings-section fold preferences are stored locally in this browser using localStorage. They contain section identifiers and open/closed states, not paper material or credentials.
You can save up to 20 named API configurations, including their keys, endpoints, headers, and preferences, in browser-local extension storage. The existing configured connection is preserved when this feature is first used. Selecting a scheme for editing does not apply it until you save; API schemes can only be applied in Settings. Deleting the active scheme also clears its live connection, while other schemes keep their own credentials. Saved configurations are not synced to GitHub or to the developer. They are configuration history, not translation history.
Your API key, endpoint, model, language preferences, and custom API settings are saved in the browser's extension local storage. They are not synchronized by this extension and are not sent to the developer. API keys and custom authentication fields are sent to your configured endpoint to authenticate requests. Switching providers in the settings page keeps separate temporary connection drafts and does not automatically reuse another provider's key.
Ordinary translation results are displayed in the current page and are not saved in extension storage; optional research analysis is handled separately. Immersive translations are inserted into the webpage, where the webpage's scripts may be able to read them. Restore the original page or reload it to remove the inserted translations.
For faster repeated reading, the service worker may keep successful source-and-result pairs in memory, with a five-minute reuse window and a limit of 128 entries and 250,000 combined characters. Expired entries are removed on the next cache lookup. This cache is not written to disk, is cleared when translation configuration changes (color and shortcut preferences preserve it), and may disappear when the browser stops the worker. Connection tests bypass the cache. No persistent translation history is maintained by the extension.
Optional key-free MyMemory trial
If you explicitly enable the MyMemory basic trial, extracted text is sent via HTTPS query parameters to api.mymemory.translated.net, without an API key or source-site cookies. Source language must be chosen explicitly. The service provides translation-memory matches and machine translation, with a typical anonymous quota of 5,000 characters/day. Its terms describe long-term retention of submitted segments and third-party machine translation processing. Use non-private short samples, and review its terms and privacy policy and usage limits. The extension only calls its GET translation endpoint, never contribution/upload endpoints, and does not silently switch your configured provider. No unlimited free service is promised.
Permissions
activeTab and scripting access the current page and inject the bundled translation interface after an extension action. Storage saves your API settings and preferences locally. Context menus provide translation commands in the browser's context menu. Optional host access permits requests to the HTTP(S) API domain you configure. If you enable the selection button for a site, the browser registers the bundled content script for that site's HTTP(S) scheme and host on all ports. The script only shows a button after text is selected; selecting text alone does not send it. Disabling the setting stops the button on open pages and unregisters future loading. The browser retains the granted permission until you revoke it in extension settings.
The popup automatically shows a current-site authorization reminder when its active HTTP(S) website has not been granted access. It requests that host only after you click the authorization button; opening the popup does not request a grant. The compact reminder folds its detailed explanation. Denial or cancellation can be retried; consent hides the card immediately, and reopening a granted site reserves no card space. It checks actual browser grants, so revocation makes the reminder eligible again. Protected browser/store pages omit this card. Granting access does not translate content or automatically enable selection buttons. Settings also offers an explicit optional grant for all HTTP/HTTPS websites to reduce later page, original-image and API permission dialogs. The browser must approve it once and retains it until revoked. It permits access to those sites but does not automatically enable selection buttons everywhere or send content without your translation/analysis action. Restore per-site authorization clears optional website grants, including earlier individual/API grants; they can be requested again as needed. Browser-internal/store restrictions remain, and file-URL access is controlled separately in browser extension details.
A bundled lightweight keyboard listener is registered only on HTTP/HTTPS origins already granted to the extension, including existing open pages where the browser permits injection. It checks the configured trusted key combination and editor focus without extracting page text or recording keystrokes. The full reading interface is loaded after you invoke translation. Revoking website access disables shortcut actions and updates registration. Browser-reserved shortcuts and protected pages remain subject to browser rules.
Advertising, analytics, and remote code
The extension contains no advertising, tracking, analytics, or telemetry. The developer does not sell personal information. All executable extension code is bundled locally. API responses are handled as text data and are never executed as code.
Your choices and deletion
You can change your endpoint and credentials in the settings page, revoke site permissions through your browser's extension settings, restore translated pages, or remove the extension. Removing it deletes its local extension storage. These actions do not delete data already retained by an API provider; contact that provider about deletion and other privacy requests.
Contact and changes
For support or privacy requests, email lcf1249288484@outlook.com. Material changes to this policy will be reflected in its effective date and the extension's release information.