> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Découvrez comment ajouter un menu permettant de choisir une langue de préférence aux écrans d’Universal Login.

# Configurer la sélection flexible de la langue

export const AuthCodeGroup = ({children, dropdown}) => {
  const [processedChildren, setProcessedChildren] = useState(children);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      unsubscribe = window.autorun(() => {
        const processChildren = node => {
          if (typeof node === "string") {
            let processedNode = node;
            for (const [key, value] of window.rootStore.variableStore.values.entries()) {
              const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
              processedNode = processedNode.replaceAll(new RegExp(escapedKey, "g"), value);
            }
            return processedNode;
          } else if (Array.isArray(node)) {
            return node.map(processChildren);
          } else if (node && node.props && node.props.children) {
            return {
              ...node,
              props: {
                ...node.props,
                children: processChildren(node.props.children)
              }
            };
          }
          return node;
        };
        setProcessedChildren(processChildren(children));
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  return <CodeGroup dropdown={dropdown}>{processedChildren}</CodeGroup>;
};

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [displayText, setDisplayText] = useState(children);
  const [copyText, setCopyText] = useState(children);
  const wrapperRef = React.useRef(null);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      if (!window.autorun || !window.rootStore) {
        return;
      }
      unsubscribe = window.autorun(() => {
        let processedChildrenForDisplay = children;
        let processedChildrenForCopy = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
          let displayValue = value;
          if (key === "{yourClientSecret}" && value !== "{yourClientSecret}") {
            displayValue = value.substring(0, 3) + "*****MASQUÉ*****";
          }
          processedChildrenForDisplay = processedChildrenForDisplay.replaceAll(new RegExp(escapedKey, "g"), displayValue);
          processedChildrenForCopy = processedChildrenForCopy.replaceAll(new RegExp(escapedKey, "g"), value);
        }
        setDisplayText(processedChildrenForDisplay);
        setCopyText(processedChildrenForCopy);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  useEffect(() => {
    if (!wrapperRef.current) return;
    const originalWriteText = navigator.clipboard.writeText.bind(navigator.clipboard);
    let isOverriding = false;
    const handleClick = e => {
      const button = e.target.closest('[data-testid="copy-code-button"]');
      if (!button || !wrapperRef.current.contains(button)) return;
      isOverriding = true;
      navigator.clipboard.writeText = text => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
          return originalWriteText(copyText);
        }
        return originalWriteText(text);
      };
      setTimeout(() => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
        }
      }, 100);
    };
    const wrapper = wrapperRef.current;
    wrapper.addEventListener('click', handleClick, true);
    return () => {
      wrapper.removeEventListener('click', handleClick, true);
      if (navigator.clipboard.writeText !== originalWriteText) {
        navigator.clipboard.writeText = originalWriteText;
      }
    };
  }, [copyText]);
  return <div ref={wrapperRef}>
      <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
        {displayText}
      </CodeBlock>
    </div>;
};

La fonctionnalité optionnelle de sélection flexible de la langue permet aux utilisateurs de choisir leur langue préférée dans les prompts <Tooltip tip="Universal Login : votre application redirige vers Universal Login, hébergé sur le serveur d’autorisation d’Auth0, pour vérifier l’identité d’un utilisateur." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Universal+Login">Universal Login</Tooltip> associés à votre application, comme l’écran de connexion. Vous pouvez configurer cette fonctionnalité séparément pour différents prompts Universal Login.

Après avoir activé cette fonctionnalité pour un prompt précis, un menu de sélection de la langue est ajouté à l’écran associé. Les utilisateurs peuvent y choisir leur langue préférée pour afficher automatiquement le prompt dans cette langue.

<Frame>
  <img src="https://mintcdn.com/translations/pvjQqAy3EB2TK6NP/docs/images/cdy7uua7fh8z/4Z5pt3aH3vpRRYV0RDDnba/dc7a5abc8ee2cb462b2be4b43490393c/Language_Selector_Prompts.png?fit=max&auto=format&n=pvjQqAy3EB2TK6NP&q=85&s=d0c31a1281d768478c797666dbf78dd0" alt="Deux prompts Universal Login montrant le menu de sélection de la langue. " width="982" height="636" data-path="docs/images/cdy7uua7fh8z/4Z5pt3aH3vpRRYV0RDDnba/dc7a5abc8ee2cb462b2be4b43490393c/Language_Selector_Prompts.png" />
</Frame>

<div id="before-you-begin">
  ## Avant de commencer
</div>

Avant de pouvoir mettre en place la sélection flexible de la langue, assurez-vous de respecter les conditions suivantes :

* Utilisez [Universal Login](/docs/fr-ca/authenticate/login/auth0-universal-login).

  * Cette fonctionnalité n’est pas offerte pour les pages de connexion personnalisées.
* Configurez un [domaine personnalisé](/docs/fr-ca/customize/custom-domains).
* Activez dans votre tenant Auth0 les langues que vous prévoyez d’ajouter à vos prompts.

  * Dans l’Auth0 Dashboard, accédez à [Settings > General > Languages](https://manage.auth0.com/#/tenant/general) et activez une ou plusieurs langues.

    * Pour en savoir plus, consultez [Universal Login Internationalization](/docs/fr-ca/customize/internationalization-and-localization/universal-login-internationalization).

<div id="implement-flexible-language-selection">
  ## Configurer la sélection flexible de la langue
</div>

La configuration de la sélection flexible de la langue comprend deux étapes principales :

1. Préparer votre gabarit de page pour faciliter la sélection de la langue.
2. Configurer chaque prompt pour afficher la sélection de la langue aux utilisateurs.

<div id="prepare-your-universal-login-page-template">
  ### Préparez le gabarit de votre page Universal Login
</div>

Pour commencer, ajoutez le script suivant au [gabarit de votre page Universal Login](/docs/fr-ca/customize/login-pages/universal-login/customize-templates) pour permettre la sélection de la langue.

```html lines theme={null}
<script>
  function updateSelectedLanguage() {
    const selectElement = document.getElementById('language');
    const selectedValue = selectElement.value;
    const options = selectElement.options;
    for (let i = 0; i < options.length; i++) {
      if (options[i].value === selectedValue) {
        options[i].selected = true;
      } else {
        options[i].selected = false;
      }
    }
    document.getElementById('changeLanguage').click();
  }
</script>
```

Ce script permet au prompt Universal Login d’afficher un menu dynamique de sélection de la langue. Les utilisateurs peuvent accéder à ce menu pour appliquer leur langue préférée à un écran configuré.

Pour ajouter ce script à votre gabarit de page, utilisez le point de terminaison [Set Template for Universal Login](https://auth0.com/docs/api/management/v2/branding/put-universal-login).

<Warning>
  Sachez que cette requête **écrasera toute configuration existante** de votre gabarit de page Universal Login. Pour éviter toute interruption, assurez-vous d’inclure dans cette requête toutes les personnalisations nécessaires du gabarit de page.
</Warning>

<AuthCodeGroup>
  ```bash cURL theme={null}
  curl --request PUT \
    --url 'https://{yourDomain}/api/v2/branding/templates/universal-login' \
    --header 'authorization: Bearer MANAGEMENT_API_TOKEN' \
    --header 'content-type: text/html' \
    --data '<!DOCTYPE html>
  <html>
  <head>{%- auth0:head -%}</head>
  <body class='''_widget-auto-layout'''>{%- auth0:widget -%}</body>
  <script>
    function updateSelectedLanguage() {
      const selectElement = document.getElementById('''language''');
      const selectedValue = selectElement.value;
      const options = selectElement.options;
      for (let i = 0; i < options.length; i++) {
        if (options[i].value === selectedValue) {
          options[i].selected = true;
        } else {
          options[i].selected = false;
        }
      }
      document.getElementById('''changeLanguage''').click();
    }
  </script>'
  ```

  ```csharp C# theme={null}
  var client = new RestClient("https://{yourDomain}/api/v2/branding/templates/universal-login");
  var request = new RestRequest(Method.PUT);
  request.AddHeader("content-type", "text/html");
  request.AddHeader("authorization", "Bearer MANAGEMENT_API_TOKEN");
  request.AddParameter("text/html", "

  {%- auth0:head -%}
  {%- auth0:widget -%}
  ", ParameterType.RequestBody);
  IRestResponse response = client.Execute(request);
  ```

  ```go Go theme={null}
  package main

  import (
  	"fmt"
  	"io/ioutil"
  	"net/http"
  	"strings"
  )

  func main() {

  	url := "https://{yourDomain}/api/v2/branding/templates/universal-login"

  	payload := strings.NewReader(`<!DOCTYPE html>
  <html>
  <head>{%- auth0:head -%}</head>
  <body class='_widget-auto-layout'>{%- auth0:widget -%}</body>
  <script>
    function updateSelectedLanguage() {
      const selectElement = document.getElementById('language');
      const selectedValue = selectElement.value;
      const options = selectElement.options;
      for (let i = 0; i < options.length; i++) {
        if (options[i].value === selectedValue) {
          options[i].selected = true;
        } else {
          options[i].selected = false;
        }
      }
      document.getElementById('changeLanguage').click();
    }
  </script>`)

  	req, _ := http.NewRequest("PUT", url, payload)

  	req.Header.Add("content-type", "text/html")
  	req.Header.Add("authorization", "Bearer MANAGEMENT_API_TOKEN")

  	res, _ := http.DefaultClient.Do(req)

  	defer res.Body.Close()
  	body, _ := ioutil.ReadAll(res.Body)

  	fmt.Println(res)
  	fmt.Println(string(body))

  }
  ```

  ```java Java theme={null}
  HttpResponse<String> response = Unirest.put("https://{yourDomain}/api/v2/branding/templates/universal-login")
    .header("content-type", "text/html")
    .header("authorization", "Bearer MANAGEMENT_API_TOKEN")
    .body("""
  <!DOCTYPE html>
  <html>
  <head>{%- auth0:head -%}</head>
  <body class='_widget-auto-layout'>{%- auth0:widget -%}</body>
  <script>
    function updateSelectedLanguage() {
      const selectElement = document.getElementById('language');
      const selectedValue = selectElement.value;
      const options = selectElement.options;
      for (let i = 0; i < options.length; i++) {
        if (options[i].value === selectedValue) {
          options[i].selected = true;
        } else {
          options[i].selected = false;
        }
      }
      document.getElementById('changeLanguage').click();
    }
  </script>""")
    .asString();
  ```

  ```javascript Node.JS theme={null}
  var axios = require("axios").default;

  var options = {
    method: 'PUT',
    url: 'https://{yourDomain}/api/v2/branding/templates/universal-login',
    headers: {'content-type': 'text/html', authorization: 'Bearer MANAGEMENT_API_TOKEN'},
    data: `<!DOCTYPE html>
  <html>
  <head>{%- auth0:head -%}</head>
  <body class='_widget-auto-layout'>{%- auth0:widget -%}</body>
  <script>
    function updateSelectedLanguage() {
      const selectElement = document.getElementById('language');
      const selectedValue = selectElement.value;
      const options = selectElement.options;
      for (let i = 0; i < options.length; i++) {
        if (options[i].value === selectedValue) {
          options[i].selected = true;
        } else {
          options[i].selected = false;
        }
      }
      document.getElementById('changeLanguage').click();
    }
  </script>`
  };

  axios.request(options).then(function (response) {
    console.log(response.data);
  }).catch(function (error) {
    console.error(error);
  });
  ```

  ```php PHP theme={null}
  $curl = curl_init();

  curl_setopt_array($curl, [
    CURLOPT_URL => "https://{yourDomain}/api/v2/branding/templates/universal-login",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => "",
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => "PUT",
    CURLOPT_POSTFIELDS => "<!DOCTYPE html>
  <html>
  <head>{%- auth0:head -%}</head>
  <body class='_widget-auto-layout'>{%- auth0:widget -%}</body>
  <script>
    function updateSelectedLanguage() {
      const selectElement = document.getElementById('language');
      const selectedValue = selectElement.value;
      const options = selectElement.options;
      for (let i = 0; i < options.length; i++) {
        if (options[i].value === selectedValue) {
          options[i].selected = true;
        } else {
          options[i].selected = false;
        }
      }
      document.getElementById('changeLanguage').click();
    }
  </script>",
    CURLOPT_HTTPHEADER => [
      "authorization: Bearer MANAGEMENT_API_TOKEN",
      "content-type: text/html"
    ],
  ]);

  $response = curl_exec($curl);
  $err = curl_error($curl);

  curl_close($curl);

  if ($err) {
    echo "cURL Error #:" . $err;
  } else {
    echo $response;
  }
  ```

  ```python Python theme={null}
  import http.client

  conn = http.client.HTTPSConnection("")

  payload = """<!DOCTYPE html>
  <html>
  <head>{%- auth0:head -%}</head>
  <body class='_widget-auto-layout'>{%- auth0:widget -%}</body>
  <script>
    function updateSelectedLanguage() {
      const selectElement = document.getElementById('language');
      const selectedValue = selectElement.value;
      const options = selectElement.options;
      for (let i = 0; i < options.length; i++) {
        if (options[i].value === selectedValue) {
          options[i].selected = true;
        } else {
          options[i].selected = false;
        }
      }
      document.getElementById('changeLanguage').click();
    }
  </script>"""

  headers = {
      'content-type': "text/html",
      'authorization': "Bearer MANAGEMENT_API_TOKEN"
  }

  conn.request("PUT", "/{yourDomain}/api/v2/branding/templates/universal-login", payload, headers)

  res = conn.getresponse()
  data = res.read()

  print(data.decode("utf-8"))
  ```

  ```ruby Ruby theme={null}
  require 'uri'
  require 'net/http'
  require 'openssl'

  url = URI("https://{yourDomain}/api/v2/branding/templates/universal-login")

  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_PEER

  request = Net::HTTP::Put.new(url)
  request["content-type"] = 'text/html'
  request["authorization"] = 'Bearer MANAGEMENT_API_TOKEN'
  request.body = "<!DOCTYPE html>
  <html>
  <head>{%- auth0:head -%}</head>
  <body class='_widget-auto-layout'>{%- auth0:widget -%}</body>
  <script>
    function updateSelectedLanguage() {
      const selectElement = document.getElementById('language');
      const selectedValue = selectElement.value;
      const options = selectElement.options;
      for (let i = 0; i < options.length; i++) {
        if (options[i].value === selectedValue) {
          options[i].selected = true;
        } else {
          options[i].selected = false;
        }
      }
      document.getElementById('changeLanguage').click();
    }
  </script>"

  response = http.request(request)
  puts response.read_body
  ```
</AuthCodeGroup>

<div id="configure-individual-universal-login-prompts">
  ### Configurer des prompts Universal Login individuels
</div>

Ensuite, ajoutez la sélection de la langue à un ou plusieurs prompts Universal Login en configurant des partials de prompt personnalisés. Les partials correspondent à du code personnalisé inséré dans un point d'entrée d'un écran de prompt, comme l'écran de connexion. Pour en savoir plus, consultez [Personnaliser les prompts d'inscription et de connexion](/docs/fr-ca/customize/internationalization-and-localization/universal-login-internationalization).

Pour ajouter la sélection de la langue à un prompt précis, utilisez la <Tooltip tip="Management API : Un produit permettant aux clients d'effectuer des tâches administratives." cta="Voir le glossaire" href="/docs/fr-ca/glossary?term=Management+API">Management API</Tooltip> d'Auth0 pour configurer des partials de prompt personnalisés avec les paramètres suivants :

| Paramètre  | Description                                                                                                                                                                                                                                                                                                                                                                            | Exemple de valeur |
| ---------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------- |
| `language` | Obligatoire.<br /><br />Une ou plusieurs langues à inclure dans le menu de sélection de la langue affiché aux utilisateurs.                                                                                                                                                                                                                                                            | `es`,`fr`,`en`    |
| `persist`  | Obligatoire.<br /><br />Détermine si la langue doit être conservée pendant la session.                                                                                                                                                                                                                                                                                                 | `session`         |
| `action`   | Facultatif.<br /><br />Utilisez ce paramètre si vous voulez permettre aux utilisateurs de mettre à jour leur langue sans faire avancer le prompt.<br /><br />Si une valeur est fournie, le formulaire n'est **pas** automatiquement soumis lorsqu'un utilisateur change de langue. Sinon, le prompt passe automatiquement à l'étape suivante lorsqu'une autre langue est sélectionnée. | `change-language` |

Consultez les sections ci-dessous pour voir des exemples de code pour différents types de prompts Universal Login.

<Warning>
  Dans les exemples de code ci-dessous, assurez-vous de remplacer les espaces réservés par les valeurs appropriées :

  * Remplacez `{yourDomain}` par `yourdomain.auth0.com`.
  * Remplacez `{mgmtApiToken}` par votre jeton d'accès.
</Warning>

<AccordionGroup>
  <Accordion title="Écran d’inscription : Identifiant + mot de passe">
    Pour ajouter la sélection de la langue à l’invite `signup`, utilisez le point de terminaison [Set partials for a prompt](https://auth0.com/docs/api/management/v2/prompts/put-partials) :

    <AuthCodeGroup>
      ```bash cURL theme={null}
      curl --request PUT \
        --url 'https://{yourDomain}/api/v2/prompts/signup/partials' \
        --header 'authorization: Bearer {mgmtApiToken}' \
        --header 'content-type: application/json' \
        --data '{
          "signup": {
              "form-content-start": "<div class="ulp-field"><label for="language">Preferred Language</label><select name="language"id="language"  onchange=updateSelectedLanguage()><option></option><option value="en" {% if locale == "en" %}selected{% endif %}>English</option><option value="fr" {% if locale == "fr" %}selected{% endif %}>French</option><option value="es" {% if locale == "es" %}selected{% endif %}>Spanish</option></select></div><input type="hidden" name="persist" value="session"/><input name="action" id="changeLanguage" type="submit" value="change-language" style="display:none" formnovalidate/>"
          }
      }'
      ```

      ```csharp C# theme={null}
      var client = new RestClient("https://{yourDomain}/api/v2/prompts/signup/partials");
      var request = new RestRequest(Method.PUT);
      request.AddHeader("content-type", "application/json");
      request.AddHeader("authorization", "Bearer {mgmtApiToken}");
      request.AddParameter("application/json", "{
          "signup": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }", ParameterType.RequestBody);
      IRestResponse response = client.Execute(request);
      ```

      ```go Go theme={null}
      package main

      import (
      	"fmt"
      	"strings"
      	"net/http"
      	"io/ioutil"
      )

      func main() {

      	url := "https://{yourDomain}/api/v2/prompts/signup/partials"

      	payload := strings.NewReader("{
          "signup": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }")

      	req, _ := http.NewRequest("PUT", url, payload)

      	req.Header.Add("content-type", "application/json")
      	req.Header.Add("authorization", "Bearer {mgmtApiToken}")

      	res, _ := http.DefaultClient.Do(req)

      	defer res.Body.Close()
      	body, _ := ioutil.ReadAll(res.Body)

      	fmt.Println(res)
      	fmt.Println(string(body))

      }
      ```

      ```java Java theme={null}
      HttpResponse<String> response = Unirest.put("https://{yourDomain}/api/v2/prompts/signup/partials")
        .header("content-type", "application/json")
        .header("authorization", "Bearer {mgmtApiToken}")
        .body("{
          "signup": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }")
        .asString();
      ```

      ```javascript Node.JS theme={null}
      var axios = require("axios").default;

      var options = {
        method: 'PUT',
        url: 'https://{yourDomain}/api/v2/prompts/signup/partials',
        headers: {'content-type': 'application/json', authorization: 'Bearer {mgmtApiToken}'},
        data: {
          signup: {
            'form-content-start': '<div class="ulp-field"><label for="language">Preferred Language</label><select name="language"id="language"  onchange=updateSelectedLanguage()><option></option><option value="en" {% if locale == "en" %}selected{% endif %}>English</option><option value="fr" {% if locale == "fr" %}selected{% endif %}>French</option><option value="es" {% if locale == "es" %}selected{% endif %}>Spanish</option></select></div><input type="hidden" name="persist" value="session"/><input name="action" id="changeLanguage" type="submit" value="change-language" style="display:none" formnovalidate/>'
          }
        }
      };

      axios.request(options).then(function (response) {
        console.log(response.data);
      }).catch(function (error) {
        console.error(error);
      });
      ```

      ```php PHP theme={null}
      $curl = curl_init();

      curl_setopt_array($curl, [
        CURLOPT_URL => "https://{yourDomain}/api/v2/prompts/signup/partials",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "PUT",
        CURLOPT_POSTFIELDS => "{
          "signup": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }",
        CURLOPT_HTTPHEADER => [
          "authorization: Bearer {mgmtApiToken}",
          "content-type: application/json"
        ],
      ]);

      $response = curl_exec($curl);
      $err = curl_error($curl);

      curl_close($curl);

      if ($err) {
        echo "cURL Error #:" . $err;
      } else {
        echo $response;
      }
      ```

      ```python Python theme={null}
      import http.client

      conn = http.client.HTTPSConnection("")

      payload = "{
          "signup": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }"

      headers = {
          'content-type': "application/json",
          'authorization': "Bearer {mgmtApiToken}"
          }

      conn.request("PUT", "/{yourDomain}/api/v2/prompts/signup/partials", payload, headers)

      res = conn.getresponse()
      data = res.read()

      print(data.decode("utf-8"))
      ```

      ```ruby Ruby theme={null}
      require 'uri'
      require 'net/http'
      require 'openssl'

      url = URI("https://{yourDomain}/api/v2/prompts/signup/partials")

      http = Net::HTTP.new(url.host, url.port)
      http.use_ssl = true
      http.verify_mode = OpenSSL::SSL::VERIFY_PEER

      request = Net::HTTP::Put.new(url)
      request["content-type"] = 'application/json'
      request["authorization"] = 'Bearer {mgmtApiToken}'
      request.body = "{
          "signup": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }"

      response = http.request(request)
      puts response.read_body
      ```
    </AuthCodeGroup>
  </Accordion>

  <Accordion title="Écran de connexion : Identifiant d’abord">
    Pour ajouter la sélection de la langue à l'invite `login-id`, utilisez le point de terminaison [Set partials for a prompt](https://auth0.com/docs/api/management/v2/prompts/put-partials) :

    <AuthCodeGroup>
      ```bash cURL theme={null}
      curl --request PUT \
        --url 'https://{yourDomain}/api/v2/prompts/login-id/partials' \
        --header 'authorization: Bearer {mgmtApiToken}' \
        --header 'content-type: application/json' \
        --data '{
          "login-id": {
              "form-content-start": "<div class="ulp-field"><label for="language">Preferred Language</label><select name="language"id="language"  onchange=updateSelectedLanguage()><option></option><option value="en" {% if locale == "en" %}selected{% endif %}>English</option><option value="fr" {% if locale == "fr" %}selected{% endif %}>French</option><option value="es" {% if locale == "es" %}selected{% endif %}>Spanish</option></select></div><input type="hidden" name="persist" value="session"/><input name="action" id="changeLanguage" type="submit" value="change-language" style="display:none" formnovalidate/>"
          }
      }'
      ```

      ```csharp C# theme={null}
      var client = new RestClient("https://{yourDomain}/api/v2/prompts/login-id/partials");
      var request = new RestRequest(Method.PUT);
      request.AddHeader("content-type", "application/json");
      request.AddHeader("authorization", "Bearer {mgmtApiToken}");
      request.AddParameter("application/json", "{
          "login-id": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }", ParameterType.RequestBody);
      IRestResponse response = client.Execute(request);
      ```

      ```go Go theme={null}
      package main

      import (
      	"fmt"
      	"strings"
      	"net/http"
      	"io/ioutil"
      )

      func main() {

      	url := "https://{yourDomain}/api/v2/prompts/login-id/partials"

      	payload := strings.NewReader("{
          "login-id": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }")

      	req, _ := http.NewRequest("PUT", url, payload)

      	req.Header.Add("content-type", "application/json")
      	req.Header.Add("authorization", "Bearer {mgmtApiToken}")

      	res, _ := http.DefaultClient.Do(req)

      	defer res.Body.Close()
      	body, _ := ioutil.ReadAll(res.Body)

      	fmt.Println(res)
      	fmt.Println(string(body))

      }
      ```

      ```java Java theme={null}
      HttpResponse<String> response = Unirest.put("https://{yourDomain}/api/v2/prompts/login-id/partials")
        .header("content-type", "application/json")
        .header("authorization", "Bearer {mgmtApiToken}")
        .body("{
          "login-id": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }")
        .asString();
      ```

      ```javascript Node.JS theme={null}
      var axios = require("axios").default;

      var options = {
        method: 'PUT',
        url: 'https://{yourDomain}/api/v2/prompts/login-id/partials',
        headers: {'content-type': 'application/json', authorization: 'Bearer {mgmtApiToken}'},
        data: {
          'login-id': {
            'form-content-start': '<div class="ulp-field"><label for="language">Preferred Language</label><select name="language"id="language"  onchange=updateSelectedLanguage()><option></option><option value="en" {% if locale == "en" %}selected{% endif %}>English</option><option value="fr" {% if locale == "fr" %}selected{% endif %}>French</option><option value="es" {% if locale == "es" %}selected{% endif %}>Spanish</option></select></div><input type="hidden" name="persist" value="session"/><input name="action" id="changeLanguage" type="submit" value="change-language" style="display:none" formnovalidate/>'
          }
        }
      };

      axios.request(options).then(function (response) {
        console.log(response.data);
      }).catch(function (error) {
        console.error(error);
      });
      ```

      ```php PHP theme={null}
      $curl = curl_init();

      curl_setopt_array($curl, [
        CURLOPT_URL => "https://{yourDomain}/api/v2/prompts/login-id/partials",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "PUT",
        CURLOPT_POSTFIELDS => "{
          "login-id": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }",
        CURLOPT_HTTPHEADER => [
          "authorization: Bearer {mgmtApiToken}",
          "content-type: application/json"
        ],
      ]);

      $response = curl_exec($curl);
      $err = curl_error($curl);

      curl_close($curl);

      if ($err) {
        echo "cURL Error #:" . $err;
      } else {
        echo $response;
      }
      ```

      ```python Python theme={null}
      import http.client

      conn = http.client.HTTPSConnection("")

      payload = "{
          "login-id": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }"

      headers = {
          'content-type': "application/json",
          'authorization': "Bearer {mgmtApiToken}"
          }

      conn.request("PUT", "/{yourDomain}/api/v2/prompts/login-id/partials", payload, headers)

      res = conn.getresponse()
      data = res.read()

      print(data.decode("utf-8"))
      ```

      ```ruby Ruby theme={null}
      require 'uri'
      require 'net/http'
      require 'openssl'

      url = URI("https://{yourDomain}/api/v2/prompts/login-id/partials")

      http = Net::HTTP.new(url.host, url.port)
      http.use_ssl = true
      http.verify_mode = OpenSSL::SSL::VERIFY_PEER

      request = Net::HTTP::Put.new(url)
      request["content-type"] = 'application/json'
      request["authorization"] = 'Bearer {mgmtApiToken}'
      request.body = "{
          "login-id": {
              "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
          }
      }"

      response = http.request(request)
      puts response.read_body
      ```
    </AuthCodeGroup>
  </Accordion>

  <Accordion title="Écran de connexion : Sans mot de passe (Courriel)">
    Pour ajouter la sélection de la langue à l'invite `login-passwordless-email-code`, utilisez le point de terminaison [Set partials for a prompt](https://auth0.com/docs/api/management/v2/prompts/put-partials) :

    <AuthCodeGroup>
      ```bash cURL theme={null}
      curl --request PUT \
        --url 'https://{yourDomain}/api/v2/prompts/login-passwordless/partials' \
        --header 'authorization: Bearer {mgmtApiToken}' \
        --header 'content-type: application/json' \
        --data '{
          "login-passwordless-email-code": {
            "form-content-start": "<div class="ulp-field"><label for="language">Preferred Language</label><select name="language"id="language"  onchange=updateSelectedLanguage()><option></option><option value="en" {% if locale == "en" %}selected{% endif %}>English</option><option value="fr" {% if locale == "fr" %}selected{% endif %}>French</option><option value="es" {% if locale == "es" %}selected{% endif %}>Spanish</option></select></div><input type="hidden" name="persist" value="session"/><input name="action" id="changeLanguage" type="submit" value="change-language" style="display:none" formnovalidate/>"
        }
      }'
      ```

      ```csharp C# theme={null}
      var client = new RestClient("https://{yourDomain}/api/v2/prompts/login-passwordless/partials");
      var request = new RestRequest(Method.PUT);
      request.AddHeader("content-type", "application/json");
      request.AddHeader("authorization", "Bearer {mgmtApiToken}");
      request.AddParameter("application/json", "{
          "login-passwordless-email-code": {
            "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
        }
      }", ParameterType.RequestBody);
      IRestResponse response = client.Execute(request);
      ```

      ```go Go theme={null}
      package main

      import (
      	"fmt"
      	"strings"
      	"net/http"
      	"io/ioutil"
      )

      func main() {

      	url := "https://{yourDomain}/api/v2/prompts/login-passwordless/partials"

      	payload := strings.NewReader("{
          "login-passwordless-email-code": {
            "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
        }
      }")

      	req, _ := http.NewRequest("PUT", url, payload)

      	req.Header.Add("content-type", "application/json")
      	req.Header.Add("authorization", "Bearer {mgmtApiToken}")

      	res, _ := http.DefaultClient.Do(req)

      	defer res.Body.Close()
      	body, _ := ioutil.ReadAll(res.Body)

      	fmt.Println(res)
      	fmt.Println(string(body))

      }
      ```

      ```java Java theme={null}
      HttpResponse<String> response = Unirest.put("https://{yourDomain}/api/v2/prompts/login-passwordless/partials")
        .header("content-type", "application/json")
        .header("authorization", "Bearer {mgmtApiToken}")
        .body("{
          "login-passwordless-email-code": {
            "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
        }
      }")
        .asString();
      ```

      ```javascript Node.JS theme={null}
      var axios = require("axios").default;

      var options = {
        method: 'PUT',
        url: 'https://{yourDomain}/api/v2/prompts/login-passwordless/partials',
        headers: {'content-type': 'application/json', authorization: 'Bearer {mgmtApiToken}'},
        data: {
          'login-passwordless-email-code': {
            'form-content-start': '<div class="ulp-field"><label for="language">Preferred Language</label><select name="language"id="language"  onchange=updateSelectedLanguage()><option></option><option value="en" {% if locale == "en" %}selected{% endif %}>English</option><option value="fr" {% if locale == "fr" %}selected{% endif %}>French</option><option value="es" {% if locale == "es" %}selected{% endif %}>Spanish</option></select></div><input type="hidden" name="persist" value="session"/><input name="action" id="changeLanguage" type="submit" value="change-language" style="display:none" formnovalidate/>'
          }
        }
      };

      axios.request(options).then(function (response) {
        console.log(response.data);
      }).catch(function (error) {
        console.error(error);
      });
      ```

      ```php PHP theme={null}
      $curl = curl_init();

      curl_setopt_array($curl, [
        CURLOPT_URL => "https://{yourDomain}/api/v2/prompts/login-passwordless/partials",
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_ENCODING => "",
        CURLOPT_MAXREDIRS => 10,
        CURLOPT_TIMEOUT => 30,
        CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
        CURLOPT_CUSTOMREQUEST => "PUT",
        CURLOPT_POSTFIELDS => "{
          "login-passwordless-email-code": {
            "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
        }
      }",
        CURLOPT_HTTPHEADER => [
          "authorization: Bearer {mgmtApiToken}",
          "content-type: application/json"
        ],
      ]);

      $response = curl_exec($curl);
      $err = curl_error($curl);

      curl_close($curl);

      if ($err) {
        echo "cURL Error #:" . $err;
      } else {
        echo $response;
      }
      ```

      ```python Python theme={null}
      import http.client

      conn = http.client.HTTPSConnection("")

      payload = "{
          "login-passwordless-email-code": {
            "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
        }
      }"

      headers = {
          'content-type': "application/json",
          'authorization': "Bearer {mgmtApiToken}"
          }

      conn.request("PUT", "/{yourDomain}/api/v2/prompts/login-passwordless/partials", payload, headers)

      res = conn.getresponse()
      data = res.read()

      print(data.decode("utf-8"))
      ```

      ```ruby Ruby theme={null}
      require 'uri'
      require 'net/http'
      require 'openssl'

      url = URI("https://{yourDomain}/api/v2/prompts/login-passwordless/partials")

      http = Net::HTTP.new(url.host, url.port)
      http.use_ssl = true
      http.verify_mode = OpenSSL::SSL::VERIFY_PEER

      request = Net::HTTP::Put.new(url)
      request["content-type"] = 'application/json'
      request["authorization"] = 'Bearer {mgmtApiToken}'
      request.body = "{
          "login-passwordless-email-code": {
            "form-content-start": "<div class=\\"ulp-field\\"><label for=\\"language\\">Preferred Language</label><select name=\\"language\\"id=\\"language\\"  onchange=updateSelectedLanguage()><option></option><option value=\\"en\\" {% if locale == \\"en\\" %}selected{% endif %}>English</option><option value=\\"fr\\" {% if locale == \\"fr\\" %}selected{% endif %}>French</option><option value=\\"es\\" {% if locale == \\"es\\" %}selected{% endif %}>Spanish</option></select></div><input type=\\"hidden\\" name=\\"persist\\" value=\\"session\\"/><input name=\\"action\\" id=\\"changeLanguage\\" type=\\"submit\\" value=\\"change-language\\" style=\\"display:none\\" formnovalidate/>"
        }
      }"

      response = http.request(request)
      puts response.read_body
      ```
    </AuthCodeGroup>
  </Accordion>
</AccordionGroup>
