SMS Language Translation
Purpose
SMS Language Translation extends the SMS conversation composer with customer-language selection, manual translation controls and translation preferences. It stores detected sender-language information on the inbox and can prepare translations of incoming messages for eligible users. It does not provide a separate messaging application or its own SMS gateway.
Before you start
Install corvus_sms_translation with corvus_sms_chatter_tabs and mail for the installed major version. The dependency chain includes Workspace, inbound handling and routing. No Enterprise-only addon is declared. This guide describes reviewed 19.0 source; the package and its dependency stack have template issues requiring a validated package before use. Conversation/translation access also needs administrator review before deployment. No runtime, translation-service or SMS test was performed.
The implementation reads the shared mail.google_translate_api_key configuration parameter and calls Google Translate v2. It does not use the ChatGPT or Gemini key from Corvus AI suggestions. Have the administrator configure the approved translation service through the installation's supported settings. This addon does not supply a dedicated API-key settings screen. Translation actions send message text to that external service; use only text approved for that processing.
Access and language settings
The addon grants Internal Users full access to its transient SMS Translation Preferences wizard. Saving that wizard writes the current user's preferences. The inherited inbox and record permissions still matter; these wizard permissions do not certify isolation of all translation endpoints or conversations.
User preferences expose Auto-Translate Inbound SMS, Auto-translate outbound SMS, Warn before sending without translation, and Inbound translation target language. The target language falls back to the user's language when no explicit inbound target is selected.
On an inbox, SMS Translation shows detected sender language and detection time, a preferred language override, and Outbound auto-translate (effective). Detect Sender Language examines the latest inbound SMS. If no inbound text is available or detection fails, it cannot establish a language. An initially empty preferred-language field may be populated from detection.
The effective outbound preference combines the current user's default with an inbox-level inversion. Consequently, two users with different defaults can see different effective values for the same inbox. This is a preference calculation, not evidence that all send paths enforce translation or a warning.
Preferences and control reference
- Open Translation settings from the SMS composer, or the corresponding user preferences, and choose the inbound target language. Use Save Translation Preferences to apply the current user's settings.
- SMS Translation stores detected sender-language information. Detect Sender Language would refresh it from an inbound message. Detection and thread/batch translation calls are unavailable under this guide pending installed-package and conversation-access validation.
- Set customer language / translate represents an explicit conversation language choice. An explicit target can avoid relying solely on detection of short or ambiguous text; the thread-setting action remains outside this reference scope pending access validation.
- Toggle translation would request a translation and keep original/translated text in the composer cache. Its use remains unavailable pending validation. Local drafts can still be reviewed for names, numbers, dates and meaning; a returned string would not itself guarantee accuracy.
- Toggle thread translation exposes the effective preference described above. The inspected addon records outbound-auto and warning preferences, but this review did not establish universal send-time enforcement across composers. Confirm the actual text manually before any authorised send.
- In a validated installation, available inbound translations should be compared with the original. Automatic inbound preparation uses the sender number's explicitly assigned users who enabled inbound translation, deduplicates target languages, and skips existing cached translations. An empty Allowed Users assignment does not select everyone for this automatic preparation path.
The manual text route chooses an explicit target first, then conversation language context, then user language. If detected source and target languages match, it can return the original text. Changing a language preference does not resend past messages or prove that every historic message has been translated.
Practice scenario
In a validated training installation, use fictional customer Rowan Studio with a Spanish-language sample question and an English-speaking agent. Identify the agent's inbound language and the customer's preferred reply language, then draft a sample response locally. Compare the intended original and translated wording without pressing translation or Send. This source-derived exercise was not executed and makes no external request.
Limits and troubleshooting
A missing shared translation key, empty text, unavailable target language, detection error or provider response failure can stop translation. Short names, mixed-language text and numbers may not give detection enough information. Check the original message before changing the customer's stored preference.
Cached translations are language-specific; they do not establish a new provider call on every display. Translation can also change length and character encoding, which changes SMS segmentation. The messaging gateway remains responsible for sending and status handling.
Selected 17/18 comparisons use the older JSON controller type; 19 uses JSON-RPC. Selected 20 changes include configuration/access APIs and template declarations. These differences do not establish equivalent end-to-end enforcement. See SMS Chatter Conversations for the underlying interface and Two-Way SMS & CRM Inbox for sender assignments and inbound routing.
Versions and useful links
The catalogue lists Odoo 17.0–20.0. This guide reviews 19.0 source and selected differences in the other versions; it is not a runtime qualification. Choose the exact installed major version in the Corvus app catalogue for purchase and available live-test options. No individual marketplace or running demo was verified for this guide.