Glossary

Localization (i18n / l10n)

Internationalization (i18n) is building software so it can support any language and region; localization (l10n) is adapting it to one. In chat there is a third layer: translating what users say to each other.

General definition

Localization (i18n / l10n) covers two related jobs that are often confused. Internationalization, abbreviated i18n for the 18 letters between i and n, is the engineering: moving every user-facing string out of code into resource files, formatting dates, numbers and currencies through locale-aware APIs, handling plural and gender rules, supporting right-to-left layout and leaving room for text that grows by a third in German. Localization, l10n, is then doing the adaptation for a given locale: translating the strings, choosing formats, adjusting imagery and legal text. You internationalize once and localize many times.

The standard toolset in web and mobile apps:

  • BCP 47 language tags (en-GB, fr-CA, pt-BR) to identify a locale, and the browser Intl API for dates, numbers, plurals and collation.
  • Message formatting with ICU MessageFormat, so plurals and placeholders are handled correctly per language.
  • Libraries such as i18next and react-i18next, FormatJS (react-intl) or Lingui in React and React Native; string catalogues in Xcode and resource files on Android.
  • A translation workflow: extract strings, send them to translators or a translation management system, review in context, ship.

Messaging products have a distinction most apps do not: UI localization and content translation. Localizing the UI means the buttons, menus, timestamps and system messages appear in the user’s language, and that is fixed text you translate once. Content translation means the messages people type to each other, which are unknown in advance and can only be translated at runtime, historically with a machine translation API and now increasingly with an LLM. Content translation raises its own questions: who sees the original, whether the translation is stored or generated on read, and, in regulated settings, where the text goes to be translated.

In the Ethora ecosystem

Ethora handles both layers. The UI of the web and mobile chat components is fully localizable, so menus, labels and system messages follow the user’s locale. On the content side, each user has a chat language setting and, since release 26.08, messages are translated in real time by the platform’s AI layer, so a French-speaking clinician and an English-speaking patient each read the conversation in their own language while the original message is retained. Users choose their language in the chat UI, and the translation is delivered through the Chat SDK components on web and mobile.

Because Ethora runs as managed cloud, a dedicated server in your own cloud account or self-hosted, teams in healthcare and finance can keep the messaging stack and its history inside an environment they control, which matters when the text being translated is protected health information; how translation requests are routed is agreed as part of a dedicated or self-hosted deployment. AI agents, the conversational AI layer of the platform, sit in the same rooms as human participants, so their messages can pass through the same translation layer as human messages.

Get started

Build with Ethora’s open SDKs

Chat, calls and AI agents as npm packages and native SDKs, open source with enterprise source access. Talk to our team.

Start Free
Free tier available Enterprise SLA No vendor lock-in