Set global brand defaults for Kinde hosted authentication pages
Design
By default, Kinde user-facing screens (such as sign-up and sign-in) are in US English. You can select additional languages for these screens to better support international users.
Only the user-facing pages are translated. This includes sign-up, sign-in, verification code, confirmations, and one-time code emails. It is not yet possible to select a different language for the whole Kinde platform.
To change the language displayed on sign-up and request access pages, you need to customize the relevant page.
Kinde’s language support continues to grow.
Here is a sample of what is available so far: English (en / en-US / en-AU / en-GB), Dutch, German, Polish, Hebrew, Italian, French, Malay, Spanish, Russian, Portuguese (Brazilian), Norwegian, Swedish.
We aim to eventually support all these languages.
Feel free to submit a pull request via GitHub to request or contribute a specific language translation.
Kinde displays the relevant language on authentication screens when the user’s regional settings are detected.
Kinde also supports right-to-left (RTL) languages.
The default language is the fallback if a user’s region is not detected, or if the detected language is not selected as supported in Kinde.
For user-facing authentication screens, Kinde gives display priority using language detection, as follows:
^ If you have chosen not to support a language, we will try the next available option.
Through language matching, Kinde automatically selects the closest base language to the requested language and uses it if your app supports it.
Translations in the Kinde widget are handled by Kinde. Kinde loads the copy from the relevant route and language from your page content settings and applies it to the widget.
You can customize the text on various pages in the auth flow. See Update page content for the auth flow for more information.
Kinde provides relevant localized content within the context object that is passed into the Page default function. Localizations and placeholder replacements are handled for you at runtime.
For example:
const { content } = event.context.widget;
<img src="<your_logo_url>" alt={content.logo_alt} />
<title>{content.page_title}</title>
<h1>{content.heading}</h1>
<p>{content.description}</p>