- 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 é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 attributLanguages à 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.
Déterminer la langue choisie par 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 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.- Une liste des langues qui correspondent 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 le repli 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 changer 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 produira une erreur si ce n’est pas le cas.
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.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
ne signalera pas cette langue tant qu’elle n’aura pas été téléchargée.
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. 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 retourne un objet XPackageChunkAvailability ayant l’une des valeurs indiquées dans le tableau suivant.
Si 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 avec un objet 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 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. 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.
