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

# Intelligent Delivery : spécificateurs de langue

> Intelligent Delivery : spécificateurs de langue

Les spécificateurs de langue déclarent la langue à laquelle s'applique le contenu d'un bloc. Si vous marquez les blocs de votre package d'installation avec un ou plusieurs spécificateurs de langue, alors au moment de l'installation, la console effectue les opérations suivantes.

1. Elle détermine quels blocs correspondent le mieux entre la langue requise par l'utilisateur et les langues du package

2. Elle télécharge uniquement les blocs marqués pour cette langue et les blocs qui n'ont pas de spécificateur de langue

Si aucune correspondance exacte n'est trouvée, les spécificateurs de langue peuvent servir à déclarer une langue de repli.

<a id="ID4EV" />

## Installation tenant compte de la langue

Les spécificateurs de langue d'Intelligent Delivery balisent le contenu de sorte que seul un sous-ensemble de toutes les ressources localisées d'un package soit installé sur une console. Cela économise de la bande passante pour les clients qui effectuent une installation numérique, et cela économise de l'espace sur le disque dur pour tous les clients.

Pour indiquer qu'un contenu est propre à une ou plusieurs langues, ajoutez un attribut `Languages` à un bloc dans votre fichier layout.xml. L'exemple suivant montre un bloc qui sera installé uniquement sur une console ayant déterminé que le français est la meilleure correspondance pour la langue dans laquelle elle s'exécute. Ce bloc sera installé sur les consoles réglées en français avec des paramètres régionaux canadiens (fr-CA) ou français (fr-FR). Un bloc sans spécificateur de langue sera installé sur toutes les consoles, sauf s'il est exclu au moyen d'autres spécificateurs, comme le type d'appareil.

```xml theme={null}
<Chunk Id="1001" Languages="fr">
    <FileGroup DestinationPath="\Data\Maps\X1\fr" SourcePath="Y:\Maps\Level1\X1\fr" Include="*.map"/>
<Chunk>  
```

<a id="ID4EQB" />

## Déterminer la langue choisie par l'utilisateur

Utilisez la fonction [XPackageGetUserLocale](/fr-CA/reference/system/xpackage/functions/xpackagegetuserlocale) pour interroger le nom des paramètres régionaux
que le système d'exploitation a déterminés comme correspondant le mieux à l'installation du titre sur le
système de l'utilisateur.

Les paramètres régionaux retournés sont déterminés par un algorithme qui effectue approximativement les actions suivantes pour
déterminer la meilleure correspondance possible en fonction de toutes les données disponibles sur l'utilisateur.

1. Une liste des langues qui correspondent le mieux au paramètre de langue actuel de l'utilisateur est générée.
2. Une liste de toutes les langues déclarées dans le fichier MicrosoftGame.config/manifeste est générée.
3. Une liste de toutes les langues actuellement installées et disponibles dans le package est générée.
4. La première langue déclarée dans le manifeste constitue le repli ultime pour la sélection de la langue.
5. Le résultat sera toujours une langue déclarée dans le fichier MicrosoftGame.config/manifeste, ou une langue de l'utilisateur si aucune langue n'est déclarée.

<Note>
  L'algorithme utilisé peut changer au fil du temps et n'est pas nécessairement identique à
  la description précédente.
</Note>

La langue retournée par [XPackageGetUserLocale](/fr-CA/reference/system/xpackage/functions/xpackagegetuserlocale) ne correspondra pas nécessairement
à la langue retournée par **GetUserDefaultLocaleName** ou par d'autres fonctions d'API Win32 liées à la prise en charge des langues nationales (NLS) et à la localisation; elle doit être appelée de préférence à celles-ci.

Pour plus d'information sur la localisation et les paramètres de langue dans MicrosoftGame.config, consultez
l'API National Language Support et l'exemple GDK Localization.

<Note>
  Vous devez vous assurer que toutes les langues référencées dans votre fichier layout.xml sont également présentes dans votre fichier MicrosoftGame.config. L'outil MakePkg produira une erreur si ce n'est pas le cas.
</Note>

<a id="BehaviorOnLaunch" />

## Comportement lors du lancement de votre titre après que l'utilisateur a changé de langue

Si l'utilisateur lance votre titre et que les meilleurs paramètres régionaux pour l'utilisateur sont disponibles dans votre package,
mais n'ont pas encore été installés (par exemple, l'utilisateur a changé de langue alors que votre titre ne s'exécutait pas),
la prochaine fois que votre titre sera lancé, l'utilisateur se verra offrir la possibilité d'installer la langue la mieux adaptée.

<Note>
  Si l'utilisateur choisit d'installer une langue, il peut tout de même exécuter le jeu
  *dans la langue installée qu'il avait choisie précédemment* jusqu'à ce que la nouvelle langue soit téléchargée. Nous supposons
  que s'il a commencé dans une autre langue, il comprend probablement cette langue et pourrait vouloir
  jouer au jeu pendant qu'il attend le téléchargement de sa langue *préférée*.

  Veuillez noter que ce comportement a semé la confusion chez de nombreux développeurs. Lors des tests, vous devez vérifier que
  l'installation de la nouvelle langue est terminée en surveillant la file d'attente d'installation des jeux avant de lancer
  le titre. Si l'utilisateur choisit d'installer une langue, [XPackageGetUserLocale](/fr-CA/reference/system/xpackage/functions/xpackagegetuserlocale)
  ne signalera pas cette langue tant qu'elle n'aura pas été téléchargée.
</Note>

<a id="ID4E5B" />

## Offrir des langues supplémentaires dans votre titre

Certains titres permettent aux utilisateurs de choisir une langue (lors de la première partie ou au moyen d'un menu) sans égard au paramètre de langue de la console. Lors de l'installation, Intelligent Delivery n'installe qu'une seule langue pour un package donné, selon le paramètre de langue de la console et les langues spécifiées dans le fichier layout.xml. Votre titre doit s'afficher dans cette langue par défaut.

De plus, le shell XBOX permet d'installer des langues secondaires. Vous pouvez offrir cette option dans votre titre au moyen de votre propre interface utilisateur. Votre titre peut déterminer les langues disponibles pour l'installation en appelant la méthode [XPackageEnumeratePackages](/fr-CA/reference/system/xpackage/functions/xpackageenumeratepackages). Selon la langue sélectionnée et la source d'installation, l'installation peut provenir d'un disque ou de XBOX Live. Lorsqu'un utilisateur sélectionne une langue autre que celle par défaut, votre titre doit appeler la méthode [XPackageFindChunkAvailability](/fr-CA/reference/system/xpackage/functions/xpackagefindchunkavailability) pour déterminer l'état d'installation des blocs balisés avec cette langue. Cette API retourne un objet [XPackageChunkAvailability](/fr-CA/reference/system/xpackage/enums/xpackagechunkavailability) ayant l'une des valeurs indiquées dans le tableau suivant.

| État | Description |
| - | - |
| Ready | Le bloc est déjà installé et peut être lu. |
| Pending | Le bloc n'est pas encore installé, mais il le sera. |
| Installable | Le bloc ne sera pas installé, mais il peut être téléchargé. Pour installer les ressources, appelez la méthode [XPackageInstallChunks](/fr-CA/reference/system/xpackage/functions/xpackageinstallchunks) avec les spécificateurs appropriés. |
| Unavailable | Le bloc ne peut pas être téléchargé |

Si [XPackageChunkAvailability](/fr-CA/reference/system/xpackage/enums/xpackagechunkavailability) retourne *Unavailable*, la langue spécifiée n'est pas disponible en ligne ni dans la version du titre sur le disque.

Si un utilisateur choisit d'installer une langue disponible mais qui n'est pas installée actuellement, votre titre doit appeler la méthode [XPackageInstallChunks](/fr-CA/reference/system/xpackage/functions/xpackageinstallchunks) avec un objet [XPackageChunkSelector](/fr-CA/reference/system/xpackage/structs/xpackagechunkselector) qui spécifie la langue à installer. Cet appel affiche une interface utilisateur rendue par le système qui invite l'utilisateur à accepter le téléchargement et l'installation supplémentaires. Votre titre peut utiliser le handle de surveillance d'installation retourné, ainsi que la méthode [XPackageGetInstallationProgress](/fr-CA/reference/system/xpackage/functions/xpackagegetinstallationprogress) ou la méthode [XPackageRegisterInstallationProgressChanged](/fr-CA/reference/system/xpackage/functions/xpackageregisterinstallationprogresschanged), pour surveiller le téléchargement et l'installation des nouvelles données ou pour déterminer si l'utilisateur a refusé l'installation supplémentaire.

Votre titre peut désinstaller une langue en appelant la méthode [XPackageUninstallChunks](/fr-CA/reference/system/xpackage/functions/xpackageuninstallchunks). Cet appel est ignoré silencieusement si une seule langue est installée.

<a id="ID4EYE" />

## Changements par rapport au kit de développement logiciel XBOX One

Si vous avez déjà utilisé Intelligent Delivery avec le kit de développement logiciel XBOX One, notez que la façon dont les langues sont déclarées et mappées est différente. Si vous avez ajouté un attribut `Languages` à un bloc, cette langue doit également être déclarée dans MicrosoftGame.config. La détermination des blocs à installer pour une langue repose désormais sur une valeur unique correspondant à la langue la mieux adaptée. Par exemple, si votre fichier de disposition contient un bloc marqué « en » et un autre marqué « en-US », le bloc « en » ne sera pas installé si la langue de l'utilisateur est réglée sur « en-US ».  Si vous souhaitez conserver ce comportement hérité, déclarez le bloc avec toutes les langues pour lesquelles il doit être installé : en;en-US.

## Documentation de référence des API

* [XPackage (contenu de l'API)](/fr-CA/reference/system/xpackage/xpackage_members)
  * Fonctions
    * [XPackageGetUserLocale](/fr-CA/reference/system/xpackage/functions/xpackagegetuserlocale)
    * [XPackageEnumeratePackages](/fr-CA/reference/system/xpackage/functions/xpackageenumeratepackages)
    * [XPackageFindChunkAvailability](/fr-CA/reference/system/xpackage/functions/xpackagefindchunkavailability)
    * [XPackageInstallChunks](/fr-CA/reference/system/xpackage/functions/xpackageinstallchunks)
    * [XPackageGetInstallationProgress](/fr-CA/reference/system/xpackage/functions/xpackagegetinstallationprogress)
    * [XPackageRegisterInstallationProgressChanged](/fr-CA/reference/system/xpackage/functions/xpackageregisterinstallationprogresschanged)
    * [XPackageUninstallChunks](/fr-CA/reference/system/xpackage/functions/xpackageuninstallchunks)
  * Structures
    * [XPackageChunkSelector](/fr-CA/reference/system/xpackage/structs/xpackagechunkselector)

## Voir aussi

[Intelligent Delivery](/fr-CA/build/core-features/common/packaging/overviews/intelligentdelivery)


## Related topics

- [Intelligent Delivery](/es/build/core-features/common/packaging/overviews/intelligentdelivery.md)
- [Intelligent Delivery: especificadores de dispositivo](/es/build/core-features/common/packaging/intelligentdelivery-device.md)
- [Intelligent Delivery: especificadores de etiqueta personalizada](/es/build/core-features/common/packaging/intelligentdelivery-custom.md)
- [Instalación por streaming e Intelligent Delivery: información general](/es/build/core-features/common/packaging/overviews/streaming_install-intelligent_delivery.md)
- [Exigences XBOX testées lors de la certification pour les jeux sur console XBOX](/fr/publishing/certification/console-cert-tested-requirements.md)
