Bilingual provides typing assistance on your device and sends content for AI translation only when you request it. It does not sell personal information or use it for advertising or cross-app tracking.
What This Policy Covers
This policy explains how the Bilingual iOS app, keyboard extension, translation tools, support form, and AI service handle information.
Google Offline Translation
Text translated with Google Offline is processed on your device after the selected language models are downloaded. Bilingual does not send that message text to its own server. Google's ML Kit software may collect app, device, interaction, performance, and diagnostic information under Google's SDK practices.
Apple Translation and Image Recognition
Apple Translation and Apple's Vision text recognition operate on your device. When you choose a screenshot or take a photo, Vision first recognizes its text. Bilingual then sends only the recognized text to the translation provider you selected. While active, the keyboard can access text context supplied by the current input field. It cannot freely browse other apps or conversations.
Keyboard and Local Settings
Latin spelling assistance, Hangul composition, Kana-to-Kanji conversion, Chinese Pinyin conversion, and optional conversion learning run on your device. Keyboard defaults and learned candidate choices are stored locally for use by Bilingual and its extensions; they are not sent to Bilingual's server.
English typing and swipe recognition share personal words, explicit spelling or swipe choices, rejected autocorrections, and bounded word and adjacent-word counts. Learning from tap-typed words is off by default. This data is stored in this device's Keychain, is not synced or uploaded, and excludes full messages and swipe paths. Manage personal words or reset learned preferences in Keyboard Settings. Resetting learning keeps your manually added words, which you can delete individually.
AI Native
When you explicitly request an AI Native translation, Bilingual sends the source text, selected languages, tone, and translation preferences to Bilingual's service. For Pro requests, the service verifies an Apple subscription proof. Translation requests are sent to OpenAI's API with storage disabled. Bilingual does not maintain a translation-history database and its operational logs contain request identifiers, route, timing, and error metadata rather than message text.
OpenAI states that API data is not used to train its models by default unless the developer opts in. Under the standard API data controls, request content may be retained in abuse-monitoring logs for up to 30 days.
Subscriptions
Apple processes Bilingual Pro purchases and payment information. Bilingual receives signed transaction information needed to unlock and verify the subscription, but does not receive or store your payment-card details.
Support Requests
If you submit a support request, Bilingual receives the message, category, optional reply email, app version, device and iOS information, translation setup, and a randomly generated installation identifier. The service also uses a one-way network-address hash in temporary memory to prevent spam. Support requests are delivered to and retained in the Bilingual support mailbox so they can be answered. Do not submit passwords or private conversation text.
Retention and Security
Bilingual does not store translation history on its server. AI usage counts and subscription status are stored on the server to enforce usage limits and check refunds. Subscription identifiers are one-way hashes; message content and signed purchase proofs are not stored in this database. This metadata becomes eligible for automatic deletion 90 days after the later of last activity or subscription expiration; actual deletion can take additional time. Support rate-limit information remains temporary and in memory. Support correspondence remains in the support mailbox for as long as reasonably needed to resolve the request, maintain business records, and prevent abuse. Bilingual uses encrypted HTTPS connections and limits access to production secrets.
Your Choices
- Use Google Offline or Apple Translation when you prefer on-device processing.
- Disable Full Access for the keyboard, understanding that network features will be unavailable.
- Manage or cancel Bilingual Pro through your Apple subscription settings.
- Ask about or request deletion of support correspondence through the support form.
Children and Changes
Bilingual is not directed to children under 13. This policy may change as the service evolves. Material changes will be posted here with a new effective date.
Contact
For privacy questions, use Bilingual Support and choose Question.
AI Sharing Permission
Before your first AI translation, Bilingual asks permission to share content with OpenAI. Pro requests may include your saved names, terminology, and applicable personalization settings. Your choice is stored in the device-only Keychain and shared with Bilingual's extensions. Reset it in Privacy to be asked again. Declining does not disable on-device translation.
Local Results and Usage Statistics
Recent AI results are cached in memory for reuse and are not a persistent translation history. Image handoffs can also keep recognized text and results on the device so you can continue in the app. Your personal Usage Statistics store counts and settings locally, not messages. These are separate from server-side allowance and subscription records.
Free AI Translations
Free AI uses Apple App Attest verification instead of a subscription proof. When you enable it, Apple verifies the app and Bilingual registers a randomly generated, device-only access credential. The server stores credential and attestation-key hashes, enrollment dates, usage counts, and revocation status, not your translation history. These records are linked to an app installation, not a named account, and remain while needed to maintain access and prevent allowance resets. The credential stays in this device's Keychain. Short-lived verification challenges expire after five minutes; request identifiers, hashed network-address enrollment counters, and shared usage counters are eligible for deletion after seven days. Automatic deletion may take additional time. Free requests send only the text, languages, and tone you submit, not saved personalization. The displayed daily and character limits apply. Failed translations restore the personal allowance; shared abuse-prevention counters still count attempts. Reused local results do not use the allowance.
Subscription records include purchase dates, expiration, and refund status linked to a hashed subscription identifier. Usage counters are linked to that subscription or to a free installation credential. These identifiers are pseudonymous, not anonymous, and are used for access, abuse prevention and the service statistics described below, not advertising.
To help prevent abuse, AI requests also send OpenAI a stable, pseudonymous safety identifier derived from your verified subscription or free installation credential. This identifier does not contain your name, email address, message text, or access credential. It allows requests associated with the same access identity to be linked for safety monitoring.
We also use content-free AI usage metadata to understand adoption and improve reliability: selected languages and preset options, message-length ranges, response times, outcomes and remaining free allowance. Events use a separate pseudonymous subscription or installation identifier to measure active and returning usage. They contain no message text, saved names or terminology, raw purchase proofs or access credentials. Detailed events follow operational log retention (currently 30 days); first/last activity records become eligible for deletion after 90 days of inactivity. Aggregate reports contain no individual identifiers. This is not advertising or cross-app tracking, and excludes offline translations and keyboard typing.
We count first-time onboarding milestones (setup opened, keyboard verified, AI setup ready, and a successful AI trial) to improve setup. Reports contain only the milestone name, with no message text or installation identifier. Development builds and onboarding replays do not send these reports. Delivery is best effort; counts are approximate. Standard service request logs follow the existing 30-day retention.