Skip to main content

Universal Login localization

The experience is localized to the following languages. Entries marked with an asterisk are read right to left.
LanguageCode
Albaniansq
Amharicam
Arabic*ar
Arabic (Egypt)*ar-EG
Arabic (Saudi Arabia)*ar-SA
Armeniahy
Azerbaijaniaz
Basqueeu-ES
Bengalibn
Bosnianbs
Bulgarianbg
Catalanca-ES
Chinese - Hong Kongzh-HK
Chinese - Simplifiedzh-CN
Chinese - Traditionalzh-TW
Croatianhr
Czechcs
Danishda
Dutchnl
Englishen
English - Canadaen-CA
Estonianet
Farsi (Persian)*fa
Finnishfi
Frenchfr-FR
French - Canadafr-CA
Galiciangl-ES
Georgianka
Germande
Greekel
Gujratigu
Hebrew*he
Hindihi
Hungarianhu
Icelandicis
Indonesianid
Italianit
Japaneseja
Kannadakn
Koreanko
Latvianlv
Lithuanianlt
Macedonianmk
Malayms
Malayalamml
Marathimr
Mongolianmn
Montenegrinecnr
Myanmarmy
Norwegianno
Norwegian - Bokmålnb
Norwegian - Nynorsknn
Polishpl
Portuguese - Brazilpt-BR
Portuguese - Portugalpt-PT
Punjabipa
Romanianro
Russianru
Serbiansr
Slovaksk
Sloveniansl
Somaliso
Spanishes
Spanish - Argentinaes-AR
Spanish - Latin Americaes-419
Spanish - Mexicoes-MX
Swahilisw
Swedishsv
Tagalogtl
Tamazightzgh
Tamilta
Telugute
Thaith
Turkishtr
Ukrainianuk
Urdu*ur
Vietnamesevi
Welshcy

Language selection

Auth0 selects the language to render the pages based on:
  • The languages supported by Auth0, which are listed above
  • The list of languages configured in the Auth0 Dashboard’s Tenant Settings section, where you can select the languages your tenant supports and select a default one. By default, the list has only English selected, but you can select the ones you need.
  • The value of the ui_locales parameter sent to the Authorization Request endpoint, which can be used to constrain the language list for an application or session. You can provide a space-delimited list of locales. The first locale on the list must match the enabled locale in your tenant to reflect in the UI.
  • The Accept-Language HTTP header sent by the browser, Auth0 renders the pages in this language if it is allowed by the settings above. If not, the pages render in the default language.
Use the Auth0 to make a PATCH call to the Tenants endpoint with the following body, replacing he with the language code you want to add:
{
  "enabled_locales": [
    "en","he"
  ]
}
After it is added, specify the language in theui_locales query parameter of the login request. You can also specify the enabled languages for the tenant via the Management API using the Update Tenants endpoint. The default language is the first one in the list.

Right-to-left languages

Right-to-left language support is available in Early Access. To request this feature, contact Auth0 Support. By using this feature, you agree to the applicable Free Trial terms in Okta’s Master Subscription Agreement. To learn more about Auth0’s product release cycle, read Product release stages.
Right-to-left (RtL) language support allows your tenant to display Arabic (standard, Egyptian, and Saudi Arabian), Persian, Hebrew, and Urdu text. Tenants that use RtL text must be WCAG 2.2 AA compliant, and if your tenant uses page templates, you must update the HTML tag to include the dir element.
{% assign resolved_dir = dir | default: "auto" %}
<html lang="{{locale}}" dir="{{resolved_dir}}">

Limitations

  • The ui_locales parameter can only be used in flows, as it is not available with Security Assertion Markup Language or WS-Federation.
  • The ui_locales parameter is not forwarded to upstream identity providers . To learn more about passing parameters to IdPs, read Pass Parameters to Identity Providers.
  • It is not possible to localize the scopes in the Consent page.

Known issues

  • The Universal Login Page renders the HTML lang attribute for the language code fr-FR as fr.
  • The Universal Login Page renders the HTML lang attribute for the language code pt-PT as pt.

Classic Login localization

In the Classic Login experience, localization uses Auth0 JavaScript widgets for login, the password reset page and password policies. The Multi-factor authentication (MFA) page by default uses the Auth0 Widget, which cannot be localized. You can create localized versions by using guardian.js. It is not possible to localize the Consent page.

Learn more