| Getting Started| Reference | |–|–|
These settings and APIs allow you to customize the appearance and behavior of the UI provided by Microsoft Quick Authentication.
For information about how to use Quick Authentication, see the Getting Started guide.
Microsoft Quick Authentication is in public preview. This preview is provided without a service-level agreement and isn’t recommended for production workloads. Some features might be unsupported or have constrained capabilities. For more information, see Supplemental terms of use for Microsoft Azure previews.
The autoLogEvents query parameter supports these log level values:
0: Log only error events.1: Log only error and warning events.2: Log error, warning and information events.Quick Authentication is built on top of MSAL.js. MSAL.js logging to console can also be enabled using logMsalEvents query parameter.
The logMsalEvents query parameter supports MSAL log levels:
0: Error.1: Warning.2: Info3: Verbose.4: Trace.autoLogEvents needs to be set (can be any value) for logMsalEvents take effect.
The following parameters can be used to initialize Quick Authentication. They are supplied as data attributes of the ms-auth-initialize div in your HTML. You can also choose to supply them programmatically in your Javascript (Refer to Data Type: InitConfiguration).
| Property | Value(s) | Default value | Required | More info |
|---|---|---|---|---|
data-client_id |
Application (client) ID | (no default value) | Yes | See Register your application. |
data-login_uri |
Redirect URI for Single-page application | https://<domain>/blank.html | Yes if ux_mode == 'popup', else No |
See Register your application. This URI is used when ux_mode = 'popup'. Check this section for some more details. |
data-callback |
JavaScript function that receives account information once sign-in completes. | (no default value) | Yes | On successful sign-in, this function is called with the SignInAccountInfo object. On sign-in failure, it is called with second argument SignInErrorInfo containing the error. |
data-locale |
Language ID strings in table below. e.g., "en-US", "fr-FR", etc. |
"en-US" |
No | Check Language ID column in this table for possible values. |
data-ux_mode |
“popup” “redirect” |
“popup” | No | If “redirect” is set then button sign-in / sign-in prompt and ms.auth.startSignIn calls will use redirect flow |
data-redirect_uri |
Redirect URI for Web | (no default value) | Yes if ux_mode == 'redirect', else No |
Check this section for more info. |
data-redirect_state |
A string which will be passed as state parameter for redirect flow. |
(no default value) | No | Only used if ux_mode == 'redirect'. Also check ms.auth.setRedirectState API and redirect_state. |
You can customize the setup of the Quick Authentication sign-in prompt using a handful of options. These values are supplied as data attributes of the ms-auth-initialize div in your HTML. You can also choose to supply them programmatically in your JavaScript. (Refer to Data Type: InitConfiguration).
| Property | Values | Default | More Info | |
|---|---|---|---|---|
data-auto_prompt |
true or false |
true |
Controls whether the one-tap prompt should show up. Only shows for MSA profiles in Microsoft Edge. | |
data-auto_sign_in |
true or false |
false |
Only applicable when auto_prompt is true. If set to true, it will complete the sign-in automatically, without the user needing to do anything. |
|
data-context |
“signin” “signup” “use” |
“signin” | Defines the text variant to be used in the prompt. - “signin” = “Sign in with Microsoft” (default) - “signup” = “Sign up with Microsoft” - “use” = “Use Microsoft” |
|
data-cancel_on_tap_outside |
true or false |
true |
Whether to close the prompt when a user moves focus out of the prompt. | |
data-prompt_position |
“left” “center” “right” |
“left” | Prompt position with respect to the width of the web page | |
data-partner_name |
A string which represents the partner’s name shown on sign-in prompt. | (no default value) | No | If not set, the host name will be used, e.g., abc.com. |
You can customize the look and feel of the sign-in button using a handful of options. These values are supplied as part of the renderSignInButton() call in your JavaScript or as data attributes on the button container div in your HTML:
| Property | Values | Default |
|---|---|---|
data-type |
“standard” “icon” |
“standard” |
data-theme |
“dark” “light” |
“dark” |
data-size |
“small” “medium” “large” |
“large” |
data-text |
“signin_with” “signup_with” “continue_with” “signin” |
“signin_with” |
data-shape |
“rectangular” “rounded” “pill” |
“rectangular” |
data-width |
number in CSS pixels 200–600 |
|
data-height |
number in CSS pixels 24–100 |
|
data-logo_alignment |
“left” “center” |
“left” |
data-show_account_selection_for_non_msa |
true or false |
false |
type| standard (default) | icon |
|---|---|
![]() ![]() |
theme| dark (default) | light |
|---|---|
![]() ![]() |
![]() ![]() |
size| small (20 px) | medium (32 px) | large (40 px - default) |
|---|---|---|
![]() ![]() |
![]() ![]() |
![]() ![]() |
textThe text property governs the text shown in the sign-in button. Other properties affect what is finally shown as mentioned in table below.
| Text | standard button |
icon button |
standard button in Microsoft Edge MSA profile |
|---|---|---|---|
signin_with |
“Sign in with Microsoft” | None | “Sign in as Grant” |
signup_with |
“Sign up with Microsoft” | None | “Sign up as Grant” |
continue_with |
“Continue with Microsoft” | None | “Continue as Grant” |
signin |
“Sign in” | None | “Sign in as Grant” |
In above table, we assume “Grant Zander” is user signed into MSA profile in Microsoft Edge.
shape| rectangular (default) | rounded | pill |
|---|---|---|
![]() |
![]() |
![]() ![]() |
logo_alignment| left | center (default) |
|---|---|
![]() |
![]() |
show_account_selection_for_non_msaThis property is applicable only to sign-in buttons, like in the image below, for MSA profile in Edge.

This property is false by default.
It is set to true, it ensures that MSA account picker will be shown after clicking the button. See the image below:
InitConfiguration is the configuration object that needs to be passed as argument to ms.auth.initialize method.
| Property | Value(s) | Default value | Required | More info |
|---|---|---|---|---|
client_id |
Application (client) ID | (no default value) | Yes | See Register your application. |
login_uri |
Redirect URI for Single-page application | https://<domain>/blank.html | No | See Register your application. This URI is used when ux_mode = 'popup'. |
callback |
JavaScript function that receives account information once sign-in completes. | (no default value) | Yes | On successful sign-in, this function is called with the SignInAccountInfo object. On sign-in failure, it is called with second argument SignInErrorInfo containing the error. |
auto_prompt |
true or false |
true |
No | |
auto_sign_in |
true or false |
false |
No | |
context |
“signin” “signup” “use” |
“signin” | No | |
cancel_on_tap_outside |
true or false |
true |
No | |
prompt_position |
“left” “center” “right” |
“left” | No | |
locale |
Language ID strings in table below. e.g., "en-US", "fr-FR", etc. |
"en-US" |
No | Check Language ID column in this table for possible values. |
ux_mode |
“popup” “redirect” |
“popup” | No | If “redirect” is set then button sign-in / sign-in prompt and ms.auth.startSignIn calls will use redirect flow |
redirect_uri |
Redirect URI for Web | (no default value) | Yes if ux_mode == 'redirect', else No |
Check this section for more info. |
redirect_state |
A string which will be passed as state parameter for redirect flow. |
(no default value) | No | Only used if ux_mode == 'redirect'. Also check ms.auth.setRedirectState API and redirect_state. |
partner_name |
A string which represents the partner’s name shown on sign-in prompt. | (no default value) | No | If not set, the host name will be used, e.g., abc.com. |
redirect_stateThis is an optional string value which can be configured using any of the following approaches:
redirect_state property of InitConfiguration.data-redirect_state property in HTML id="ms-auth-initialize".This data type contains following values.
| Property | Description | More info |
|———-|———|—————|
| fullName | User’s full name | Can be empty |
| surname | User’s surname | Can be empty |
| givenName | User’s given name | Can be empty |
| username | User’s email or phone number | Never empty |
| email | User’s email address | Never empty |
| photoUrl | base64-encoded dataURI representing the user’s avatar. If the user has set no avatar, its value will be null| Can be empty |
| id | an ID that is unique across all Microsoft accounts. This id can be used for some Microsoft Graph APIs (e.g., User GET). | Never empty |
| homeAccountId | User’s home account identifier which is used by MSAL | Never empty |
We recommend using either id or homeAccountId as a key, rather than the email address, because an email address isn’t a unique account identifier. It’s possible for a user to use a Gmail address for a Microsoft Account, and to potentially create two different accounts (a Microsoft account and a Google account) with that same email address. It’s also possible for a Microsoft Account user to change the primary email address on their account.
This data type contains all the fields of AccountInfo and a new field idToken.
| Property | Description | More info |
|———-|———|—————|
| fullName | User’s full name | Can be empty |
| surname | the user’s surname | Can be empty |
| givenName | the user’s given name | Can be empty |
| username | User’s email or phone number | Never empty |
| email | User’s email address | Never empty |
| photoUrl | base64-encoded dataURI representing the user’s avatar. If the user has set no avatar, its value will be null| Can be empty |
| id | an ID that is unique across all Microsoft accounts. This id can be used for some Microsoft Graph APIs (e.g., User GET). | Never empty |
| homeAccountId | User’s home account identifier which is used by MSAL | Never empty |
| idToken | ID token received during sign-in process | Never empty |
We recommend using either id or homeAccountId as a key, rather than the email address, because an email address isn’t a unique account identifier. It’s possible for a user to use a Gmail address for a Microsoft Account, and to potentially create two different accounts (a Microsoft account and a Google account) with that same email address. It’s also possible for a Microsoft Account user to change the primary email address on their account.
This data type contains the following:
| Property | Description |
|———-|———|
| errorCode | A short string classifying the error |
| errorMessage | A longer string explaining more details about the error |
For example, if user cancels out of the sign-in flow, they will get the following error info object.
{
errorCode: 'user_cancelled',
errorMessage: 'User cancelled the flow'
}
ms.auth.initialize is called to initialize Microsoft Quick Authentication library. It takes InitConfiguration object as argument. The following code example shows usage in onload function:
window.onload = function () {
const result = ms.auth.initialize({
client_id: '<your application client ID>',
callback: handleSignInResponse,
login_uri: '<your application redirect URI>',
cancel_on_tap_outside: false
});
if (result.result == 'success') {
// Proceed.
} else {
// Initialization failed.
console.error('ms.auth.initialize failed: ', result);
}
};
client_id to the Application Client ID you received from Azure.callback to the name of the JavaScript function you’d like called when a user is authenticated.login_uri to the redirect URI specified in your application registration in Azure portal. If this property isn’t set, then for website https://abc.com, Quick Authentication library will use https://abc.com/blank.html as the default.If ms.auth.initialize succeeds, it will return {result: 'success'}. If it fails, it will return {result: 'failure', reason: <string-explaining-why-it-failed>}.
The following are some possible reasons for failure:
{result: 'failure', reason: 'Library already initialized'}.callback isn’t a valid function or client_id isn’t set. In these cases, API returns {result: 'failure', reason: 'Invalid configuration'}.ux_mode == 'redirect' and redirect_uri is an null, undefined or empty string, API returns {result: 'failure', reason: 'Invalid configuration'}.ms.auth.initialize or div “ms-auth-initialize” is needed to initialize Microsoft Quick Authentication library.
If initialization isn’t done, all other API calls will fail.
This configuration object needs to be passed as argument to ms.auth.renderSignInButton method.
| Property | Values | Default | Required |
|---|---|---|---|
| type | “standard” “icon” |
“standard” | No |
| theme | “dark” “light” |
“dark” | No |
| size | “small” “medium” “large” |
“large” | No |
| text | “signin_with” “signup_with” “continue_with” “signin” |
“signin_with” | No |
| shape | “rectangular” “rounded” “pill” |
“rectangular” | No |
width |
number in CSS pixels 200–600 |
No | |
height |
number in CSS pixels 24–100 |
No | |
| logo_alignment | “left” “center” |
“left” | No |
| show_account_selection_for_non_msa | true or false |
false |
No |
ms.auth.renderSignInButton is called to render a sign-in button. See the following code example for understanding usage of this method:
<div id="ms-button-holder"></div>
<script>
function addMicrosoftSignInButton() {
const parent = document.getElementById('ms-button-holder');
const options = {theme: 'light'}; // use light theme.
ms.auth.renderSignInButton(parent, options);
};
</script>
It takes the following arguments:
parent: The HTMLElement under which this button will be rendered.options: An object of type ButtonConfiguration.If ms.auth.renderSignInButton is called before initialization has been done or if parent (first argument) isn’t set, then it will throw a string explaining the problem.
If the second argument (options) isn’t set, then it uses default values mentioned in button configuration table.
ms.auth.signOut is used to sign out a user. See the following code example for understanding usage of this method:
ms.auth.signOut(homeAccountId, function (result) {
if (result.result) {
// Finish the logout process in your website.
} else {
console.log('Sign out failed, error: ', result.error);
}
});
You’ll need to pass in homeAccountId field of AccountInfo object you received as part of the authentication event and a callback to receive the result of the signOut() call. The argument returned to the callback will be an object with the following structure:
result - true if the user was signed out, false if noterror - if result==false, will be an object with a message property explaining the errorIf this method is called before initialization has been done using ms.auth.initialize or using div “ms-auth-initialize”, then it will throw exception.
If the callback isn’t a valid function, then also this API will throw exception.
If homeAccountId isn’t found, the callback will be called with {result: 'failure', error: 'account identifier not found'}.
Note, for the moment there is a fallback. username can also be passed instead of homeAccountId to this API. But that will be removed in future revisions.
StartSignInOptions is an object which can be optionally passed into ms.auth.startSignIn method.
| Property | Value(s) | Default | Required | More info |
|---|---|---|---|---|
callback |
JavaScript function that receives account information once sign-in completes with success or failure. | None | No | Behavior is same as callback member of InitConfiguration. If this property is not specified, the callback member of InitConfiguration is called. |
showAccountSelection |
boolean | false | No | If this is set to true, then MSA account picker is shown like below. Otherwise, for MSA profile in Edge, sign-in will complete without the user needing to enter credentials. And for other browsers, sign-in may or may not need credential input from user. |
ms.auth.startSignIn can be used to begin sign-in process programmatically. See the following code example for understanding usage of this method:
button.addEventListener('click', function() {
ms.auth.startSignIn();
});
In above usage, successful or failed authentications will be routed into the callback defined when initializing the library.
If this method is called before initialization has been done using ms.auth.initialize or using div “ms-auth-initialize”, then it will throw an exception.
In redirect flow, the callback will not be called. Instead a full page redirection flow to MSA server will start.
ms.auth.startSignIn also accepts an optional StartSignInOptions argument.
showAccountSelection member of StartSignInOptions can be set to true to show MSA account picker prompt.

Here is some sample code showing that behavior:
button.addEventListener('click', function() {
// To show account picker.
const startSignInOptions = {showAccountSelection: true};
ms.auth.startSignIn(startSignInOptions);
});
callback member of StartSignInOptions can be set to a JavaScript function to ensure that it gets called on sign-in success or failure. Here is some sample code showing that behavior:
function startSignInCallback(signInAccountInfo, signInErrorInfo) {
console.log(signInAccountInfo);
if (!signInAccountInfo) {
// Sign in failed. signInErrorInfo will be non-null.
const errorCode = signInErrorInfo.errorCode; // Short string.
const errorMessage = signInErrorInfo.errorMessage; // Longer string.
console.log(`sign in failed: errorCode: ${errorCode}, errorMessage: ${errorMessage}`);
return;
}
// Sign-in succeeded. Use signInAccountInfo in sign in/up logic.
}
button.addEventListener('click', function() {
// To show account picker.
const startSignInOptions = {callback: startSignInCallback};
ms.auth.startSignIn(startSignInOptions);
});
If callback is not undefined or null and is not a function, then this function will throw an exception.
As mentioned above, in redirect flow, the callback will not be called.
ms.auth.startGetCurrentAccount can be used to determine if the current user signed-in. See the following code example for understanding usage of this method:
function accountCallback(account_info) {
if (account_info) {
// Use account.
}
}
ms.auth.startGetCurrentAccount(accountCallback);
It takes as argument a function. On completion, this function will be called with AccountInfo representing the signed-in user.
If the user is signed-in, AccountInfo will be a valid object. If the user isn’t signed-in, the argument will be null.
If this method is called before initialization has been done using ms.auth.initialize or using div “ms-auth-initialize”, then it will throw exception.
PromptMomentNotification has the following structure:
type - the moment type as a String; will be one of
prompt() method is called. If prompt shows, displayed property will be true, else displayed will be false.ms.auth.cancel was called to close the prompt.displayed - A boolean based on whether the UI is displayed; will be undefined if type isn’t “display”reason - the reason the notification callback was called as a String; will be undefined if type is “display” and displayed is true.The value of reason will vary based on the type value:
type == "display"
type == "skipped"
type == "dismissed"
ms.auth.prompt() method can be used to control the display of enhanced sign-in prompt in MSA profile in Microsoft Edge. See the following code example for understanding usage of this method:
ms.auth.prompt('right', function(notification) {
const reason = notification.reason;
if (notification.type === 'display' && !notification.displayed) {
if ( reason === 'browser_not_supported' ) {
console.log('prompt not supported in browser');
}
} else if (notification.type === 'skipped') {
if (reason === 'user_cancel') {
console.log('user cancelled');
}
} else if (notification.type === 'dismissed') {
if (reason === 'credential_returned') {
console.log('Got sign-in credentials');
}
}
});
This method may be called with no arguments to use the default configuration. You may also supply the following arguments to customize its appearance and/or respond to specific user interactions with the prompt.
The first argument is the position. By default, the prompt is rendered on the left. You can position it “center” or “right” as well.
The second argument is a callback function that receives notifications from the prompt, based on user interactions. The callback receives a PromptMomentNotification object when the user interacts with it.
If this method is called before initialization has been done using ms.auth.initialize or using div “ms-auth-initialize”, then it will throw exception.
If the callback is specified in second argument isn’t null or undefined, it has to be a valid function, otherwise this API will throw exception.
The sign-in prompt will only show in a profile signed in with MSA account in Microsoft Edge. For non-MSA profile in Microsoft Edge, it will not be displayed and PromptMomentNotification will have reason === 'non_msa_profile'. For other browsers, PromptMomentNotification will have reason === 'browser_not_supported'.
ms.auth.cancel can be used to close the enhanced sign-in prompt in MSA profile in Microsoft Edge. See the following code example for understanding usage of this method:
ms.auth.cancel();
This method will be a no-op if there’s no prompt showing.
If a prompt was showing and it was dismissed using this method, then the callback registered with ms.auth.prompt will receive PromptMomentNotification object { type: "dismissed", reason: "cancel_called" }.
If this method is called before initialization has been done using ms.auth.initialize or using div “ms-auth-initialize”, then it will throw exception.
Quick Authentication uses MSAL.js internally. MSAL.js provides functionality for fetching tokens. Quick Authentication exposes APIs to use MSAL.js functionality for fetching token.
ms.auth.getMSALAccount method can be used to get MSAL account info, which is needed to fetch MSAL token. See the following code example for understanding usage of this method:
const msalAccount = ms.auth.getMSALAccount(accountInfo.homeAccountId);
if (msalAccount) {
// Use the MSAL account.
} else {
console.log(`No MSAL account exists for ${accountInfo.homeAccountId}`);
}
homeAccountId is the homeAccountId field in AccountInfo, which was returned to the callback after a successful sign-in.
If it succeeds, the API will return the MSAL account information corresponding to the homeAccountId.
If the account can’t be found, null will be returned.
If this method is called before initialization has been done using ms.auth.initialize or using div “ms-auth-initialize”, then it will throw exception.
Note, for the moment there is a fallback. username can also be passed instead of homeAccountId to this API. But that will be removed in future revisions.
ms.auth.acquireTokenSilent can be used to fetch tokens silently. See the following code example for understanding usage of this method:
function tokenFetchResponse(response) {
if (response && response.accessToken) {
// Use accessToken.
}
}
const request = {
scopes: ["User.Read"],
account: ms.auth.getMSALAccount(accountInfo.homeAccountId),
}
if (!request.account) {
console.log('Silent token fetch failed: Account not found');
} else {
ms.auth.acquireTokenSilent(request).then(tokenFetchResponse).catch(err => {
console.log("Token fetch failed with error: " , err);
});
}
If this method is called before initialization has been done using ms.auth.initialize or using div “ms-auth-initialize”, then it will throw an exception.
Check MSAL.js access token fetch documentation for more information. Also check MSAL.js acquireTokenSilent API documentation.
ms.auth.InteractionRequiredAuthError is error type thrown in case ms.auth.acquireTokenSilent fails with user interaction. In such a case, ms.auth.acquireTokenPopup can be used to fetch the token.
ms.auth.acquireTokenPopup can be called to fetch tokens in case fetching tokens silently fail. See the following code example for understanding usage of this method:
function tokenFetchResponse(response) {
if (response && response.accessToken) {
// Use accessToken.
}
}
const request = {
scopes: ["Mail.Read"],
account: ms.auth.getMSALAccount(accountInfo.homeAccountId),
}
if (request.account) {
ms.auth.acquireTokenSilent(request).then(tokenFetchResponse).catch(err => {
if (err instanceof ms.auth.InteractionRequiredAuthError) {
ms.auth.acquireTokenPopup(request);
}
});
}
If this method is called before initialization has been done using ms.auth.initialize or using div “ms-auth-initialize”, then it will throw an exception.
Check MSAL.js access token fetch documentation for more information. Also check MSAL.js acquireTokenPopup API documentation.
If ux_mode == 'redirect' then ms.auth.setRedirectState can be called to set a string which will be used as state parameter during redirection.
ms.auth.setRedirectState('some-unique-string-that-is-known-by-your-server');
Check this section for more info on redirect state.
If this method is called before initialization has been done using ms.auth.initialize or using div “ms-auth-initialize”, then it will throw exception.
ms.auth.hasMSAAccount method can be used to check whether there is a profile signed in with MSA account in Microsoft Edge. See the following code example for understanding usage of this method:
ms.auth.hasMSAAccount(function(hasMSAAccount) {
if (hasMSAAccount) {
// There is a MSA account in the profile.
} else {
// No MSA account in the profile.
}
});
If this method is called before initialization has been done using ms.auth.initialize or using div “ms-auth-initialize”, then it will throw exception.
| Language ID | Language name |
|---|---|
af-ZA |
Afrikaans (South Africa) |
am-ET |
Amharic (Ethiopia) |
ar-SA |
Arabic (Saudi Arabia) |
as-IN |
Assamese (India) |
az-Latn-AZ |
Azerbaijani (Latin, Azerbaijan) |
bg-BG |
Bulgarian (Bulgaria) |
bn-IN |
Bangla (India) |
bs-Latn-BA |
Bosnian (Latin, Bosnia and Herzegovina) |
ca-ES |
Catalan (Catalan) |
ca-ES-valencia |
Valencian (Spain) |
cs-CZ |
Czech (Czech Republic) |
cy-GB |
Welsh (United Kingdom) |
da-DK |
Danish (Denmark) |
de-DE |
German (Germany) |
el-GR |
Greek (Greece) |
en-GB |
English (United Kingdom) |
en-US |
English (United States) |
es-ES |
Spanish (Spain, International Sort) |
es-MX |
Spanish (Mexico) |
et-EE |
Estonian (Estonia) |
eu-ES |
Basque (Basque) |
fa-IR |
Persian |
fi-FI |
Finnish (Finland) |
fil-PH |
Filipino (Philippines) |
fr-CA |
French (Canada) |
fr-FR |
French (France) |
ga-IE |
Irish (Ireland) |
gd-GB |
Scottish Gaelic (United Kingdom) |
gl-ES |
Galician (Galician) |
gu-IN |
Gujarati (India) |
he-IL |
Hebrew (Israel) |
hi-IN |
Hindi (India) |
hr-HR |
Croatian (Croatia) |
hu-HU |
Hungarian (Hungary) |
hy-AM |
Armenian (Armenia) |
id-ID |
Indonesian (Indonesia) |
is-IS |
Icelandic (Iceland) |
it-IT |
Italian (Italy) |
ja-JP |
Japanese (Japan) |
ka-GE |
Georgian (Georgia) |
kk-KZ |
Kazakh (Kazakhstan) |
km-KH |
Khmer (Cambodia) |
kn-IN |
Kannada (India) |
kok-IN |
Konkani (India) |
ko-KR |
Korean (Korea) |
lb-LU |
Luxembourgish (Luxembourg) |
lo-LA |
Lao (Laos P.D.R.) |
lt-LT |
Lithuanian (Lithuania) |
lv-LV |
Latvian (Latvia) |
mi-NZ |
Maori (New Zealand) |
mk-MK |
Macedonian (North Macedonia) |
ml-IN |
Malayalam (India) |
mr-IN |
Marathi (India) |
ms-MY |
Malay (Malaysia) |
mt-MT |
Maltese (Malta) |
nb-NO |
Norwegian, Bokmål (Norway) |
ne-NP |
Nepali (Nepal) |
nl-NL |
Dutch (Netherlands) |
nn-NO |
Norwegian, Nynorsk (Norway) |
or-IN |
Odia |
pa-IN |
Punjabi (India) |
pl-PL |
Polish (Poland) |
pt-BR |
Portuguese (Brazil) |
pt-PT |
Portuguese (Portugal) |
quz-PE |
Quechua (Peru) |
ro-RO |
Romanian (Romania) |
ru-RU |
Russian (Russia) |
sk-SK |
Slovak (Slovakia) |
sl-SI |
Slovenian (Slovenia) |
sq-AL |
Albanian (Albania) |
sr-Cyrl-BA |
Serbian (Cyrillic, Bosnia and Herzegovina) |
sr-Cyrl-RS |
Serbian (Cyrillic, Serbia) |
sr-Latn-RS |
Serbian (Latin, Serbia) |
sv-SE |
Swedish (Sweden) |
ta-IN |
Tamil (India) |
te-IN |
Telugu (India) |
th-TH |
Thai (Thailand) |
tr-TR |
Turkish (Turkey) |
tt-RU |
Tatar (Russia) |
ug-CN |
Uyghur (PRC) |
uk-UA |
Ukrainian (Ukraine) |
ur-PK |
Urdu (Islamic Republic of Pakistan) |
uz-Latn-UZ |
Uzbek (Latin, Uzbekistan) |
vi-VN |
Vietnamese (Vietnam) |
zh-CN |
Chinese (Simplified, PRC) |
zh-TW |
Chinese (Traditional, Taiwan) |