In this section

Resources / Help / Account

Translations and languages

AI Translation localizes notifications, NPS, surveys, roadmap and status from your main language in one click — then visitors see their language via setLang, the browser, or identify traits.

Hubbo ships with AI Translation for visitor-facing copy. Write once in your main language, add another locale, hit Generate Translation, and Hubbo fills the empty fields automatically. You can tweak any line afterward. Empty fields always fall back to the main language.

AI Translation is the default path

You do not need a separate localization tool. Every Translations panel in the admin app includes Generate Translation — notifications, NPS, surveys, roadmap and status. Typing overlays by hand is still supported when you want full control.

AI Translation

  1. Set the main language and write your copy as usual.
  2. Add a target language in the locale toolbar.
  3. Click Generate Translation. Hubbo translates empty fields from the main language into that locale.
  4. Review the result — especially product names, legal wording and tone — then Save.
  5. Verify on your site with hubbo.setLang('xx') or a browser set to that language.
  • AI fills empty fields only. Text you already typed in that locale is left alone.
  • Works across notifications, NPS, surveys, roadmap and status (shared labels and per-item copy).
  • After AI runs, every field stays editable — treat the result as a strong first draft, not a locked string.

Always review before publish

AI is fast, not perfect. Check brand voice, proper nouns and anything that must stay exact before you ship.

How visitors get a language

On the embed, `window.hubbo.setLang()` (recommended when your app has a language switcher) pins the locale — missing overlay → main language, without falling through to the browser. When unset: browser language, then optional locale / language on hubbo.identify() traits. Public status and roadmap pages expose the same setLang / getLang API (live switch + ?lang= sync); shared links with ?lang= also work. Developer guide: Set visitor language.

Where to edit

ProductShared / account-levelPer item
NotificationsNotifications → Translations (widget header, Published prefix, Read post / Open, back/share, chat labels)Translations on each notification (title, description; optional Read post / Open overrides)
NPSNPS → Translations (question, scale labels, thank-you and related copy)One NPS configuration per account
SurveysSurveys → Translations (shared buttons and thank-you labels)Translations on each survey (questions, options, follow-ups)
Roadmap—Translations on each board (title, columns, tags, items)
Status pageStatus Page → Translations (page chrome and shared labels)Incidents, maintenance and components can carry their own overlays

What gets localized

  • Notifications: titles and descriptions per post; account chrome (widget header, Published prefix, Read post / Open, post page back/share, chat) under Notifications → Translations, with optional Read post / Open overrides per notification.
  • NPS: the question, helper text, buttons and thank-you messages in the widget.
  • Surveys: questions, options, follow-ups and thank-you copy in the widget.
  • Roadmap: board title, column names, tags and item text on the public board and embed.
  • Status: page name/description and visitor-facing incident, maintenance and component text on the public page and embed.

What translations do not change

  • The admin app language and team roles stay as they are.
  • Targeting, appearance colors and publication state are not translated — only visitor-facing strings.
  • Email to status subscribers uses the content you posted; treat incident updates carefully if you serve multiple languages.

Related: Appearance and branding, Notifications overview, NPS overview, Surveys overview, Roadmap overview, Status page overview.