Key Takeaways
- Localizing message language on a core Android SMS gateway is encoding and segment math — not a JSON i18n swap.
- One Bangla or Arabic character can flip ~160 GSM-7 characters into ~70 UCS-2 and a second billed segment.
- Keep OTP digits in ASCII even when the sentence is translated. The Android app UI locale is not the SMS body.
- This Hub A how-to is outbound copy you send through the SIM. The app-UI spoke is a sibling, not a duplicate.
- Service pricing is based on device count and total SMS sent through the gateway. You need a working Android phone with a SIM and SMS credit from your mobile operator. Operator message costs are yours—we do not sell carrier SMS balance.
How to localize message language on a core Android SMS gateway is a send-path problem: what alphabet you put in text, how many segments the operator bills, and whether STOP still matches. Hub A does not auto-translate. The phone just radios whatever you posted.
Service pricing is based on device count and total SMS sent through the gateway. Product: how the gateway works. App-UI sibling: app localization. OTP: OTP.
A poetic greeting in a non-GSM script plus a six-digit code is how you pay for two SMS and still look like spam.
Language is a radio budget
GSM-7 is the cheap alphabet. Mix in Bangla, Arabic, CJK, or even a curly apostrophe and you leave it. Concatenated SMS still count as volume on the platform and as airtime on the SIM. You need a working Android phone with a SIM and SMS credit from your mobile operator. Operator message costs are yours—we do not sell carrier SMS balance.
GSM-7 vs UCS-2
| Body | Typical encoding | Ops note |
|---|---|---|
| ASCII OTP only | GSM-7, one segment | Best default fallback |
| English sentence + code | GSM-7 if no fancy punctuation | Watch smart quotes from CMS |
| bn / ar / hi sentence + code | UCS-2, often two segments | Canary on a real handset |
| RTL + Latin brand name | UCS-2, layout surprises | Preview on the destination OEM |
Keep digits ASCII
Translate the wrapper, not the code. Eastern-Arabic numerals in the OTP field break copy-paste and SMS retrievers. Store language on the user, not on the deviceId.
STOP still has to parse
If you localize “Reply STOP”, teach inbound matching for the local word too — or keep STOP as the documented English token. STOP on core. Auto-reply.
Canary every locale
Staff handsets per script, including a cold phone. India / Bangladesh. Confirm live fields in OpenAPI— there is no lang= magic flag.
Checklist
- Per-locale templates with segment counts written down.
- OTP digits ASCII.
- Fallback language if profile empty.
- STOP tokens tested inbound.
- No WhatsApp template IDs in this path.
Next steps
Pick the two languages you actually ship. Send both to staff SIMs. Count PDUs before you promise a “short” OTP.
Related product pages
Jump to the live product docs for this topic—not another long-form article.
- SMS API documentationLive endpoint reference
- device and SMS volume pricingPlans and allowances
- Android SMS gateway product guideDefinition, product, and how to buy
- download the Android gateway appGet the APK





