While testing the multilingual implementation, we observed that the application content is translated correctly, but some default OutSystems widget texts remain in English.
Examples include:
Expected Behavior:
Questions:
Short answers first, then details:
No – default OutSystems UI widgets are not fully localized automatically based only on the application language. Some parts are localized via built‑in locales, others are always English unless you configure them. Allows for translations on OutSystems UI widgets
Yes – for several widgets (Calendar / DatePicker, Pagination, some labels), you still need to provide translations yourself.
Where to configure:
OutSystems has two different mechanisms:
Application Multilingual (Locales + Translations)
OutSystems UI built‑in locales
So the situation you’re seeing (your app is translated, but widgets still show English like “August” and “1 to 10 of 11 items”) is expected with many current widgets, especially in older OutSystems UI versions.
You have two main options for calendar texts (months, weekdays, navigation labels):
AdvancedFormat
On the OutSystems UI DatePicker widget there’s an AdvancedFormat input (Reactive). You can pass an i18n configuration object with your translated strings, for example:
"{ i18n: { previousMonth : 'Anterior', nextMonth : 'Próximo', previousYear : 'Ano anterior', nextYear : 'Próximo ano', previousDecade: 'Década anterior', nextDecade : 'Próxima década', months : ['Janeiro','Fevereiro','Março','Abril','Maio','Junho','Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'], monthsShort : ['Jan','Fev','Mar','Abr','Mai','Jun','Jul','Ago','Set','Out','Nov','Dez'], weekdays : ['Domingo','Segunda','Terça','Quarta','Quinta','Sexta','Sábado'], weekdaysShort : ['Dom','Seg','Ter','Qua','Qui','Sex','Sáb'], todayButton : 'Hoje' } }"
This approach lets you define different AdvancedFormat values per language (for example, using a Translation resource or locale‑specific static data). No translations for DatePicker
DatePickerSetLanguage
In newer OutSystems UI versions there’s a client action:
DatePickerLanguage
You call DatePickerSetLanguage on the client, passing a value from DatePickerLanguage that matches the language you want (e.g., Portuguese‑BR, Vietnamese). This configures the DatePicker’s internal language bundle. DatePicker Translate
This is often easier if your target language is already supported by OutSystems UI. If not, you fall back to Option A or to cloning.
For Pagination (“1 to 10 of 11 items”) and similar texts:
The OutSystems UI team confirmed that they cannot fully support translating all text elements from producer modules, and for unsupported languages you may need workarounds, including cloning widgets. Allows for translations on OutSystems UI widgets
Typical approaches:
Upgrade OutSystems UI
Clone / customize widget
Wrap with your own text
Given your environments and the languages mentioned (Portuguese, Vietnamese, Bahasa Indonesia):
For DatePicker / calendar:
For Pagination:
For other OutSystems UI default labels (ActionSheet “Cancel”, etc.):
Hi @Amit J ,
Not sure about all the widgets, but pagination DOES have some built in translation.
The thing is, not all languages are covered, and the translation for 'items' might be weird (some languages they translated to something funny or unappropriate, some languages they left in 'items' which might not be something normally used in that language.
If this is for a (paying) client, you can try to request your language to be added if it is missing. Make sure to immediately make clear the proper translation for everything, that saves them time thinking about it, and if you are the first in that language, you get to shape it your way.
Not sure what the timeline is though, on getting extra languages in.
These are the languages currently in OutSystems UI 2.28.0
This is the translation for dutch, so if you can already give them these translations in the desired languages, maybe you can positively influence if and when they add it
@Gonçalo Martins it has been a while back since these translations were introduced, do you know the channel/process for asking extra languages to be added.
@Amit J : On my personal environment with OutSystems UI 2.28.0, by setting the SetCurrentLocale with "vi" this is what I see. The same can achievable with DatePickerSetLanguage ( widgetId , Entities.DatePickerLanguage.Vietname)
Coming to the pagination translation ( 1 to 7 of 7 items), Vietnames is not in the list as shared by @Dorine Boudry and hence falls back to English. You can reach out to OutSystems to request inclusion of the language, as suggested.
An interim option is to inject translation from the client side using JavaScript, but treat it purely as a workaround - it is coupled to the current OutSystemsUI markup and can break silently on a future version upgrade. Only attempt it if you are comfortable debugging JavaScript.