Internationalisation de la connexion universelle
Localisation de la connexion universelle
L’expérience de connexion universelle est localisée dans les langues suivantes :
Langue | Code |
---|---|
Albanais | sq |
Allemand | de |
Amharic | am |
Anglais | en |
Anglais – Canada | en-CA |
Arménien | hy |
Azerbaïdjanais | az |
Basque | eu-ES |
Bengali | bn |
Bosniaque | bs |
Bulgare | bg |
Catalan | ca-ES |
Chinois – Hong Kong | zh-HK |
Chinois – Simplifié | zh-CN |
Chinois – Traditionnel | zh-TW |
Coréen | ko |
Croate | hr |
Danois | da |
Espagnol | es |
Espagnol – Amérique latine | es-419 |
Espagnol – Argentine | es-AR |
Espagnol –Mexique | es-MX |
Estonien | et |
Finnois | fi |
Français | fr-FR |
Français – Canada | fr-CA |
Galicien | gl-ES |
Gallois | cy |
Géorgien | ka |
Grec | el |
Gujrati | gu |
Hindi | hi |
Hongrois | hu |
Indonésien | id |
Islandais | is |
Italien | it |
Japonais | ja |
Kannada | kn |
Letton | lv |
Lituanien | lt |
Macédonien | mk |
Malais | ms |
Malayalam | ml |
Marathi | mr |
Mongolien | mn |
Monténegrin | cnr |
Myanmar | my |
Néerlandais | nl |
Norvégien | no |
Norvégien – Bokmål | nb |
Norvégien – Nynorsk | nn |
Polonais | pl |
Portugais – Brésil | pt-BR |
Portugais – Portugal | pt-PT |
Pendjabi | pa |
Roumain | ro |
Russe | ru |
Serbe | sr |
Slovaque | sk |
Slovène | sl |
Somali | so |
Swahili | sw |
Suédois | sv |
Tagalog | tl |
Tamazight | zgh |
Tamoul | ta |
Tchèque | cs |
Telugu | te |
Thaï | th |
Turc | tr |
Ukrainien | uk |
Vietnamien | vi |
Choix de la langue
La langue dans laquelle les pages seront affichées sera sélectionnée en fonction :
des langues prises en charge par Auth0, qui sont susmentionnées.
La liste des langues configurées dans les paramètres du locataire, où vous pouvez sélectionner les langues que votre locataire prend en charge et en choisir une par défaut. Par défaut, la liste n’a que l’anglais sélectionné, mais vous pouvez choisir celles dont vous avez besoin.
La valeur du paramètre
ui_locales
envoyée au point de terminaison de demande d’autorisation, qui peut être utilisée pour restreindre la liste des langues pour une application ou une session. Vous pouvez fournir une liste de locales délimitée par des espaces. La première locale de la liste doit correspondre à la locale activée dans votre locataire pour se refléter dans l’interface utilisateur.L’en-tête HTTP
Accept-Language
envoyé par le navigateur. Les pages seront affichées dans cette langue si elle est autorisée par les paramètres ci-dessus. Sinon, les pages seront affichées dans la langue par défaut.
Pour ajouter une langue qui n’est pas répertoriée ci-dessus, utilisez Management API pour créer un appel PATCH
au point de terminaison des locataires avec le corps suivant, en remplacement he
avec le code langue que vous souhaitez ajouter :
{
"enabled_locales": [
"en","he"
]
}
Was this helpful?
Une fois ajouté, spécifiez la langue dans le paramètre de requête ui_locales de la demande de connexion.
Définir les langues prises en charge par le locataire
Vous pouvez définir les langues prises en charge et celles par défaut dans la section Tenant Settings (Paramètres du locataire) dans le Dashboard.
Vous pouvez également spécifier les langues activées pour le locataire par le biais de Management API en utilisant le point de terminaison Mettre à jour les paramètres du locataire. La première langue de la liste sera la langue par défaut.
curl --request PATCH \
--url 'https://{yourDomain}/api/v2/tenants/settings' \
--header 'authorization: Bearer API2_ACCESS_TOKEN' \
--header 'content-type: application/json' \
--data '{ "enabled_locales" : [ "en", "es"]}'
Was this helpful?
var client = new RestClient("https://{yourDomain}/api/v2/tenants/settings");
var request = new RestRequest(Method.PATCH);
request.AddHeader("content-type", "application/json");
request.AddHeader("authorization", "Bearer API2_ACCESS_TOKEN");
request.AddParameter("application/json", "{ \"enabled_locales\" : [ \"en\", \"es\"]}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Was this helpful?
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://{yourDomain}/api/v2/tenants/settings"
payload := strings.NewReader("{ \"enabled_locales\" : [ \"en\", \"es\"]}")
req, _ := http.NewRequest("PATCH", url, payload)
req.Header.Add("content-type", "application/json")
req.Header.Add("authorization", "Bearer API2_ACCESS_TOKEN")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
Was this helpful?
HttpResponse<String> response = Unirest.patch("https://{yourDomain}/api/v2/tenants/settings")
.header("content-type", "application/json")
.header("authorization", "Bearer API2_ACCESS_TOKEN")
.body("{ \"enabled_locales\" : [ \"en\", \"es\"]}")
.asString();
Was this helpful?
var axios = require("axios").default;
var options = {
method: 'PATCH',
url: 'https://{yourDomain}/api/v2/tenants/settings',
headers: {'content-type': 'application/json', authorization: 'Bearer API2_ACCESS_TOKEN'},
data: {enabled_locales: ['en', 'es']}
};
axios.request(options).then(function (response) {
console.log(response.data);
}).catch(function (error) {
console.error(error);
});
Was this helpful?
#import <Foundation/Foundation.h>
NSDictionary *headers = @{ @"content-type": @"application/json",
@"authorization": @"Bearer API2_ACCESS_TOKEN" };
NSDictionary *parameters = @{ @"enabled_locales": @[ @"en", @"es" ] };
NSData *postData = [NSJSONSerialization dataWithJSONObject:parameters options:0 error:nil];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://{yourDomain}/api/v2/tenants/settings"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
[request setHTTPMethod:@"PATCH"];
[request setAllHTTPHeaderFields:headers];
[request setHTTPBody:postData];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSLog(@"%@", httpResponse);
}
}];
[dataTask resume];
Was this helpful?
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{yourDomain}/api/v2/tenants/settings",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => "{ \"enabled_locales\" : [ \"en\", \"es\"]}",
CURLOPT_HTTPHEADER => [
"authorization: Bearer API2_ACCESS_TOKEN",
"content-type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
Was this helpful?
import http.client
conn = http.client.HTTPSConnection("")
payload = "{ \"enabled_locales\" : [ \"en\", \"es\"]}"
headers = {
'content-type': "application/json",
'authorization': "Bearer API2_ACCESS_TOKEN"
}
conn.request("PATCH", "/{yourDomain}/api/v2/tenants/settings", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
Was this helpful?
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://{yourDomain}/api/v2/tenants/settings")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Patch.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Bearer API2_ACCESS_TOKEN'
request.body = "{ \"enabled_locales\" : [ \"en\", \"es\"]}"
response = http.request(request)
puts response.read_body
Was this helpful?
import Foundation
let headers = [
"content-type": "application/json",
"authorization": "Bearer API2_ACCESS_TOKEN"
]
let parameters = ["enabled_locales": ["en", "es"]] as [String : Any]
let postData = JSONSerialization.data(withJSONObject: parameters, options: [])
let request = NSMutableURLRequest(url: NSURL(string: "https://{yourDomain}/api/v2/tenants/settings")! as URL,
cachePolicy: .useProtocolCachePolicy,
timeoutInterval: 10.0)
request.httpMethod = "PATCH"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
Was this helpful?
Limites
Le paramètre
ui_locales
ne peut être utilisé que dans les flux OAuth, car il n’est pas disponible dans SAML ou WS-Federation.Le paramètre
ui_locales
n’est pas transmis aux fournisseurs d’identité (IdP) en amont. Pour en savoir plus sur le passage de paramètres aux fournisseurs d’identité, consultez Transmettre les paramètres aux fournisseurs d’identité.Il n’est pas possible de localiser les permissions dans la page de Consentement.
Problèmes connus
L’ULP rend l’attribut HTML
lang
pour le code de languefr-FR
en tant quefr
.L’ULP rend l’attribut HTML
lang
pour le code de languept-PT
en tant quept
.
Localisation de la connexion classique
Dans l’expérience de connexion classique, la localisation (traduction) se fait à l’aide de nos gadgets logiciels JavaScript pour la connexion, la page de réinitialisation du mot de passe et les politiques liées au mot de passe.
La page MFA utilise par défaut le gadget logiciel Auth0 MFA, qui ne peut pas être localisé. Vous pouvez créer des versions localisées en utilisant guardian.js.
Il n’est pas possible de localiser la page de Consentement.