BitelioBitelio

Localization

Serve the unsubscribe footer and hosted subscription pages in each contact's own language

The strings Bitelio itself renders — the unsubscribe footer it appends to marketing emails, plus the hosted unsubscribe, subscribe, and preferences pages — can be served in your contacts' languages. What Bitelio never touches is your own template content: subjects and body copy are not auto-translated, and remain fully under your control.

Setting the project default

Under Settings → Project, choose a default language. Contacts without a language of their own on record get this one.

Overriding per contact

To give an individual recipient a different language, write a locale field into the contact's data:

curl -X POST https://api.bitelio.com/v1/track \
  -H "Authorization: Bearer sk_..." \
  -H "Content-Type: application/json" \
  -d '{
    "email": "ada@example.com",
    "event": "signed_up",
    "data": { "locale": "fr" }
  }'

The value should be a BCP 47 / ISO 639 code from the supported list below. The field is also available as {{locale}} in template variables, so you can branch your own copy on it.

When a contact's locale isn't among the supported languages, the project default takes over; when neither is set, everything renders in English.

Supported languages

CodeLanguage
enEnglish
nlDutch (Nederlands)
frFrench (Français)
deGerman (Deutsch)
esSpanish (Español)
itItalian (Italiano)
ptPortuguese (Português)
plPolish (Polski)
csCzech (Čeština)
bgBulgarian (Български)
hiHindi (हिंदी)
zh-CNChinese (Simplified, China)
zh-TWChinese (Traditional, Taiwan)
zh-HKChinese (Traditional, Hong Kong)

What gets translated

SurfaceTranslated?
Unsubscribe footer on marketing emailsYes
Hosted unsubscribe / subscribe / preferences pagesYes
Your own template subject and bodyNo — author per-language templates and branch on {{locale}}

Translating your own templates

Template content is yours to localize. Two approaches are common:

  • A separate template per language, selected by your code or your workflow before the send goes out. A locale suffix in the name (welcome-en, welcome-fr) keeps them organized.
  • A single template that branches internally, using Handlebars conditionals on {{locale}} to embed each language variant. Fine for a few short strings; painful once emails get long.

When there's a lot to localize, one template per language stays maintainable much longer.