- Elle détermine quels blocs correspondent le mieux entre la langue requise par l’utilisateur et les langues du package
- Elle télécharge uniquement les blocs marqués pour cette langue et les blocs qui n’ont pas de spécificateur de langue
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 permet d’économiser de la bande passante pour les clients qui installent en version numérique, et de l’espace disque pour tous les clients. Pour indiquer qu’un contenu est propre à une ou plusieurs langues, ajoutez un attributLanguages à un bloc dans votre fichier layout.xml. L’exemple suivant montre un bloc qui ne sera installé que 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 à l’aide d’autres spécificateurs, comme le type d’appareil.
Détermination du choix de langue de l’utilisateur
Utilisez la fonction 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 renvoyé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.- Une liste des langues correspondant le mieux au paramètre de langue actuel de l’utilisateur est générée.
- Une liste de toutes les langues déclarées dans le fichier MicrosoftGame.config/manifeste est générée.
- Une liste de toutes les langues actuellement installées et disponibles dans le package est générée.
- La première langue déclarée dans le manifeste constitue la langue de secours ultime pour la sélection de la langue.
- 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.
L’algorithme utilisé peut évoluer au fil du temps et n’est pas nécessairement identique à
la description précédente.
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 génère une erreur si ce n’est pas le cas.
Comportement au 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 n’était pas en cours d’exécution), la prochaine fois que votre titre sera lancé, il lui sera proposé d’installer la langue offrant la meilleure correspondance.Si l’utilisateur choisit d’installer une langue, il peut toujours exécuter le jeu
dans la langue installée qu’il avait précédemment choisie 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 peut souhaiter
jouer au jeu pendant qu’il attend le téléchargement de sa langue préférée.Notez que ce comportement a dérouté 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
ne signalera pas cette langue tant qu’elle n’aura pas été téléchargée.
Proposition de langues supplémentaires dans votre titre
Certains titres permettent aux utilisateurs de choisir une langue (lors de la première session de jeu ou via un menu) indépendamment du paramètre de langue de la console. Lors de l’installation, Intelligent Delivery n’installe qu’une seule langue pour un package donné, en fonction du paramètre de langue de la console et des langues spécifiées dans le fichier layout.xml. Votre titre doit s’afficher dans cette langue par défaut. En outre, le shell XBOX permet d’installer des langues secondaires. Vous pouvez exposer cette option au sein de votre titre à l’aide de votre propre interface utilisateur. Votre titre peut déterminer les langues disponibles pour l’installation en appelant la méthode 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 pour déterminer l’état d’installation des blocs balisés avec cette langue. Cette API renvoie un objet XPackageChunkAvailability avec l’une des valeurs indiquées dans le tableau suivant.
Si XPackageChunkAvailability renvoie Unavailable, la langue spécifiée n’est pas disponible en ligne ni dans la version du titre présente sur le disque.
Si un utilisateur choisit d’installer une langue disponible mais non installée actuellement, votre titre doit appeler la méthode XPackageInstallChunks avec un objet XPackageChunkSelector qui spécifie la langue à installer. Cet appel affiche une interface utilisateur générée 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 renvoyé, avec la méthode XPackageGetInstallationProgress ou la méthode 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. Cet appel est ignoré silencieusement si une seule langue est installée.
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 attributLanguages à un bloc, cette langue doit également être déclarée dans MicrosoftGame.config. L’identification 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é avec ‘en’ et un autre marqué avec ‘en-US’, le bloc ‘en’ ne sera pas installé si la langue de l’utilisateur est définie sur ‘en-US’. Si vous souhaitez conserver cet ancien comportement, déclarez le bloc avec toutes les langues pour lesquelles il doit être installé : en;en-US.
