Localiser des applications ClickOnce

La localisation consiste à adapter votre application à une culture spécifique. Ce processus implique la traduction du texte de l'IU (interface utilisateur) dans une langue propre à la région, en utilisant la mise en forme appropriée de date et de devise, en ajustant la taille des contrôles sur un formulaire et en mettant en miroir les contrôles de droite à gauche, si nécessaire.

La localisation de votre application implique la création d'un ou plusieurs assemblys satellites. Chaque assembly contient des chaînes IU, des images et d'autres ressources spécifiques d'une culture donnée. (Le fichier exécutable principal de votre application contient les chaînes de la culture par défaut pour votre application.)

Cette rubrique décrit trois façons de déployer une application ClickOnce pour d'autres cultures :

  • Inclure tous les assemblys satellites dans un déploiement unique.

  • Générer un seul déploiement pour chaque culture, avec un seul assembly satellite chacune.

  • Télécharger les assemblys satellites à la demande.

Ajout de tous les assemblys satellites dans un déploiement

Au lieu de publier plusieurs déploiements ClickOnce, vous pouvez publier un seul déploiement ClickOnce contenant tous les assemblys satellites.

Il s’agit de la méthode par défaut dans Visual Studio. Pour utiliser cette méthode dans Visual Studio, vous n’avez rien d’autre à faire.

Pour utiliser cette méthode avec MageUI.exe, vous devez définir la culture de votre application avec la valeur neutre dans MageUI.exe. Ensuite, vous devez inclure manuellement tous les assemblys satellites dans votre déploiement. Dans MageUI.exe, vous pouvez ajouter les assemblys satellites à l’aide du bouton Populate sous l’onglet Files du manifeste de votre application.

L'avantage de cette approche est de créer un déploiement unique et de simplifier votre histoire de déploiement localisé. Au moment de l'exécution, l'assembly satellite approprié est utilisé, en fonction de la culture par défaut du système d'exploitation Windows de l'utilisateur. L'inconvénient de cette approche est le téléchargement de tous les assemblys satellites chaque fois que l'application est installée ou mise à jour sur un ordinateur client. Si votre application comporte un grand nombre de chaînes ou que vos clients disposent d'une connexion réseau lente, ce processus peut affecter les performances pendant la mise à jour de l'application.

Notes

Cette approche suppose que votre application ajuste automatiquement la hauteur, la largeur et la position des contrôles pour s'adapter aux différentes tailles des chaînes de texte des différentes cultures. Windows Forms contient plusieurs contrôles et technologies qui vous permettent de concevoir votre formulaire de sorte à ce qu'il soit facilement localisable, y compris les contrôles FlowLayoutPanel et TableLayoutPanel ainsi que la propriété AutoSize. Consultez aussi Guide pratique pour prendre en charge la localisation dans les Windows Forms en utilisant le redimensionnement automatique et le contrôle TableLayoutPanel.

Générer un seul déploiement pour chaque culture

Dans cette stratégie de déploiement, vous générez plusieurs déploiements. Dans chaque déploiement, vous incluez uniquement l'assembly satellite nécessaire pour une culture spécifique, et vous marquez le déploiement comme étant spécifique de cette culture.

Pour utiliser cette méthode dans Visual Studio, définissez la propriété Langue de publication sous l’onglet Publier sur la région souhaitée. Visual Studio inclut automatiquement l’assembly satellite nécessaire pour la région que vous sélectionnez et exclut tous les autres assemblys satellites du déploiement.

Notes

Dans ClickOnce pour .NET Core 3.1 et .NET 5 ou version ultérieure, vous définissez les propriétés de déploiement à l’aide de l’outil Publication au lieu de l’Assistant Publication et de la page Publication du Concepteur de projet. Pour plus d’informations, consultez Déployer une application Windows .NET avec ClickOnce et ClickOnce pour .NET.

Vous pouvez obtenir le même résultat avec l’outil MageUI.exe du kit de développement logiciel (SDK) Microsoft Windows. Utilisez le bouton Populate sous l’onglet Files du manifeste de votre application pour exclure tous les autres assemblys satellites du répertoire de l’application, puis définissez le champ Culture sous l’onglet Name de votre manifeste de déploiement dans MageUI.exe. Ces étapes n'incluent pas seulement l'assembly satellite correct, elles définissent également l'attribut language de l'élément assemblyIdentity dans votre manifeste de déploiement avec la valeur de la culture correspondante.

Après la publication de l'application, vous devez répéter cette étape pour chaque culture supplémentaire que votre application prend en charge. Vous devez veiller à publier chaque fois vers un autre répertoire de serveur web ou un autre répertoire de partage de fichiers, car chaque manifeste d’application référence un assembly satellite différent et chaque manifeste de déploiement a une valeur différente pour l’attribut language.

Télécharger les assemblys satellites à la demande

Si vous décidez d'inclure tous les assemblys satellites dans un déploiement unique, vous pouvez améliorer les performances à l'aide du téléchargement à la demande, qui vous permet de marquer des assemblys comme étant facultatifs. Les assemblys marqués ne sont pas téléchargés quand l'application est installée ou mise à jour. Vous pouvez installer les assemblys quand vous en avez besoin en appelant la méthode DownloadFileGroup sur la classe ApplicationDeployment.

Notes

La classe ApplicationDeployment et les API de l’espace de noms System.Deployment.Application ne sont pas prises en charge dans .NET Core, .NET 5 et les versions ultérieures. Dans .NET 7, une nouvelle méthode d’accès aux propriétés de déploiement d’application est prise en charge. Pour plus d’informations, consultez Accéder aux propriétés de déploiement ClickOnce dans .NET. .NET 7 ne prend pas en charge l’équivalent des méthodes ApplicationDeployment.

Le téléchargement d'assemblys satellites à la demande diffère légèrement du téléchargement d'autres types d'assemblys à la demande. Pour plus d’informations et d’exemples de code montrant comment rendre possible ce scénario à l’aide des outils du SDK Windows pour ClickOnce, consultez Procédure pas à pas : téléchargement d’assemblys satellites à la demande avec l’API de déploiement ClickOnce.

Vous pouvez également mettre en place ce scénario dans Visual Studio. Pour plus d’informations, consultez Procédure pas à pas : Téléchargement d’assemblys satellites à la demande avec l’API de déploiement ClickOnce en utilisant le concepteur.

Test des applications ClickOnce localisées avant le déploiement

Un assembly satellite est utilisé pour une application Windows Forms uniquement si la propriété CurrentUICulture pour le thread principal de l’application est définie avec la valeur de la culture de l’assembly satellite. Les clients des marchés locaux ont probablement déjà exécuté une version localisée de Windows avec une culture définie avec la valeur par défaut appropriée.

Vous avez trois options pour tester les déploiements localisés avant de mettre votre application à la disposition des clients :

  • Vous pouvez exécuter votre application ClickOnce sur les versions localisées de Windows appropriées.

  • Vous pouvez définir la propriété CurrentUICulture par programmation dans votre application. (Cette propriété doit être définie avant d'appeler la méthode Run.)