58 lines
No EOL
2.9 KiB
Text
58 lines
No EOL
2.9 KiB
Text
[[_themes]]
|
|
= Themes and Internationalization
|
|
|
|
Themes allow you to change the look and feel of any UI in {project_name}. Themes are configured per realm. To change
|
|
a theme go to the `Realm Settings` left menu item and click on the `Themes` tab.
|
|
|
|
.Themes Tab
|
|
image:{project_images}/themes-tab.png[]
|
|
|
|
|
|
Pick the theme you want for each UI category and click `Save`.
|
|
|
|
Login Theme::
|
|
Username password entry, OTP entry, new user registration, and other similar screens related to login.
|
|
Account Theme::
|
|
Each user has an User Account Management UI.
|
|
Admin Console Theme::
|
|
The skin of the {project_name} Admin Console.
|
|
Email Theme::
|
|
Whenever {project_name} has to send out an email, it uses templates defined in this theme to craft the email.
|
|
|
|
|
|
|
|
The link:{developerguide_link}[{developerguide_name}] goes into how to create a new themes or modify existing ones.
|
|
|
|
==== Internationalization
|
|
|
|
Every UI screen is internationalized in {project_name}. The default language is English, but if you turn on the
|
|
`Internationalization` switch on the `Theme` tab you can choose which locales you want to support and what the default locale
|
|
will be. The next time a user logs in, they will be able to choose a language on the login page to use for the login screens,
|
|
User Account Management UI, and Admin Console. The link:{developerguide_link}[{developerguide_name}] explains
|
|
how you can offer additional languages. All internationalized texts which are provided by the theme can be overwritten
|
|
by realm-specific texts on the `Localization` tab.
|
|
|
|
|
|
[[_user_locale_selection]]
|
|
===== User Locale selection
|
|
|
|
In order to select the best possible locale for a user there is a locale selector provider that handles deciding what
|
|
is the best locale on the information available. One thing to note here is that it is not always known who the user is.
|
|
For this reason the previously authenticated users locale is remembered in a persisted cookie.
|
|
|
|
The logic for selecting the locale uses the first of the following that is available:
|
|
|
|
* User selected - when the user has selected a locale using the drop-down locale selector
|
|
* User profile - when there is an authenticated user and the user has a preferred locale set
|
|
* Client selected - passed by the client using for example ui_locales parameter
|
|
* Cookie - last locale selected on the browser
|
|
* Accepted language - locale from `Accept-Language` header
|
|
* Realm default
|
|
* If none of the above, fallback to English
|
|
|
|
When a user is authenticated an action is triggered to update the locale in the persisted cookie mentioned earlier. If the
|
|
user has actively switched the locale through the locale selector on the login pages the users locale is also updated at
|
|
this point.
|
|
|
|
If you want to change the logic for selecting the locale, you have an option to create custom `LocaleSelectorProvider`. For details, please refer to the
|
|
link:{developerguide_link}#_locale_selector[{developerguide_name}]. |