Политика конфиденциальности Sprachweise
Sprachweise — расширение для Chrome: вы выделяете текст на странице, выбираете в меню правой кнопки «Перевести на немецкий (Sprachweise)» и читаете его по-немецки на своём уровне. Здесь описано, какие данные уходят с вашего устройства, где они хранятся и сколько.
Что отправляется на наш сервер
- Выделенный вами текст и выбранный уровень (A1–A2, B1–B2, C1+). Только после того, как вы выбрали пункт меню «Перевести на немецкий (Sprachweise)» или нажали сочетание клавиш расширения. Отправляется только выделенный текст (если выделен уже переведённый текст — исходный текст этого абзаца); за один раз — не больше 1500 знаков. До вашего выбора расширение не видит страницу и не отправляет ни текста, ни адресов (единственное исключение — событие установки, см. «Метрики использования»). Адрес страницы и остальной текст страницы не отправляются.
- Текст для упражнений. После перевода расширение отправляет на наш сервер полученный немецкий текст, подсвеченные слова с русскими подсказками и уровень, чтобы собрать упражнения. Это вычисление на нашем сервере: Google Gemini для упражнений не вызывается, идентификатор установки не отправляется, ничего из этого не хранится.
- Метрики использования со случайным идентификатором установки (UUID, который расширение создаёт при установке; он не связан с вашим именем, почтой, устройством или аккаунтом). С ним уходят только события: установка; абзац переведён (взят ли перевод из общего кэша и сколько миллисекунд занял запрос); упражнение выполнено; ошибка (код ошибки, например «нет сети» или «сервис недоступен», и HTTP-статус). У каждого события есть свой случайный номер, чтобы повторно отправленное событие не посчиталось дважды. Сервер сохраняет только день (UTC), без точного времени. Идентификатор никогда не отправляется вместе с текстом для перевода и не используется ни для чего, кроме подсчёта использования.
- Отчёт «Плохой перевод» — только если вы нажали эту кнопку: исходный текст, его немецкий перевод, уровень, плотность перевода, название модели и версия промпта. Без идентификатора установки.
Перевод через Google Gemini
Чтобы перевести текст, наш сервер передаёт его и уровень в Google Gemini API. Больше ничего (ни идентификатор установки, ни ваш IP-адрес) мы Google не передаём. Google обрабатывает эти данные по своим правилам: Gemini API Additional Terms of Service (раздел «How Google Uses Your Data») и Политика конфиденциальности Google.
Что мы храним и сколько
База данных — Neon Postgres во Франкфурте (ЕС), сервер — Vercel, регион Франкфурт.
- Кэш переводов: хэш SHA-256 переведённого текста (не сам текст), немецкий перевод и русские подсказки к словам. Кэш общий для всех пользователей и ни с кем не связан: если кто-то переведёт тот же текст на том же уровне, перевод возьмётся из кэша. Хранится без срока, пока мы его не очистим.
- События метрик (см. выше): удаляются автоматически через 90 дней.
- Отчёты «Плохой перевод»: удаляются автоматически через 90 дней.
- Технические счётчики: число вызовов Gemini в день, модель, количество токенов, стоимость и длительность вызова. Без текста и без идентификатора установки.
Журналы хостинга (Vercel)
Наш сервер работает на Vercel. Vercel автоматически ведёт журналы запросов к серверу, в том
числе с IP-адресом, временем и адресом запроса (например, /api/translate),
и хранит их ограниченное время по своим правилам: Vercel Privacy Notice.
Тело запроса (текст, идентификатор установки) в эти журналы не попадает. Мы не копируем
IP-адреса в свою базу, и журналы нашего приложения их не записывают.
Что остаётся на вашем устройстве
Настройки, словарь, прогресс, упражнения, сохранённые переводы,
идентификатор установки и ещё не отправленные события хранятся в хранилище расширения
(chrome.storage, IndexedDB) и удаляются вместе с расширением.
Диктант озвучивает немецкие предложения встроенным синтезом речи браузера. Если Chrome использует онлайн-голос Google, Chrome сам отправляет это предложение в Google.
Чего мы не собираем
Адреса страниц, историю просмотров, список ваших сайтов, имя, почту, аккаунты, платёжные данные. Мы не продаём и не передаём данные для рекламы. Использование данных, полученных расширением, соответствует Chrome Web Store User Data Policy, включая требования Limited Use.
Разрешения расширения
contextMenus — пункты «Перевести на немецкий» и «Вернуть исходный текст» в меню
правой кнопки; activeTab — временный доступ к текущей вкладке, который Chrome даёт только
в момент, когда вы выбрали пункт меню или нажали сочетание клавиш расширения; scripting —
запустить расширение в этой вкладке в этот момент; storage — хранить ваши данные
локально. Постоянного доступа к сайтам у расширения нет.
Ваш выбор
Не выбирайте пункт меню — ни текст, ни адрес страницы отправлены не будут (останется только событие установки со случайным идентификатором). Удалите расширение — локальные данные удалятся, а события на сервере удалятся через 90 дней. Вопросы и просьбы об удалении: alex.baumgertner+sprachweise@gmail.com.
Sprachweise privacy policy
Sprachweise is a Chrome extension: you select text on a page, choose "Translate to German (Sprachweise)" from the right-click menu and read it in German at your level. This page explains what leaves your device, where it is stored and for how long.
What is sent to our server
- The text you selected and your chosen level (A1–A2, B1–B2, C1+), only after you choose "Translate to German (Sprachweise)" from the right-click menu or press the extension's keyboard shortcut. Only the selected text is sent (for text already shown in German, the original text of that paragraph); at most 1,500 characters at a time. Until you make that choice the extension cannot see the page and sends no text and no addresses (the one exception is the install event, see "Usage metrics"). The page address and the rest of the page are not sent.
- Text for exercises. After a translation the extension sends our server the German text it received, the highlighted words with their Russian glosses and the level, so the server can build the exercises. This is computed on our server: Google Gemini is not called for exercises, the install ID is not sent and none of it is stored.
- Usage metrics with a random install ID (a UUID the extension creates when installed; it is not derived from your name, email, device or any account). Only these events are sent with it: install; paragraph translated (whether it came from the shared cache and how many milliseconds the request took); exercise completed; error (an error code such as "offline" or "service unavailable", and the HTTP status). Each event has its own random ID so an event sent twice is counted once. The server keeps only the day (UTC), not the exact time. The install ID is never sent together with the text to translate and is used for nothing but counting usage.
- A "Плохой перевод" (bad translation) report, only when you click that button: the source text, its German translation, the level, the translation density, the model name and the prompt version. No install ID.
Translation by Google Gemini
To translate your selection, our server sends the text and level to the Google Gemini API. Nothing else (no install ID, not your IP address) is passed to Google. Google handles this data under its own terms: the Gemini API Additional Terms of Service (section "How Google Uses Your Data") and the Google Privacy Policy.
What we store and for how long
Database: Neon Postgres in Frankfurt (EU). Server: Vercel, Frankfurt region.
- Translation cache: a SHA-256 hash of the translated text (not the text itself), the German translation and the Russian word glosses. The cache is shared by all users and linked to no one: if anyone translates the same text at the same level, the cached translation is served. Kept with no expiry until we clear it.
- Metric events (above): deleted automatically after 90 days.
- Bad translation reports: deleted automatically after 90 days.
- Technical counters: Gemini calls per day, model, token counts, cost and call duration. No text and no install ID.
Hosting logs (Vercel)
Our server runs on Vercel. Vercel automatically keeps request logs, including your
IP address, the time and the requested path (for example /api/translate),
for a limited period under its own rules: Vercel Privacy Notice. Request
bodies (text, install ID) are not part of these logs. We do not copy IP addresses into our
database, and our application logs do not record them.
What stays on your device
Settings, vocabulary, progress, exercises, saved translations, the install ID and
not-yet-sent events are kept in extension storage (chrome.storage, IndexedDB) and are
removed with the extension.
Dictation exercises speak German sentences with your browser's built-in speech synthesis. If Chrome uses an online Google voice, Chrome itself sends that sentence to Google.
What we never collect
Page addresses, browsing history, your list of sites, name, email, accounts, payment data. We do not sell data or use it for advertising. The use of information received by the extension adheres to the Chrome Web Store User Data Policy, including the Limited Use requirements.
Extension permissions
contextMenus adds "Translate to German" and "Restore original text" to the right-click
menu; activeTab is temporary access to the current tab that Chrome grants only at the
moment you choose one of those items or press the extension's keyboard shortcut;
scripting starts the extension in that tab at that moment; storage keeps
your data locally. The extension has no standing access to any website.
Your choices
If you don't choose the menu item, no text and no page address is sent (only the install event with the random ID). Uninstall the extension and local data is removed; server-side events expire after 90 days. Questions and deletion requests: alex.baumgertner+sprachweise@gmail.com.