Privacy Policy — LingoFlow
Product: LingoFlow — Universal Translator (Chrome extension and website widget) Publisher: Mehdi Eghtedari — greeneye2096@gmail.com Version: 1.1.0 · Effective date: 31 July 2026 · Last updated: 1 August 2026
1. Summary in one paragraph
LingoFlow has no backend server, no user accounts, no analytics and no advertising. The publisher receives no data whatsoever from your use of the extension. Everything the extension stores stays inside your own browser. The only data that ever leaves your device is the text — or, if you explicitly switch it on, the audio — that you ask to be translated, and it goes directly from your browser to the translation service you selected, never through any server operated by the publisher.
2. What is stored on your device
All of the following is written to chrome.storage.local, which lives only in your browser
profile on your computer:
| Data | Purpose | Retention |
|---|---|---|
| Preferences (target/source language, engine choice, font sizes, feature toggles) | Remember your setup | Until you change them or uninstall |
| API keys you type in (DeepL, OpenAI, Anthropic, LibreTranslate) | Authenticate your own requests to those services | Until you delete them or uninstall |
| Translation cache (up to 4,000 source→translation pairs) | Avoid re-translating the same sentence, reduce cost and latency | Until you press Clear translation cache in Options, or uninstall |
| A boolean flag indicating whether tab-audio capture is active | Restore the correct button state | Session |
The publisher cannot read any of this. Uninstalling the extension deletes all of it.
3. What leaves your device, and when
3.1 Text translation
When you translate a selection, a page, or a YouTube caption, the corresponding text is sent directly from your browser to the engine you selected in Options:
| Engine | Endpoint | Credentials |
|---|---|---|
| Google (free, default) | translate.googleapis.com (the public endpoint used by Google's web translate widget) |
none |
| MyMemory | api.mymemory.translated.net |
none |
| DeepL | api-free.deepl.com / api.deepl.com |
your key |
| LibreTranslate | the server address you configure (may be your own) | optional key |
| OpenAI | api.openai.com |
your key |
| Anthropic | api.anthropic.com |
your key |
Nothing is sent until you trigger a translation. The extension never scans, uploads or indexes pages in the background.
3.2 Speech features (off by default)
- YouTube bilingual subtitles read the caption text that YouTube already renders in the page. No audio is captured. Only that text is sent to your chosen translation engine.
- Tab-audio translation (beta) starts only after you click the button. Audio from the active
tab is recorded in short segments (~6 seconds) and sent to
api.openai.comfor transcription using your OpenAI key. Segments are held in memory only and discarded immediately after the request; nothing is written to disk. - Microphone live translation starts only after you press Start and grant microphone
permission. With the Whisper engine, audio goes to
api.openai.comwith your key. With the free browser engine, Chrome's built-in Web Speech API is used — please note that Chrome transmits that audio to Google's speech-recognition service; this is behaviour of the browser itself, not of LingoFlow. - Read aloud (TTS) uses
chrome.tts, i.e. the speech voices installed in your browser or operating system.
3.3 Images and screen areas (OCR)
- Right-click → translate text in this image: the extension downloads that image and reads
the text in it. In offline mode the image never leaves your computer. In cloud mode the
image is sent to
api.openai.comusing your OpenAI key. - Select a screen area (Alt+Shift+O): a screenshot of the visible viewport of the tab you are
looking at is taken only at the moment you release the mouse, then immediately cropped to
the rectangle you drew. Only that crop is used; the full screenshot is discarded. In cloud mode
the crop is sent to
api.openai.com; in offline mode it is processed on your device by Tesseract. - Neither the screenshot, the crop, nor the image is written to disk or kept after the request. Only the recognised text and its translation may enter the local translation cache.
- The extension never captures the screen on its own initiative — a screenshot happens only in direct response to your click, menu selection or keyboard shortcut.
3.4 What is never collected
No browsing history, no page URLs, no form contents, no keystrokes, no cookies, no device fingerprints, no location, no identifiers, no crash or usage telemetry. Nothing is sold, rented or shared with third parties for advertising, and no data is used to train any model by the publisher.
4. Permissions and why each one is needed
| Permission | Why it is required |
|---|---|
storage |
Save your preferences, your API keys and the translation cache locally |
contextMenus |
Add the right-click "Translate selection / page" entries |
activeTab, scripting |
Inject the translation script into the tab you are actively using |
host_permissions (<all_urls>) |
Read and replace text on the page you ask to translate, download an image you right-clicked, capture the visible tab when you draw a selection box (Chrome requires this permission for screen capture), and call the translation endpoint you selected. It is not used to observe browsing. |
tts |
Read a translation aloud when you click the speaker icon |
sidePanel |
Show the live speech-translation panel |
tabCapture, offscreen |
Capture tab audio for speech-to-text — only after an explicit click, and only while active |
The extension requests no permission that is not used by a feature described in this policy.
5. Chrome Web Store Limited Use compliance
LingoFlow's use of information obtained through the extension adheres to the Chrome Web Store User Data Policy, including the Limited Use requirements. Specifically: data is used only to provide the translation features the user invokes; it is not transferred to the publisher or to any party other than the translation provider the user selected; it is not used for advertising, credit assessment, or any purpose unrelated to the described functionality; and no human reads the data, because it never reaches the publisher.
6. Legal basis and your rights (GDPR / EU & UK)
Because no personal data reaches the publisher, the publisher is not a controller or processor of your content. When you enter your own API key and translate text, you act as the controller of that processing, and the translation provider you chose is your processor under their terms.
For the data held locally on your device, you can at any time:
- Access / export it — Chrome DevTools → Application → Storage, or the Options page
- Rectify it — change any setting in the Options page
- Erase it — Clear translation cache, Reset all settings, or uninstall the extension
- Restrict processing — set the selection mode to off, disable YouTube subtitles, or simply do not trigger a translation
Since the publisher holds no data about you, requests for access or deletion addressed to the publisher will be answered with confirmation that no such data exists.
International transfers: the translation and speech providers you may select operate servers outside the EEA (for example in the United States). Choosing an engine means accepting that provider's own transfer safeguards. If this matters to you, use a self-hosted LibreTranslate server, which keeps all text within infrastructure you control.
7. Children
LingoFlow is a general-purpose utility and is not directed at children under 16. The publisher knowingly collects no data from anyone, including children.
8. Security
There is no server to breach. API keys stay in your browser profile and are transmitted only over HTTPS, and only to the provider that issued them. Network calls are made from the extension's service worker, so keys are never exposed to the web page you are viewing. You should still treat your keys as secrets and revoke them if your device is compromised.
9. Third-party services
Third-party providers process the text or audio you send them under their own privacy policies: Google, MyMemory (Translated s.r.l.), DeepL SE, OpenAI, Anthropic, and — if you configure one — the LibreTranslate instance you point to. Please review the policy of whichever provider you enable. The publisher has no affiliation with, and no control over, any of them.
10. Changes to this policy
Material changes will be published together with a new version of the extension and reflected in the "Last updated" date above. Continued use after an update constitutes acceptance of the revised policy.
11. Contact
Mehdi Eghtedari — greeneye2096@gmail.com
A Persian translation of this policy is available in PRIVACY-fa.md. In case of any
discrepancy, this English version prevails.
سیاست حریم خصوصی — LingoFlow
محصول: LingoFlow — مترجم همهجانبهٔ وب (افزونهٔ کروم و ویجت وبسایت) ناشر: مهدی اقتداری — greeneye2096@gmail.com نسخه: ۱.۱.۰ · تاریخ اجرا: ۹ مرداد ۱۴۰۵ · آخرین بهروزرسانی: ۱۰ مرداد ۱۴۰۵ (۱ اوت ۲۰۲۶)
این ترجمهٔ فارسی برای راحتی شماست. در صورت اختلاف، نسخهٔ انگلیسی (
PRIVACY.md) معتبر است.
۱) خلاصه در یک بند
LingoFlow هیچ سرور، حساب کاربری، ابزار تحلیل و تبلیغاتی ندارد. ناشر هیچ دادهای از استفادهٔ شما دریافت نمیکند. هر چیزی که افزونه ذخیره میکند داخل مرورگر خودتان میماند. تنها دادهای که دستگاه شما را ترک میکند، متنی است (یا در صورت فعالسازی صریح، صدایی) که خودتان درخواست ترجمهاش را دادهاید، و آن هم مستقیماً از مرورگر شما به سرویس ترجمهای که انتخاب کردهاید میرود، نه از طریق هیچ سرور متعلق به ناشر.
۲) آنچه روی دستگاه شما ذخیره میشود
همهٔ موارد زیر در chrome.storage.local نوشته میشود که فقط داخل پروفایل مرورگر شما وجود دارد:
| داده | هدف | مدت نگهداری |
|---|---|---|
| تنظیمات (زبان مبدأ و مقصد، موتور، اندازهٔ فونت، کلیدهای فعال/غیرفعال) | یادآوری پیکربندی شما | تا زمان تغییر یا حذف افزونه |
| کلیدهای API که خودتان وارد میکنید | احراز هویت درخواستهای خودِ شما به همان سرویس | تا زمان حذف توسط شما |
| حافظهٔ نهان ترجمه (حداکثر ۴٬۰۰۰ جفت متن) | جلوگیری از ترجمهٔ تکراری، کاهش هزینه و تأخیر | تا فشردن «پاککردن حافظهٔ نهان» یا حذف افزونه |
| یک متغیر بله/خیر برای وضعیت ضبط صدای تب | بازیابی وضعیت درست دکمه | موقت |
ناشر به هیچکدام از اینها دسترسی ندارد. با حذف افزونه، همهٔ آنها پاک میشوند.
۳) آنچه دستگاه شما را ترک میکند، و دقیقاً چه زمانی
۳-۱) ترجمهٔ متن
وقتی یک متن انتخابی، یک صفحه یا یک زیرنویس یوتیوب را ترجمه میکنید، متن مربوطه مستقیماً از مرورگر شما به موتوری که در تنظیمات انتخاب کردهاید ارسال میشود:
| موتور | نقطهٔ پایانی | اعتبارنامه |
|---|---|---|
| Google (رایگان، پیشفرض) | translate.googleapis.com |
ندارد |
| MyMemory | api.mymemory.translated.net |
ندارد |
| DeepL | api-free.deepl.com / api.deepl.com |
کلید خودتان |
| LibreTranslate | آدرسی که خودتان تعیین میکنید (میتواند سرور خودتان باشد) | اختیاری |
| OpenAI | api.openai.com |
کلید خودتان |
| Anthropic | api.anthropic.com |
کلید خودتان |
تا وقتی خودتان ترجمهای را آغاز نکنید، هیچ چیزی ارسال نمیشود. افزونه در پسزمینه هیچ صفحهای را اسکن، آپلود یا فهرستبندی نمیکند.
۳-۲) قابلیتهای گفتاری (بهصورت پیشفرض خاموش)
- زیرنویس دوزبانهٔ یوتیوب فقط متنی را میخواند که خودِ یوتیوب در صفحه نمایش داده است. هیچ صدایی ضبط نمیشود.
- ترجمهٔ صدای تب (آزمایشی) فقط بعد از کلیک شما شروع میشود. صدا در قطعات کوتاه (حدود ۶ ثانیه)
ضبط و با کلید خودتان به
api.openai.comفرستاده میشود. قطعات فقط در حافظه نگهداری و بلافاصله پس از درخواست دور ریخته میشوند؛ چیزی روی دیسک نوشته نمیشود. - ترجمهٔ زندهٔ میکروفون فقط پس از فشردن «شروع» و اجازهٔ دسترسی به میکروفون آغاز میشود. در حالت Whisper صدا با کلید خودتان به OpenAI میرود. در حالت رایگان «موتور مرورگر»، از Web Speech API کروم استفاده میشود و کروم آن صدا را به سرویس تشخیص گفتار گوگل میفرستد — این رفتار خودِ مرورگر است، نه LingoFlow.
- خواندن با صدا از
chrome.ttsیعنی صداهای نصبشده در مرورگر یا سیستمعامل استفاده میکند.
۳-۳) تصویرها و ناحیهٔ صفحه (OCR)
- راستکلیک ← ترجمهٔ متن داخل این تصویر: افزونه آن تصویر را دانلود و متنش را میخواند. در حالت
آفلاین تصویر هرگز از کامپیوتر شما خارج نمیشود. در حالت ابری تصویر با کلید خودتان به
api.openai.comفرستاده میشود. - انتخاب ناحیه (Alt+Shift+O): فقط در لحظهای که دکمهٔ ماوس را رها میکنید از بخش قابلمشاهدهٔ همان تبی که در آن هستید یک عکس گرفته و بلافاصله به مستطیلی که کشیدهاید بریده میشود. فقط همان بخش بریدهشده استفاده میشود و عکس کامل دور ریخته میشود.
- نه عکس صفحه، نه بخش بریدهشده و نه تصویر، روی دیسک نوشته یا پس از درخواست نگهداری نمیشوند. فقط متن شناساییشده و ترجمهاش ممکن است وارد حافظهٔ نهان محلی شود.
- افزونه هرگز به ابتکار خودش از صفحه عکس نمیگیرد — عکسبرداری فقط در پاسخ مستقیم به کلیک، منو یا کلید میانبر شما انجام میشود.
۳-۴) آنچه هرگز جمعآوری نمیشود
تاریخچهٔ مرور، آدرس صفحات، محتوای فرمها، کلیدهای فشردهشده، کوکیها، اثر انگشت دستگاه، موقعیت مکانی، شناسههای کاربری و هیچ نوع تلهمتری. هیچ دادهای فروخته، اجاره یا برای تبلیغات به اشتراک گذاشته نمیشود و ناشر با هیچ دادهای مدلی آموزش نمیدهد.
۴) مجوزها و دلیل هرکدام
| مجوز | دلیل |
|---|---|
storage |
ذخیرهٔ محلی تنظیمات، کلیدها و حافظهٔ نهان |
contextMenus |
افزودن گزینههای ترجمه به منوی راستکلیک |
activeTab, scripting |
تزریق اسکریپت ترجمه فقط به تبی که در آن هستید |
host_permissions (<all_urls>) |
خواندن و جایگزینی متن صفحهای که خودتان درخواست ترجمهاش را دادهاید، دانلود تصویری که روی آن راستکلیک کردهاید، عکسبرداری از تب فعال هنگام انتخاب ناحیه (کروم برای عکسبرداری همین مجوز را لازم دارد) و تماس با موتور انتخابی. برای رصد مرور استفاده نمیشود. |
tts |
خواندن ترجمه با صدا هنگام کلیک روی آیکن بلندگو |
sidePanel |
نمایش پنل ترجمهٔ زندهٔ گفتار |
tabCapture, offscreen |
ضبط صدای تب برای تبدیل گفتار به متن — فقط با کلیک صریح و فقط تا زمان فعال بودن |
هیچ مجوزی درخواست نشده که قابلیت متناظرش در این سند توضیح داده نشده باشد.
۵) انطباق با قانون Limited Use فروشگاه کروم
استفادهٔ LingoFlow از اطلاعات، با سیاست دادهٔ کاربر Chrome Web Store و الزامات Limited Use منطبق است: داده فقط برای همان قابلیتی که کاربر فراخوانی کرده بهکار میرود؛ به ناشر یا هیچ طرف دیگری جز سرویس ترجمهٔ منتخب کاربر منتقل نمیشود؛ برای تبلیغات یا اعتبارسنجی استفاده نمیشود؛ و هیچ انسانی آن را نمیخواند، چون اصلاً به ناشر نمیرسد.
۶) مبنای قانونی و حقوق شما (GDPR)
چون هیچ دادهای به ناشر نمیرسد، ناشر کنترلکننده یا پردازشگر محتوای شما نیست. وقتی کلید API خودتان را وارد و متنی را ترجمه میکنید، شما کنترلکنندهٔ آن پردازش هستید و سرویس منتخب شما، پردازشگر شما بر اساس شرایط خودش است.
دربارهٔ دادههای محلی روی دستگاهتان، هر زمان میتوانید: به آنها دسترسی بگیرید یا خروجی بگیرید، اصلاحشان کنید، پاکشان کنید («پاککردن حافظهٔ نهان»، «بازگرداندن تنظیمات»، یا حذف افزونه)، یا پردازش را محدود کنید (خاموشکردن حالت انتخاب و زیرنویس یوتیوب).
انتقال بینالمللی داده: سرویسهای ترجمه و گفتاری که ممکن است انتخاب کنید سرورهایی خارج از منطقهٔ اقتصادی اروپا (مثلاً در آمریکا) دارند. اگر این موضوع برایتان اهمیت دارد، از سرور LibreTranslate خودتان استفاده کنید تا متن از زیرساخت تحت کنترل شما خارج نشود.
۷) کودکان
LingoFlow ابزاری عمومی است و مخاطبش کودکان زیر ۱۶ سال نیستند. ناشر آگاهانه از هیچکس، از جمله کودکان، دادهای جمع نمیکند.
۸) امنیت
سروری وجود ندارد که نفوذپذیر باشد. کلیدهای API در پروفایل مرورگر شما میمانند و فقط روی HTTPS و فقط به همان سرویس صادرکننده ارسال میشوند. تمام تماسهای شبکه از Service Worker افزونه انجام میشود، بنابراین کلیدها هرگز در معرض صفحهٔ وبی که باز کردهاید قرار نمیگیرند.
۹) سرویسهای شخص ثالث
سرویسهای Google، MyMemory (شرکت Translated s.r.l.)، DeepL SE، OpenAI، Anthropic و — در صورت پیکربندی — سرور LibreTranslate، متن یا صدای ارسالی را بر اساس سیاست حریم خصوصی خودشان پردازش میکنند. لطفاً سیاست همان سرویسی را که فعال میکنید مطالعه کنید. ناشر هیچ وابستگی و کنترلی بر آنها ندارد.
۱۰) تغییرات این سند
تغییرات مهم همراه با نسخهٔ جدید افزونه منتشر و تاریخ «آخرین بهروزرسانی» اصلاح میشود.
۱۱) تماس
مهدی اقتداری — greeneye2096@gmail.com