ASP.NET colonne De prise en charge de la voix

Pour personnaliser cette colonne en fonction de vos besoins, nous vous invitons à soumettre vos idées sur les sujets qui vous intéressent et les problèmes que vous souhaitez voir traités dans les futurs articles de la Base de connaissances et les colonnes Support Voice. Vous pouvez soumettre vos idées et commentaires à l’aide du formulaire Demander. Il existe également un lien vers le formulaire en bas de cette colonne.

Introduction

Bienvenue! Il s’agit de Sukesh Khare avec l’équipe du support technique microsoft ASP.NET développeur. C’est la première fois que je crée une colonne Support Voice. J’ai hâte de créer d’autres colonnes de ce type dans les mois à venir.Pour la colonne de ce mois-ci, je vais aborder les problèmes de globalisation dans asp (Active Server Pages) et ASP.NET, les problèmes auxquels nous sommes confrontés dans ASP, comment les choses ont changé dans ASP.NET 1x et ce qui est en place avec ASP.NET 2.0 sur le front de la globalisation.Remarque Si vous rencontrez un terme que vous ne comprenez pas, consultez la section Glossaire en bas de cette colonne.

Problèmes de globalisation dans ASP

Avant ASP.NET, il n’existait aucune prise en charge structurée pour le développement d’applications pour les utilisateurs internationaux. Au début du développement d’ASP, les développeurs comme moi-même n’ont trouvé que la prise en charge dispersée de la globalisation dans les systèmes d’exploitation, les navigateurs, les fournisseurs d’accès client et les systèmes back-end. Toutefois, nous avons rarement observé une connectivité automatique entre ces applications. Heureusement, nous avons bien compris des concepts tels que les jeux de caractères, les pages de codes, les langues de navigateur et les polices que nous pouvions exploiter pour le développement d’applications pour les utilisateurs internationaux.Il serait trop difficile de séparer en catégories toutes les questions de mondialisation que nous ASP.NET avons vues. Au lieu de cela, je vais énumérer une série de concepts liés à une variété de ces problèmes.

Jeux de caractères et pages de code

Nous savons tous que les caractères sur notre écran d’ordinateur ne sont qu’une série d’octets. La série d’octets peut être créée et interprétée de plusieurs façons. Si l’interprétation utilise un encodage différent de celui avec lequel le tableau d’octets a été créé, l’interprétation s’affiche sous forme de mémoire. Les jeux de caractères (jeux de caractères) sont des formats d’encodage qui sont généralement utilisés par les navigateurs. La propriété Codepage, qui est plus applicable aux conversions côté serveur, est simplement une table de conversion qui spécifie la façon dont les caractères sont encodés.Les navigateurs encodent les données de publication de formulaire en fonction du jeu de caractères actuel. Si le jeu de caractères actuel est « windows-1256 », la transmission d’octets au serveur est également encodée en tant que « windows-1256 ». Lorsque l’ASP est interprété, les collections Form et Querystring ne sont pas générées tant qu’elles ne sont pas référencées dans le code. Lorsqu’elles sont générées, les données de chaîne sont transformées en Unicode en fonction de la page de codes actuelle. (Par défaut, ASP et ASP.NET traiter le contenu au format Unicode). Il est très important que vous définissiez la bonne page de codes avant de référencer les collections ; sinon, la représentation Unicode en mémoire ne sera pas correcte.Pour définir une page de codes, utilisez Session.Codepage ou Response.Codepage. La page Response.Codepage est disponible uniquement dans Microsoft Internet Information Services (IIS) 5.1 ou versions ultérieures. Pour plus d’informations sur les valeurs entières (qui correspondent au jeu de caractères) sur lesquelles nous définirions ces propriétés, visitez le site Web Microsoft suivant :

Reconnaissance du jeu de caractèreshttp://msdn2.microsoft.com/en-us/library/Aa752010.aspxPar exemple, pour définir la page de codes de la langue arabe, utilisez le code suivant :

Session.Codepage = 1256

Response.Codepage affecte uniquement la réponse actuelle. Toutefois, Session.Codepage affecte toutes les réponses apportées par l’utilisateur actuel. Lorsque la page de codes est définie à l’aide de l’une de ces propriétés et que les collections Form et Querystring sont générées, cette modification dans la page de codes active entraîne la transformation de l’Unicode en mémoire en page de codes actuelle par la méthode Response.Write. Pour plus d’informations sur cette rubrique, visitez le site web MSDN suivant :

Définition de la page de codes pour les conversions de chaînes (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspxLa ligne de fond en ce qui concerne les problèmes liés aux jeux de caractères et aux pages de code est que le jeu de caractères client et la page de code du serveur doivent correspondre.

Accepter les langues

Si un développeur ASP souhaite savoir quelles langues un utilisateur a définies dans son navigateur, il peut utiliser la variable Request.ServerVariables (« HTTP_ACCEPT_LANGUAGE ») pour rechercher la liste des langues dans lesquelles l’utilisateur souhaite lire la réponse (par exemple, l’anglais, l’allemand ou l’indien) et l’ordre de préférence dans lequel l’utilisateur souhaite voir ces langues. Dans ASP.NET, des informations similaires sont présentes dans la propriété Request.UserLanguages sous forme de tableau.Pour plus d’informations sur l’utilisation de ces informations dans le code ASP, cliquez sur le numéro d’article suivant pour afficher l’article dans la Base de connaissances Microsoft :

229690 Comment définir l’ID de paramètres régionaux ASP selon les paramètres de langue du navigateur  

Affichage de jeux de caractères sur plusieurs octets dans Internet Explorer

Le seul format d’encodage pouvant afficher un jeu de caractères multioctets est Unicode (UTF-8). Avec UTF-8, nous pouvons afficher le cyrillique, l’indien et le japonais sur la même page. Si nous n’utilisons pas UTF-8, nous ne pouvons afficher qu’une seule de ces langues à la fois. Pour définir le jeu de caractères du navigateur, utilisez la propriété Response.CharSet.

Caractères multioctets statiques sur une page

Pour afficher des caractères multioctets stockés directement dans la page, nous devons d’abord enregistrer la page avec un encodage spécifique. UTF-8 sera préférable, mais une page de code spécifique (correspondant à la page de codes des caractères) fonctionnera également.L’enregistrement d’un fichier ASP à l’aide de Microsoft Visual InterDev n’est pas utile ici, car Visual InterDev peut uniquement enregistrer en anglais ANSI ou Unicode. Toute page ASP enregistrée au format Unicode n’est pas prise en charge par ASP.Dans Microsoft Visual Studio .NET, vous pouvez enregistrer un fichier dans n’importe quel encodage. Il existe deux façons de procéder. La méthode par défaut consiste à enregistrer le fichier à l’aide de la page de codes actuelle pour l’utilisateur. Une autre façon d’enregistrer un fichier avec un encodage est la suivante : Dans le menu Fichier , cliquez sur Enregistrer le fichier sous. Dans la boîte de dialogue Enregistrer lefichier sous, cliquez sur la flèche déroulante du boutonEnregistrer. Lorsque vous cliquez sur la flèche, les options sontEnregistrer et Enregistrer avec encodage. Lorsque vous cliquez surEnregistrer avec encodage, la boîte de dialogue Options d’enregistrement avancées s’affiche dans laquelle vous pouvez sélectionner le type d’encodage que vous souhaitez appliquer dans une liste des pages de code installées sur l’ordinateur.Remarque Cela modifie l’encodage de l’opération d’enregistrement, mais pour une seule fois. La valeur par défaut de l’enregistrement suivant est rétablie.Pour modifier la page de codes par défaut, cliquez sur Options d’enregistrement avancées dans le menuFichier. Dans la boîte de dialogue Options d’enregistrement avancées , vous pouvez définir l’encodage par défaut pour les opérations d’enregistrement sur la page de code de votre choix.Ces méthodes sont liées à la façon dont le fichier est enregistré sur le disque. Toutefois, pour contrôler la sortie d’ASP, comme indiqué précédemment, nous devons définir les propriétés Session.CodePage et Response.CharSet. Avec IIS 5.1 et les versions ultérieures, nous pouvons également utiliser la propriété Response.CodePage.

CODEPAGE par défaut sur le serveur

Les paramètres régionaux par défaut et la page de codes par défaut de la page dépendent des paramètres du Registre pour . Utilisateur PAR DÉFAUT. Vous trouverez la clé internationale dans la ruche de registre HKEY_USERS\.DEFAULT\Control Panel\International. Nous pouvons également modifier le comportement des paramètres régionaux choisis par IIS.Si l’utilisateur connecté a les mêmes paramètres régionaux définis que la clé ci-dessus ou que la valeur système par défaut, le paramètre utilisateur est prioritaire.Exemple : les paramètres régionaux par défaut ont le format de date défini sur 11.1.2004, tandis que l’utilisateur connecté (avec les mêmes paramètres régionaux) a le format de date 11/1/2004. Le paramètre 11/1/2004 prend effet pour ASP.(Par ASP.NET, cela peut varier. Dans certaines installations, l’utilisateur ASPNET a son propre profil qui s’affiche sous HKEY_USERS lors du chargement. Dans d’autres, il utilise . Profil DEFAULT. Nous pouvons également utiliser l’attribut codepage dans la déclaration <%@ %>. Il doit être utilisé lorsque le fichier est enregistré avec un encodage différent de celui par défaut, tel que la page de code 932 (japonais)).

Problèmes de page de code par rapport aux problèmes de conversion de police : lequel est-ce ?

Parfois, vous pouvez voir un point d’interrogation (?) ou une zone où un caractère est censé apparaître.

Problèmes de conversion de page de code

Lorsqu’un caractère est remplacé par un point d’interrogation (?), cela indique qu’un problème de conversion de page de code s’est produit. Le point d’interrogation (?) est un caractère par défaut pour la conversion de la page de code et signifie essentiellement que le système d’exploitation ne sait pas comment gérer la valeur de caractère et la convertir. Il remplace la valeur de caractère par un point d’interrogation (?). Cela peut signifier que le caractère a une valeur non valide pour la page de code ou que la page de codes nécessaire à la conversion n’est pas installée.

Problèmes de conversion de police

Lorsqu’un caractère est remplacé par une zone, cela indique qu’un problème de conversion de police s’est produit. Cela se produit côté client lorsque le client n’a pas la police appropriée installée pour afficher correctement ce caractère. Par exemple, lorsqu’un caractère provient du jeu de caractères japonais et que les polices japonaises ne sont pas installées sur le client, le caractère japonais s’affiche sous forme de zone.Ensuite, je vais parler de la façon dont les choses ont changé dans ASP.NET 1.x, et comment ces changements affectent les problèmes de mondialisation dans le contexte de ASP.NET.

Problèmes de globalisation dans ASP.NET 1.x :

Avec ASP.NET, trois grandes choses ont été introduites :

  • Balise de> de globalisation <dans web.config fichier La balise <globalisation> nous éloigne des concepts incohérents des pages de code et des jeux de caractères et nous permet de contrôler la plupart des variantes dans ASP.NET.

  • L’espace de noms System.Globalization L’espace de noms Globalization nous fournit la puissance programmatique de gestion de la globalisation.

  • Le concept de fichiers de ressources a été considérablement amélioré.Nous ne traitons pas les fichiers de ressources comme nous le faisions dans ASP. Désormais, les fichiers de ressources se présentent sous la forme de fichiers XML lorsque nous les concevons et les développons, et ils existent sous forme d’assemblages au moment de l’exécution.

Balise de configuration Globalization : Les deux paramètres importants de la balise sont les suivants :

<globalization 
            requestEncoding="utf-8" 
            responseEncoding="utf-8"  />

D’autres zones de paramètres possibles sont les suivantes :

fileEncoding

Spécifie l’encodage par défaut pour l’analyse des fichiers .aspx, .asmx et .asax. Les fichiers Unicode et UTF-8 enregistrés avec le préfixe de marque d’ordre d’octet (avec signature) sont automatiquement reconnus, quelle que soit la valeur de fileEncoding.

Culture

Spécifie la culture par défaut pour le traitement des requêtes Web entrantes (applicable aux méthodes de classes de l’espace de noms System.Globalization).

Uiculture

Spécifie la culture par défaut pour le traitement des recherches de ressources dépendantes des paramètres régionaux (assemblys satellites).

Pour plus d’informations sur les chaînes de culture (valeurs de culture et uiculture), visitez le site web Microsoft suivant :

System.Globalization.CultureInfoClasshttp://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxCes paramètres sont appliqués par ASP.NET une fois la réponse terminée et avant la remise de la demande à votre application. Pour responseEncoding, la mémoire tampon créée pour stocker la sortie est définie sur cet encodage. Tout ce qui entre dans cette mémoire tampon est encodé en fonction du paramètre à mesure qu’il est inséré dans la mémoire tampon.Pour requestEncoding, le runtime lit la requête et l’interprète en fonction du paramètre de cette section. Toutefois, il s’agit d’un paramètre qui peut entraîner des problèmes. Le tableau ci-dessous montre la disposition de bits d’une séquence d’octets UTF-8 valide.Si la valeur de caractère se trouve dans la norme ASCII 7 bits, la valeur d’octet n’est pas modifiée. Si la valeur est supérieure à 127, elle doit suivre les règles ci-dessous. L’ensemble de bits de début indique le nombre de caractères dans la séquence. Chaque octet après le premier doit commencer par le premier bit défini sur 1.Disposition d’octetS UTF-8 :

Octets

Bits

Représentation

1

7

0vvvvvvvvv

2

11

110vvvvv 10vvvvvvvv

3

16

1110vvvv 10vvvvvv 10vvvvvvvv

4

21

11110vvv 10vvvvvv 10vvvvvv 10vvvvvv

C’est là que le problème vient. Si le navigateur encode la requête selon un encodage d’octet unique (par exemple, iso-8859-1), les valeurs supérieures à 127 ne sont pas valides selon la disposition ci-dessus. Lorsqu’ils sont lus dans la mémoire tampon UTF-8, les caractères non valides sont simplement supprimés de la sortie.

Modifications de l’encodage du runtime

Dans l’événement Application_BeginRequest, nous pouvons modifier la valeur de requestEncoding et l’appliquer avant le traitement de la requête. Pour la réponse, l’événement Page_PreRender est la dernière chance de modifier l’encodage de la sortie. Notez également que Response.Write placera des caractères dans cette mémoire tampon dès que nous l’appelons. Veillez donc à disposer de l’encodage approprié avant d’utiliser Response.Write.

Les données d’origine ne sont pas Unicode : Comment faire en sorte que les Explorer Internet interprètent des jeux de caractères multioctets ?

Nous pouvons également faire en sorte que ASP.NET se comportent comme ASP si nécessaire. Pour ce faire, nous devons définir responseEncoding et requestEncoding sur windows-1252 (un encodage plus complet que iso-8859-1) et utiliser la propriété Response.Charset pour afficher correctement le texte. Cela fonctionne, car windows-1252 est un schéma d’encodage d’octet unique et ne modifie pas les octets ajoutés à la mémoire tampon. Ainsi, les caractères codés sur deux octets sont envoyés sous la forme d’une série d’octets uniques. Nous pouvons ensuite indiquer à Internet Explorer comment interpréter les octets à l’aide de la propriété Response.Charset. Ce scénario peut être nécessaire si les données d’origine ne sont pas stockées au format Unicode ou UTF-8, comme une valeur de retour à partir d’un objet COM, ou si les données sont stockées dans Microsoft SQL Server dans un champ non N (tel que varchar).

SQL Server et ASP.NET problèmes de mondialisation

Entrée de données Unicode à SQL Server

La meilleure façon de stocker des données dans SQL Server consiste à utiliser Unicode. Chaque fois que nous utilisons INSERT, UPDATE, etc., s’il y a même un moindre risque de données Unicode, nous devons ajouter un N avant la valeur. Cela indique à la base de données que la valeur est Unicode. Les objets ADO en sont un bon exemple. Ils le font automatiquement si nous utilisons l’objet Recordset pour ajouter de nouveaux enregistrements.Voici un exemple :

INSERT INTO MusicAlbum (Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'Abida', 4653, 403)
Or:
Dim t As String = "INSERT INTO MusicAlbum(Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'" & TextBox1.Text & "', 4653, 403)"
Entrée de date/heure à SQL Server

En règle générale, nous avons des connaissances sur la culture et les paramètres régionaux de la date/heure interprétées dans notre application ASP.NET. Toutefois, lors de l’envoi (push) et de l’extraction des données de date/heure vers et à partir de sources externes, nous courons le risque de mal interpréter les formats de date/heure. En effet, nous ne pouvons pas toujours garantir que la culture et les paramètres régionaux de la source externe soient identiques à ceux de notre application. Dans SQL Server cela peut être résolu à l’aide de l’attribut « current language » dans la chaîne de connexion de la connexion en cours d’établissement à la base de données SQL. Nous pouvons fournir le même paramètre de langue dans la chaîne de connexion que la culture dans notre application. Cela nous protège contre le risque d’interprétation incorrecte, car SQL Server accepte et envoie toujours les données de date/heure avec le paramètre mentionné ci-dessus.

Espace de noms System.Globalization

Cet espace de noms est au cœur de la globalisation et de la localisation dans le .NET Framework. La classe main utilisée dans cet espace de noms est la classe CultureInfo. Il contient des informations spécifiques à la culture, telles que le format de date/heure, les formats numériques, les informations de comparaison et les informations de texte. Pour plus d’informations sur la classe CultureInfo, visitez le site web MSDN suivant :

http://msdn2.microsoft.com/en-us/library/system.globalization.cultureinfo(vs.71).aspxCultureInfo

Cultures neutres et cultures spécifiques

Une culture neutre est une culture associée à une langue, mais pas à un pays/une région spécifique. Une culture spécifique est associée à la fois à une langue et à un pays/région spécifique.Exemple : « DE » (culture neutre) est pour la langue allemande, mais « de-AT » (culture spécifique) est pour la langue allemande telle qu’elle est parlée en Autriche. Les cultures neutres ne peuvent pas être utilisées pour la mise en forme.

Connaissance actuelle du thread et de la culture des classes .NET Framework

Toutes les classes et méthodes de la bibliothèque .NET Framework dans laquelle nous nous attendons à ce que la sortie dépende de la culture ont deux comportements intégrés :

  • Ils nous permettent de spécifier le code de culture tout en fournissant les arguments afin que la sortie soit basée sur la culture spécifiée. Cette option est facultative.

  • Si cela est manqué (généralement), les classes sont suffisamment intelligentes pour conserver une case activée sur la propriété Thread.CurrentThread.CurrentCulture et fonctionnent en fonction de cela.

Nous pouvons modifier la valeur de cette propriété avec du code semblable à ce qui suit :

    Dim ci As CultureInfo
        ci = New CultureInfo("de-AT")
        Thread.CurrentThread.CurrentCulture = ci

Dans cet exemple de code, « de » représente la langue allemande et « AT » représente l’Autriche. Par conséquent, dans cette instance, dateTime.Now(). La méthode ToString renvoie la date et l’heure dans un format correspondant à la façon dont la date et l’heure sont exprimées en langue allemande en Autriche.L’infrastructure garantit (comme suit) que la propriété CurrentCulture est toujours initialisée :

  1. Quel que soit le paramètre défini sur programmatiquement.

  2. Dans le cas où elle n’est pas définie explicitement par le programmeur, la propriété est choisie dans les fichiers de configuration (<globalisation> balise).

  3. Si la propriété est manquante, il s’agit de la culture sur laquelle le serveur Web s’exécute. Il s’agit généralement de la culture neutre qui correspond à la langue du système d’exploitation.

Fichiers de ressources

Tous les fichiers .resx, .resource et les fichiers dont l’attribut Action de génération est défini sur Ressource incorporée, ajoutés à un projet ASP.NET dans Visual Studio .NET, sont automatiquement compilés et incorporés dans l’assembly d’application dans le cadre de son manifeste. Cette opération peut même être effectuée manuellement à l’aide de l’utilitaire RESOURCE File Generator (RESGEN) via une invite de commandes Visual Studio .NET. Pour plus d’informations, reportez-vous au site web MSDN à l’adresse suivante :

http://msdn2.microsoft.com/en-us/library/ccec7sz1(vs.71).aspxIl s’agit d’un concept général qui s’applique chaque fois que nous avons besoin de gérer des ressources d’application qui ne sont pas liées à la mondialisation. Toutefois, lorsque nous implémentons la globalisation, nous devons utiliser des assemblys satellites.

Assemblys satellites

Les assemblys satellites peuvent être utilisés dans un projet ASP.NET lorsque vous vérifiez que les conditions suivantes sont remplies :

  1. Tous les éléments d’interface utilisateur dans tous les fichiers aspx doivent être équipés d’attributs id et runat=server.

  2. Nous créons des fichiers .resx distincts. Chacun d’eux doit correspondre à chaque culture que notre application doit prendre en charge.

  3. Nous devons décider d’un prénom commun pour tous ces fichiers par exemple. 'Strings'.

  4. Nous nomlons les fichiers .resx distincts avec la convention de nommage suivante commonfirstname. languagecode-regioncode.resx (par exemple : Strings.de-AT.resx, Strings.en-GB.resx ).

  5. Nous devons avoir le fichier de ressourcescommonfirstname.resx (Strings.resx) qui contient toutes les chaînes que nous voulons afficher dans le cas par défaut.

  6. Écrivez du code pour détecter la culture de l’utilisateur et définissez la propriété Thread.CurrentThread.CurrentUICulture pour qu’elle y corresponde.

  7. Écrivez du code pour charger les ressources à l’aide de la classe ResourceManager.

  8. Écrivez du code pour extraire des chaînes de l’objet chargé et les affecter aux éléments de l’interface utilisateur.

Une fois ces étapes effectuées, Visual Studio.NET compile Strings.resx et l’incorpore dans l’assembly d’application (MyGlobalizationTestProjectName.dll). Toutefois, pour tous les autres fichiers .resx, il génère des fichiers DLL distincts qui n’ont pas de code exécutable, mais uniquement des données de ressources. Il s’agit en fait d’assemblys satellites. En outre, Visual Studio .NET les place dans une structure de dossiers similaire à la suivante :MyGlobalizationTestProjectName |------- bac |------en-USMyGlobalizationTestProjectName.resources.dll |------ja-JPMyGlobalizationTestProjectName.resources.dll |------de-AT MyGlobalizationTestProjectName.resources.dll

Différence entre CurrentCulture et CurrentUICulture

Alors que les méthodes des classes dans l’espace de noms System.Globalization dépendent de la propriété Thread.CurrentThread.CurrentCulture pour fournir leur sortie, la classe ResourceManager qui charge l’assembly de ressources dépend de la propriété Thread.CurrentThread.CurrentUICulture pour charger l’assembly satellite approprié. Voici un exemple de code C# :

using System.Globalization;
using System.Threading;
using System.Resources;

//Load resources. 
protected ResourceManager gStrings = new ResourceManager("MyGlobalizationTestProjectName.strings", typeof(MyTestWebFormName).Assembly);

// Get the user's preferred language.
string sLang = Request.UserLanguages[0];
// Set the thread's culture for formatting, comparisons, etc.   
Thread.CurrentThread.CurrentCulture =  CultureInfo.CreateSpecificCulture(sLang);
// Set the thread's UICulture to load resources
// from satellite assembly.
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLang);

private void Page_Load(object sender, System.EventArgs e) 

{ 

 if (!IsPostBack)  

 {      
// Get strings from resource file and assign to UI elements.
head1.InnerHtml = gStrings.GetString("satellite.head1");
p1.InnerHtml = gStrings.GetString("satellite.p1");
sp1.InnerHtml = gStrings.GetString("satellite.sp1");
sp2.InnerHtml = gStrings.GetString("satellite.sp2");
butOK.Text = gStrings.GetString("satellite.butOK");
butCancel.Value = gStrings.GetString("satellite.butCancel");
   }

 }

Ordre dans lequel ASP.NET sélectionne les assemblys satellites :

Une fois que vous avez défini currentUICulture du thread, ASP.NET sélectionne automatiquement les ressources qui correspondent, dans l’ordre suivant :

  • Si un assembly satellite est trouvé avec une culture correspondante, les ressources de cet assembly sont utilisées.

  • Si un assembly satellite est trouvé avec une culture neutre qui correspond à CurrentUICulture, les ressources de cet assembly sont utilisées.

  • Si aucune correspondance n’est trouvée pour CurrentUICulture, les ressources de secours stockées dans l’assembly exécutable sont utilisées.

Remarque Ceci est basé sur le processus de secours de ressources plus général. Pour plus d’informations, reportez-vous au site web MSDN à l’adresse suivante :

http://msdn2.microsoft.com/en-us/library/sb6a8618(vs.71).aspx

Création manuelle d’assemblys satellites :

Cette utilisation des assemblys satellites est l’endroit où Visual Studio .NET crée les assemblys lui-même. Toutefois, Visual Studio .NET n’utilise pas d’assemblys satellites de nom fort par défaut. Si vous souhaitez modifier ces options, vous devez créer manuellement des assemblys satellites. Pour plus d’informations, reportez-vous au site web MSDN à l’adresse suivante :

http://msdn2.microsoft.com/en-us/library/21a15yht(vs.71).aspx .

Qu’est-ce qui se passe avec ASP.NET 2.0 sur le front de la mondialisation ?

L’utilisation généralisée des ASP.NET et le genre de problèmes que nous pourrions voir en ce qui concerne les caractéristiques de la mondialisation dans ASP.NET 2.0 sont encore loin devant. Toutefois, il serait bon d’examiner brièvement la direction que la méthodologie de globalisation prend pour les applications web.La prise en charge de la globalisation dans ASP.NET 2.0 a subi un changement radical et les développeurs Web ont eu la possibilité de rendre la localisation des applications web aussi facile que pour les applications Windows. Voici une liste des fonctionnalités qui constituent la base de la méthodologie de globalisation dans ASP.NET 2.0 : Ressources fortement typées Au cœur de la version .NET Framework 2.0 se trouve la prise en charge des ressources fortement typées qui fournissent aux développeurs IntelliSense et simplifient le code requis pour accéder aux ressources au moment de l’exécution.Éditeur de ressources managée Visual Studio .NET 2.0 inclut un nouvel éditeur de ressources avec une meilleure prise en charge de la création et de la gestion des entrées de ressources, notamment des chaînes, des images, des fichiers externes et d’autres types complexes.La génération de ressources pour les développeurs Web Forms Windows Forms a déjà bénéficié des avantages de l’internationalisation automatique. Visual Studio .NET 2005 prend désormais en charge l’internationalisation rapide en générant automatiquement des ressources pour les Web Forms, les contrôles utilisateur et les pages master.Les instances ResourceManager de prise en charge améliorée du runtime sont gérées par le runtime et facilement accessibles au code du serveur via des interfaces de programmation plus accessibles.Expressions de localisation Expressions déclaratives modernes pour les pages Web prennent en charge le mappage des entrées de ressources pour contrôler les propriétés, les propriétés HTML ou les régions de contenu statique. Ces expressions sont également extensibles, fournissant des moyens supplémentaires de contrôler le processus d’attachement de contenu localisé à la sortie HTML.Sélection automatique de la culture La gestion de la sélection de culture pour chaque requête web peut être automatiquement liée aux préférences du navigateur.Modèle de fournisseur de ressources Un nouveau modèle de fournisseur de ressources permet aux développeurs d’héberger des ressources dans d’autres sources de données telles que des fichiers plats et des tables de base de données, tandis que le modèle de programmation pour accéder à ces ressources reste cohérent.Pour plus d’informations sur la méthodologie de globalisation dans ASP.NET 2.0, visitez le site web MSDN suivant :

Fonctionnalités de localisation ASP.NET 2.0 : nouvelle approche de la localisation des applications webhttp://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

Conclusion

C’est tout pour l’instant sur les problèmes de globalisation dans ASP et ASP.NET. J’espère que cet article aidera quelques clients à résoudre leurs problèmes de globalisation dans ASP et ASP.NET avant de choisir de contacter Support Microsoft. Je terminerai par la pensée suivante : « Où que vous soyez et quand vous vous développez, pensez aux millions de personnes que vous pouvez autonomiser dans le monde entier. Rendez vos solutions prêtes pour le monde entier ! Les outils et technologies Microsoft facilitent l’internationalisation. » Nous reprendrons le mois prochain avec un autre sujet intéressant.Merci pour votre temps.

Pour plus d’informations sur les problèmes de globalisation dans ASP et ASP.NET, consultez les sites Web Microsoft suivants :

SetLocale et GetLocale dans vbscripthttp://msdn2.microsoft.com/en-us/library/5xf99h19.aspx

Globalisationhttp://msdn.microsoft.com/en-us/goglobal/bb688110 pas à pas

Accédez à l’échelle globale : localisation des Web Apps dynamiques avec IIS 5.0 et SQL Serverhttp://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx

Go Global : Conception de votre site web basé sur ASP pour prendre en charge la globalisationhttp://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx

315616 Comment détecter la langue d’un client dans une page Pages serveur active dans IIShttp://support.microsoft.com/?id=315616

Graphique ID de paramètres régionaux (LCID)http://msdn2.microsoft.com/en-us/library/0h88fahh.aspx

Espace de noms System.Globalizationhttp://msdn2.microsoft.com/en-us/library/system.globalization(vs.71).aspx

Ressources et localisation à l’aide du Kit de développement logiciel (SDK) .NET Frameworkhttp://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx

Ressources dans ASP.NET Applicationshttp://msdn2.microsoft.com/en-us/library/1ztca10y(vs.71).aspx

ASP.NET <globalisation> élément de configurationhttp://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx

Instructions de conception et d’implémentation pour les clients web -Globalisation et localisation http://msdn2.microsoft.com/en-us/library/ms978628.aspx

Site officiel de Microsoft – Global Development and Computing Portalhttp://msdn.microsoft.com/en-us/goglobal/bb688096

Développement d’applications prêtes pour le mondehttp://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx

Architecture de globalisation pour ASP.NEThttp://msdn2.microsoft.com/en-us/library/aa478974.aspx

Enterprise Localization Toolkit - Pour le développement d’applications microsoft ASP.NET localiséeshttp://msdn2.microsoft.com/en-us/library/aa479334.aspx

Http://www.microsoft.com/typography/default.mspx typographie Microsoft

Glossaire

ANSI est l’acronyme de l’American National Standards Institute. Dans ce contexte, il représente une page de codes spécifique pour un jeu de caractères/langage spécifique. Fait le plus souvent référence à la page de codes anglaise (windows-1252).ASCII Schéma d’encodage 1 octet (ou 7 bits). Seuls les caractères de la plage 0-127 sont normalisés. La plage 128-255 est une extension de l’ASCII et ne fait pas partie de la norme. La différence entre la plage supérieure du graphique ASCII OEM et le graphique ASCII VB en est un exemple.Paramètre CharSet utilisé principalement pour les Explorer Internet et les navigateurs qui indiquent au navigateur comment interpréter les données des caractères. Exemple : Response.charSet = « iso-8859-1. » Page de code Table de conversion qui spécifie la façon dont les caractères sont encodés (généralement utilisés pour les serveurs).Globalisation La mondialisation est un processus de conception et de création d’une application afin que les exigences uniques d’une culture, d’une région, ou des besoins nationaux/régionaux et linguistiques puissent être satisfaits. En d’autres termes, la conception d’une application de manière à ce qu’elle puisse être localisée ultérieurement est la globalisation.Paramètres régionaux/Culture Formats/préférences spécifiques à la langue et à la région, notamment les formats de date et de calendrier, les formats d’heure, les formats monétaires, la casse, le tri et la comparaison de chaînes, les formats d’adresse, les formats de numéros de téléphone, les formats de papier, l’unité de mesure, le sens de l’écriture, etc. LocaleID (LCID) Valeur DWORD qui spécifie l’identificateur de langue et l’ID de tri. Il peut être utilisé pour spécifier les formats de région spécifiques pour ex date/heure, etc. doivent être mis en forme en fonction de .Localisabilité Capacité d’une application à présenter du contenu pour la langue/les paramètres régionaux demandés.Localisation La localisation est le processus de traduction d’une interface utilisateur en langues et/ou paramètres régionaux spécifiques.Jeu de caractères multioctet Jeu de caractères dans lequel les caractères sont composés de deux octets ou plus, comme le japonais. UTF-8 relève également de cette catégorie. (Techniquement, Unicode fait partie de cette catégorie, mais dans Windows, il a sa propre catégorie.) Schéma d’encodage Unicode A 2 octets. Windows utilise Unicode en interne. Toutes les API spécifiquement pour Unicode sont indiquées par un « W » à la fin du nom de la fonction. Également connu sous le nom de char large; ne peut pas être utilisé directement à partir d’applications web.UTF-8 Encodage de caractères dans lequel un caractère peut être représenté par 1 à 6 octets. Dans Windows, la plage est comprise entre 1 et 3 octets. Non pris en charge sous NT4 pour les applications web.Jeu de caractères large Alias pour Unicode. Également appelé DBCS (jeu de caractères sur deux octets), UCS-2, UTF-16.

Comme toujours, n’hésitez pas à soumettre des idées sur des sujets que vous souhaitez aborder dans de futures colonnes ou dans la base de connaissances à l’aide du formulaire Demander.

Besoin d’aide ?

Vous voulez plus d’options ?

Explorez les avantages de l’abonnement, parcourez les cours de formation, découvrez comment sécuriser votre appareil, etc.

Les communautés vous permettent de poser des questions et d'y répondre, de donner vos commentaires et de bénéficier de l'avis d'experts aux connaissances approfondies.