Blog ENI : Toute la veille numérique !
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
En raison d'une opération de maintenance, le site Editions ENI sera inaccessible le mardi 10 décembre, en début de journée. Nous vous invitons à anticiper vos achats. Nous nous excusons pour la gêne occasionnée
  1. Livres et vidéos
  2. C# 12
  3. Globalisation et localisation
Extrait - C# 12 Développez des applications Windows avec Visual Studio 2022
Extraits du livre
C# 12 Développez des applications Windows avec Visual Studio 2022
1 avis
Revenir à la page d'achat du livre

Globalisation et localisation

Introduction

Bien que très proches dans le but, la globalisation et la localisation d’une application sont deux choses distinctes. La globalisation est le procédé qui permet de mettre en forme les données en fonction de la culture comme la monnaie ou les dates, tandis que la localisation est le procédé qui va afficher des données différentes suivant la culture de l’application comme par exemple le texte des éléments de l’interface utilisateur.

La globalisation et la localisation reposent sur le concept de culture. La culture fait référence aux spécificités d’un pays ou d’une langue. Les classes permettant de gérer la culture se trouvent dans l’espace de noms System.Globalization.

La culture

Les différentes cultures disponibles sont identifiées par un code de culture, il est composé de deux caractères indiquant le langage et peut facultativement être suivi de deux autres caractères pour spécifier la région. Ces deux éléments sont séparés par un tiret :

  • fr est le code de la langue française sans spécification de région.

  • fr-FR est le code de la langue française en France.

  • fr-CH est le code de la langue française en Suisse.

  • en est le code de la langue anglaise sans spécification de région.

Il existe de nombreux codes de culture pour chaque langue et chaque spécificité de région. La liste complète de ces codes est disponible sur le MSDN sous la rubrique Classe CultureInfo. Les codes de culture sans spécification de langage sont appelés des cultures neutres tandis que les codes de culture avec indication de la région sont nommés cultures spécifiques.

Par défaut, lorsqu’une application est lancée, les paramètres culturels sont identiques à ceux du système. Il est possible de modifier cette valeur par programmation. 

 Créez un nouveau formulaire dans le projet SelfMailer et nommez-le ChooseCulture. Ajoutez un contrôle ComboBox et un contrôle Label de la manière suivante :

images/C12-27-001.png

 La culture...

La globalisation

Suivant le pays, la monnaie est mise en forme de différentes manières : certains pays utilisent la virgule comme séparateur décimal alors que d’autres utiliseront le point. Bien évidemment, les données à afficher sont identiques d’un pays à l’autre.

 Lorsque la culture est modifiée, toute donnée mise en forme par l’application se verra appliquer automatiquement le nouveau format. Ajoutez deux contrôles Label sur le formulaire ChooseCulture comme suit :

images/C12-27-003.png

Pour être correctement affichée en fonction de la culture, une valeur doit utiliser le formatage fourni par le Framework .NET. Si par exemple vous utilisez l’instruction suivante pour afficher la date :

this.lblDate.Text = DateTime.Now.ToString("dd/MM/yyyy"); 

le changement de culture n’aura aucun effet puisque le format est explicitement spécifié. Par contre, si vous utilisez l’affichage par défaut, le formatage utilisé sera celui de la culture courante.

 Modifiez le gestionnaire de l’événement SelectedIndexChanged pour modifier la valeur de ces contrôles :

this.lblDate.Text = string.Format("Date: {0}", 
                                   DateTime.Now.ToString()); ...

La localisation

La localisation concerne tous les éléments qui, d’une langue à l’autre ou même en fonction du pays, vont devoir être modifiés. L’exemple le plus commun est le texte des formulaires. Le Framework .NET met à disposition les fichiers de ressources qui vont stocker les valeurs dans l’assemblage de l’application ou un autre assemblage satellite qui sera référencé dans l’application. C’est à l’exécution que le choix des ressources sera effectué en fonction de la culture.

Les fichiers de ressources sont choisis pendant la phase d’exécution en fonction de la propriété CurrentUICulture du thread courant. Cette propriété de type CultureInfo peut être différente de la propriété CurrentCulture. Elles sont toutes les deux distinctes et n’influent pas l’une sur l’autre.

La modification de la culture de localisation par programmation se fait de la même manière que pour la culture de globalisation.

 Ajoutez la mise à jour de la propriété CurrentUICulture au thread courant dans le gestionnaire de l’événement du formulaire ChooseCulture :

Thread.CurrentThread.CurrentUICulture = culture; 

 Pour que cette propriété soit prise en compte, il faut localiser les formulaires....