Problèmes de globalisation dans ASP et ASP.NET

Colonne vocale d’assistance d’ASP.NET

Pour personnaliser cette chronique selon vos besoins, nous vous invitons à envoyer vos idées sur des sujets qui vous intéressent et les problèmes que vous voulez voir traités dans de futurs articles de la Base de connaissances et des chroniques Support Voice. Vous pouvez soumettre vos idées et vos commentaires à l’aide de l’écran Ask For It . Il existe également un lien vers le formulaire au bas de cette colonne.

Introduction

Bienvenue ! Il s’agit de Sukesh Khare avec l’équipe de Support aux développeurs Microsoft ASP.NET. Il s’agit de la première fois que j’ai créé une colonne d’assistance vocale. J’ai hâte de la création de plusieurs de ces colonnes dans les prochains mois.

Pour l’article de mois-ci ce, je vais discuter des problèmes de globalisation dans Active Server Pages (ASP) et ASP.NET, les problèmes auxquels nous sommes confrontés dans ASP, comment choses ont changé dans ASP.NET 1 x et c’est quoi ASP.NET 2.0 à l’avant de la globalisation.

Remarque Si vous rencontrez un terme que vous ne comprenez pas, reportez-vous à la section Glossaire au bas de cette colonne.

Problèmes de globalisation dans ASP

Avant ASP.NET, il n’était pas structuré pour le développement d’applications pour les utilisateurs globaux. Pendant le développement précoce de ASP, les développeurs comme moi trouvé uniquement dispersés prise en charge de la globalisation dans les systèmes d’exploitation, des navigateurs, des fournisseurs d’applications et des systèmes back-end. Toutefois, nous avons observé rarement toute connexion automatique au sein de ces applications. Heureusement, nous comprendre des concepts tels que les jeux de caractères, pages de codes, langues du navigateur et les polices dont nous pouvons exploiter pour le développement d’applications pour les utilisateurs globaux.

Il serait trop difficile à séparer en catégories toutes la globalisation problèmes que ceux d'entre nous dans ASP.NET ont vu. Allez à la place, la liste une série de concepts qui se rapportent à une variété de ces problèmes.

Pages de codes et les jeux de caractères

Nous savons tous que les caractères sur l’écran de notre ordinateur sont simplement une série d’octets. La série d’octets peut être créée et interprétée dans n’importe quel nombre de façons. Si l’interprétation utilise un codage différent de l’encodage que le tableau d’octets a été créé avec, l’interprétation s’affichera comme des parasites. Jeux de caractères (charsets) sont codage des formats généralement utilisés par les navigateurs. La propriété Codepage , ce qui n’est plus applicable pour les conversions de côté serveur, est simplement une table de conversion qui spécifie la manière dont les caractères sont encodés.

Navigateurs codent les données post de formulaire en fonction du jeu de caractères en cours. Si le jeu de caractères en cours est « windows-1256 », puis la transmission d’octets sur le serveur est également codée en tant que « windows-1256. »

Lorsque la page ASP est interprétée, les collections Querystring et de formulaire ne sont pas générées tant qu’elles sont référencées dans le code. Lorsqu’ils sont générés, les données de chaîne sont transformées au format Unicode en fonction de la page de codes actuelle. (Par défaut, ASP et ASP.NET traitent du contenu à l’aide du format Unicode). Il est très important de définir la page de codes correcte avant de référencer les collections ; dans le cas contraire, la représentation Unicode en mémoire ne sera pas correcte.

Pour définir une page de codes, utilisez Session.Codepage ou Response.Codepage. Le Response.Codepage est disponible uniquement dans les versions de Microsoft Internet Information Services (IIS) 5.1 ou une version ultérieure. Pour plus d’informations sur les valeurs d’entier (qui correspondent au jeu de caractères) que nous définissez ces propriétés, visitez le site Web de Microsoft à l’adresse suivante :
Reconnaissance du jeu de caractères
http://msdn2.microsoft.com/en-us/library/Aa752010.aspx
Par exemple, pour définir la page de codes pour la langue arabe, utilisez le code suivant :
Session.Codepage = 1256
Response.Codepage n’affecte que la réponse en cours. Toutefois, Session.Codepage affectera toutes les réponses apportées par l’utilisateur en cours. Lorsque la page de codes est définie à l’aide d’une de ces propriétés et les collections de formulaire et de la chaîne de requête sont générées, cette modification dans la page de codes actuelle provoque la méthode Response.Write transformer l’Unicode dans la mémoire à la page de codes actuelle. Pour plus d’informations à ce sujet, visitez le site Web MSDN suivant :
Définition de la Page de Code pour la chaîne de Conversions (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspx
Le récapitulatif lorsqu’en ce qui concerne les problèmes liés aux jeux de caractères et des pages de codes est ce jeu de caractères du client codepage du serveur doit correspondre.

Accepter des langues

Si un développeur ASP souhaite savoir quelles langues, un utilisateur a défini dans son navigateur, le développeur peut utiliser la variable Request.ServerVariables (« HTTP_ACCEPT_LANGUAGE ») pour trouver la liste des langues que l’utilisateur souhaite lire la réponse de, (par exemple, anglais, allemand ou indien) et l’ordre de préférence pour que l’utilisateur souhaite voir ces langues. Dans ASP.NET, les informations similaires sont présentes dans la propriété Request.UserLanguages sous la forme d’un tableau.
Pour plus d’informations sur la façon d’utiliser ces informations dans un code ASP, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
229690 comment définir l’ID de paramètres régionaux ASP par les paramètres de langue du navigateur

Affichage des caractères sur plusieurs octets définit dans Internet Explorer

Le seul format de codage qui peut afficher un jeu de caractères sur plusieurs octets est Unicode (UTF-8). Avec UTF-8, nous pouvons afficher cyrillique, indien et japonais sur la même page. Si nous n’utilisons pas UTF-8, nous pouvons afficher uniquement les une de ces langues à la fois. Pour définir le jeu de caractères du navigateur, utilisez la propriété Response.CharSet .

Caractères codés sur plusieurs octets statiques sur une page

Pour afficher des caractères codés sur plusieurs octets stockés directement dans la page, nous devons d’abord enregistrer la page avec un codage spécifique. UTF-8 vous convient le mieux, mais fonctionne également une page de codes spécifique (associée à la page de codes des caractères).

Enregistrement d’un fichier ASP à l’aide de Microsoft Visual InterDev ne vous aide pas ici, dans la mesure où Visual InterDev ne peut enregistrer anglais ANSI ou Unicode. Une page ASP est enregistrée comme de l’Unicode n’est pas pris en charge par ASP.

Dans Microsoft Visual Studio .NET, vous pouvez enregistrer un fichier dans n’importe quel codage. Il existe deux façons de le faire. La valeur par défaut est fait pour enregistrer le fichier à l’aide de la page de codes actuelle de l’utilisateur. Une autre méthode permettant d’enregistrer un fichier avec un codage est la suivante :
Dans le menu fichier , cliquez sur Enregistrer le fichier sous. Dans le
Boîte de dialogue Enregistrer le fichier sous , cliquez sur la flèche déroulante sur le
Bouton Enregistrer . Lorsque vous cliquez sur la flèche, les options sont
Enregistrer et Enregistrer avec codage. Lorsque vous cliquez sur
Enregistrer avec le codage, la boîte de dialogue Options d’enregistrement avancées s’affiche dans laquelle vous pouvez sélectionner le type de codage que vous souhaitez appliquer dans la liste des pages de code qui sont installés sur l’ordinateur.


Remarque Cela modifie le codage pour l’enregistrement de l’opération, mais est pour une seule fois. Le prochain enregistrement sera ramené à la valeur par défaut.

Pour modifier la page de codes par défaut, cliquez sur Options d’enregistrement avancées dans les
Menu fichier . Dans la boîte de dialogue Options d’enregistrement avancées , vous pouvez définir le codage par défaut pour enregistrer des opérations à la page de codes 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 pour ASP, comme indiqué précédemment, nous devons définir la Session.CodePage et les propriétés de la propriété Response.CharSet . Avec IIS 5.1 et les versions ultérieures, nous pouvons également utiliser la propriété Response.CodePage .

Page de codes de défaut sur les serveurs

Le paramètres régionaux par défaut et la page de codes par défaut pour la page dépendent des paramètres du Registre pour le. Utilisateur par défaut. Nous pouvons trouver la clé de la ruche de Registre HKEY_USERS\ internationale. DEFAULT\Control contrôle\International. Nous pouvons également modifier le comportement des paramètres régionaux qui sont choisi par les services IIS. Pour plus d’informations, consultez la section « IIS 5.0 » dans l’article suivant de la Base de connaissances :
306044 comportement de Date/heure format est différent lors de l’accès à partir d’Active Server Pages

Si l’utilisateur connecté possède les mêmes paramètres régionaux défini comme la clé ou la valeur par défaut du système, le paramètre de l’utilisateur est prioritaire.

Exemple : Paramètres régionaux par défaut sont la date format défini en tant que 11.1.2004, alors que l’utilisateur connecté (avec le même jeu de paramètres régionaux) est le format de date, comme 1/11/2004. Le paramètre 1/11/2004 prendra effet pour ASP.

(Pour ASP.NET, cela peut varier. Dans certaines installations, l’utilisateur ASPNET aura son propre profil qui s’affichera sous HKEY_USERS lorsqu’il est chargé. Dans d’autres, il utilisera le. Profil par défaut. Nous pouvons également utiliser l’attribut de page de codes dans la déclaration < % @ % >. Cela doit être utilisé lorsque le fichier est enregistré avec un codage différent puis la valeur par défaut, comme la page de codes 932 (japonais)).

Problèmes de page de code par rapport aux problèmes de conversion de police : les ?

Dans certains cas, vous pouvez voir un caractère point d’interrogation ( ?) ou une zone dans laquelle un caractère est censé pour apparaître.
Problèmes de conversion de page de codes
Lorsqu’un caractère est remplacé par le caractère point d’interrogation ( ?), il s’agit d’une indication qu’un problème de conversion de page de codes, s’est produite. Le point d’interrogation ( ?) est un caractère de la valeur par défaut pour la conversion de page de codes et signifie que le système d’exploitation ne sait pas comment traiter la valeur de caractère et de convertir. Il remplace la valeur de caractère avec un point d’interrogation ( ?). Cela signifie que le caractère a une valeur non valide pour la page de codes ou que la page de codes qui est nécessaire pour la conversion n’est pas installé.
Problèmes de conversion de police
Lorsqu’un caractère est remplacé par une zone, ceci indique qu’un problème de conversion de police s’est produite. Cela se produit sur le client lorsque le client ne dispose pas de la bonne police afin d’afficher ce caractère correctement. Par exemple, lorsqu’un caractère est dans le jeu de caractères japonais et le client ne possède pas les polices de caractères japonaises installés, le caractères japonais s’affiche sous la forme d’une zone.

Ensuite, je vais parler d’évolution des choses dans ASP.NET 1.x, et comment ces modifications affectent les problèmes de globalisation dans le contexte d’ASP.NET.

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

Avec ASP.NET, trois points forts ont été introduits :
  • La balise < globalisation > dans le fichier web.config
    La balise < globalisation > nous prend les concepts incohérents de pages de codes et les 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 de globalisation nous fournit la puissance de programmation de gestion de la globalisation.
  • Le concept de fichiers de ressources a été considérablement amélioré.
    Nous ne traitent pas de la façon que nous avons utilisés dans ASP, les fichiers de ressources. Maintenant, les fichiers de ressources sont sous forme de fichiers XML lorsque nous concevoir et de développer leur, et ils existent comme assemble lors de l’exécution.
La balise de configuration de globalisation :

Deux paramètres importants dans la balise sont les suivantes :
<globalization             requestEncoding="utf-8" 
responseEncoding="utf-8" />
Autres zones de paramètres possibles suit :
fileEncodingSpécifie le codage par défaut pour .aspx, .asmx et .asax l’analyse des fichiers. Les fichiers Unicode et UTF-8 enregistrés avec le préfixe byte order mark (avec signature) seront automatiquement reconnus, quelle que soit la valeur de fileEncoding.
CultureSpécifie la culture par défaut pour le traitement des demandes Web entrantes (applicables sur les méthodes des classes de l’espace de noms System.Globalization).
uiCultureSpécifie la culture par défaut pour le traitement des recherches de ressources dépendant 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 de Microsoft à l’adresse suivante :Ces paramètres sont appliqués par ASP.NET une fois que la réponse est terminée, et avant que la demande soit remise à votre application. Pour responseEncoding, la mémoire tampon qui est créée pour stocker la sortie est définie pour ce codage. Tout ce qui se passe dans cet mémoire tampon sera encodé en fonction du paramètre tel qu’il est inséré dans la mémoire tampon.

Pour le codage de la demande, le runtime lire la demande et l’interpréter en fonction du paramètre de cette section. Il s’agit d’un paramètre qui peut provoquer des problèmes, toutefois. Le tableau ci-dessous illustre la disposition de bit d’une séquence d’octets UTF-8 valide.

Si la valeur de caractère se situe dans la norme ASCII 7 bits, la valeur d’octet n’est pas modifiée. Si la valeur est supérieure à 127, il doit suivre les règles ci-dessous. Le premier jeu de bits indique le nombre de caractères dans la séquence. Chaque octet après que le premier doit commencer par le premier bit la valeur 1.

Disposition des octets d’UTF-8 :
Octetsbitsreprésentation sous forme de
170vvvvvvv
211110vvvvv 10vvvvvv
3161110vvvv 10vvvvvv 10vvvvvv
42111110vvv 10vvvvvv 10vvvvvv 10vvvvvv
C’est là qu’intervient le problème. Si le navigateur encode la demande en fonction d’un seul octet encodage (iso-8859-1), il se peut que les valeurs supérieures à 127 ne sera pas valides en fonction de la disposition ci-dessus. Lorsqu’ils sont lus dans la mémoire tampon UTF-8, les caractères non valides sont simplement supprimées de la sortie.

Changements de codage Runtime

Dans l’événement Application_BeginRequest , nous pouvons modifier la valeur de codage de la demande et qu’il prenne effet avant le traitement de la requête. Pour la réponse, l’événement Page_PreRender est la dernière occasion de modifier le codage de la sortie. Également Remarque que Response.Write placera caractères dans cet mémoire tampon dès que nous appelez, veillez à avoir le bon codage de jeu avant d’utiliser le Response.Write.

Les données d’origine sont au format Unicode non : comment toujours rendre Internet Explorer à interpréter les jeux de caractères codés sur plusieurs octets ?

Nous pouvons également vous ASP.NET se comportent comme ASP s’il nous faut. Pour cela, nous devons définir la responseEncoding et requestEncoding pour windows-1252 (un plus complète encodage qu’iso-8859-1) et la propriété Response.Charset permet d’afficher le texte correctement. Cela fonctionne parce que windows-1252 est un schéma de codage codés sur un octet et ne modifie pas les octets qui sont ajoutés à la mémoire tampon. Par conséquent, les caractères codés sur deux octets sont envoyés sous la forme d’une série d’octets unique. 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 en tant qu’Unicode ou UTF-8, tel qu’une valeur de retour d’un objet COM, ou si les données sont stockées dans de Microsoft SQL Server dans un champ non (comme varchar par exemple).

Problèmes de globalisation de SQL Server et ASP.NET

Entrée de données Unicode de SQL Server
Le meilleur moyen de stocker des données dans SQL Server est d’utiliser Unicode. Chaque fois que nous utilisons INSERT, UPDATE, etc., s’il existe encore une chance de moins de données Unicode, nous devons ajouter un N avant la valeur. Cette option indique à la base de données que la valeur est au format Unicode. Un bon exemple de cela est les objets ADO. Ils le font automatiquement si vous utilisez 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)"

Date/heure d’entrée à SQL Server
Généralement, nous avons la connaissance de la culture et les paramètres régionaux de date et heure est interprétée dans une application ASP.NET. Toutefois, lors de poussées et les données de date/heure à et provenant de sources externes, nous exécutons le risque d’une mauvaise interprétation des formats de date/heure. C’est parce que nous ne pouvons pas garantir la culture et les paramètres régionaux de la source externe soit identique à celle de notre application. Dans SQL Server, cela peut être résolu à l’aide de la ' langue' attribut dans le connectionstring de la connexion à la base de données SQL. Nous pouvons fournir le même paramètre de langue dans le connectionstring est la culture de notre application. Cela nous protège contre le risque de mauvaise interprétation, car SQL Server est toujours accepte et envoie les données de date/heure en accord avec le paramètre mentionnés ci-dessus.

Espace de noms System.Globalization

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

Cultures neutres et les cultures spécifiques

Une culture neutre est une culture qui est associée à une langue, mais pas un pays ou une région. Une culture spécifique est associée à la fois avec une langue et un pays spécifique.

Exemple : « DE » (culture neutre) est en allemand, mais « de-AT » (culture spécifique) pour la langue allemande telle qu’elle est parlée en Autriche. Cultures neutres ne peuvent pas être utilisées pour mettre en forme.

Sensibilisation de thread et de la culture en cours de classes de.NET Framework

Toutes les classes et les méthodes dans la bibliothèque.NET Framework où nous pouvons prévoir la sortie à être spécifiques à une culture ont deux comportements intégrés :
  • Ils nous permettent de spécifier le code de culture tout en fournissant des arguments afin que la sortie est basée sur la culture spécifiée. Cette option est facultative.
  • Si ce n’est pas respectée (il est généralement), les classes sont assez intelligents pour conserver un contrôle sur le Thread.CurrentThread.CurrentCulture propriété et le travail en fonction de qui.
Nous pouvons modifier la valeur de cette propriété avec un code qui est semblable à la suivante :
    Dim ci As CultureInfo        ci = New CultureInfo("de-AT")
Thread.CurrentThread.CurrentCulture = ci
Dans cet exemple de code, « de » représente l’allemand et « AT » représente l’Autriche. Par conséquent, dans ce cas, il s’agit de la DateTime.Now(). ToString méthode retourne la date et l’heure dans un format correspondant la façon dont la date et l’heure sont exprimées en allemand en Autriche.

Que la propriété CurrentCulture est toujours initialisée, l’infrastructure garantit que (comme suit) :
  1. Quelle que soit il est défini sur par programme.
  2. Dans le cas où il n’est pas définie explicitement par le programmeur, la propriété est prélevée à partir des fichiers de configuration (balise < globalisation >).
  3. Si la propriété est manquante, il existe la culture sur lequel le serveur Web est en cours d’exécution. 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 .resource, .resx et les fichiers qui ont l’attribut Action de génération la valeur Ressource incorporée et qui sont 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. Ce même faire manuellement à l’aide de l’utilitaire Générateur de fichiers de ressources (RESGEN) via une invite de commandes Visual Studio .NET. Pour plus d’informations, visitez le site Web MSDN suivant :Il s’agit d’un concept général qui s’applique chaque fois que nous avons besoin gérer les ressources d’application qui ne sont pas liés à la globalisation. Toutefois, lorsque nous implémentons globalisation, nous devons utiliser des assemblys satellites.

Assemblys satellites

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’id et runat = server attributs.
  2. Nous créons des fichiers .resx séparé. Chacun d’eux doit correspondre à chaque culture, nous souhaitons que notre application pour prendre en charge.
  3. Nous devons choisir un nom commun pour tous ces fichiers de l’exemple : 'Strings'.
  4. Nous nommer les fichiers .resx séparé avec le .resx commonfirstname. languagecode-code de régionde convention d’affectation de noms suivante (par exemple : Strings.de-AT.resx, Strings.en-GB.resx).
  5. Nous devrions obtenir le fichier de ressources
    commonfirstname.resx (Strings.resx) qui a toutes les chaînes que nous voulons affichées par défaut.
  6. Écrire du code pour détecter la culture de l’utilisateur et de définir la propriété Thread.CurrentThread.CurrentUICulture à rapprocher.
  7. Écrire du code pour charger les ressources à l’aide de la classe ResourceManager .
  8. Écrire du code pour extraire les chaînes à partir de l’objet chargé et les affecter aux éléments de l’interface utilisateur.
Lorsque vous avez exécuté ces étapes, Visual Studio.NET compilera Strings.resx et incorporer dans l’assembly d’application (MyGlobalizationTestProjectName.dll). Toutefois, pour tous les autres fichiers .resx, il générera des fichiers dll distincte qui n’ont pas de code exécutable, mais uniquement les données de ressources. Ce sont en fait des assemblys satellites. En outre, Visual Studio .NET place dans la structure de dossiers semblable à la suivante :
MyGlobalizationTestProjectName        |------- bin
|------en-US
MyGlobalizationTestProjectName.resources.dll
|------ja-JP
MyGlobalizationTestProjectName.resources.dll
|------de-AT
MyGlobalizationTestProjectName.resources.dll

Différence entre CurrentCulture et CurrentUICulture

Tandis que les méthodes de classes dans l’espace de noms System.Globalization dépendent de la propriété Thread.CurrentThread.CurrentCulture pour donner leur sortie, la classe ResourceManager qui charge l’assembly de ressource 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 :

Lorsque vous avez défini le du thread CurrentUICulture, 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 à la CurrentUICulture, les ressources de cet assembly sont utilisées.
  • Si une correspondance est introuvable pour le CurrentUICulture, les ressources de secours stockées dans l’assembly exécutable sont utilisés.
Remarque Ceci est basé sur le processus de secours pour les ressources plus générale. Pour plus d’informations, visitez le site Web MSDN suivant :

Création manuelle d’assemblys satellites :

Cette utilisation d’assemblys satellites est où Visual Studio .NET crée les assemblys lui-même. Visual Studio .NET ne nom fort aux assemblys satellites par défaut, toutefois. Si vous souhaitez modifier ces options, vous devez créer manuellement des assemblys satellites. Pour plus d’informations, visitez le site Web MSDN suivant :.

Que se passe-t-il avec ASP.NET 2.0 à l’avant de la globalisation ?

L’utilisation généralisée d’ASP.NET et les types de problèmes que nous verrions en ce qui concerne les fonctionnalités de globalisation dans ASP.NET 2.0 sont toujours certaine distance en avance. Toutefois, il serait judicieux d’effectuer un bref aperçu des direction dirigée la méthodologie de globalisation pour les applications web.

Prise en charge de la globalisation dans ASP.NET 2.0 a subi une modification radicale et les développeurs Web ont eu la possibilité de faciliter la localisation d’applications Web comme étant des applications basées sur Windows. Voici une liste des fonctions qui constituent le fondement de la méthodologie de la globalisation dans ASP.NET 2.0 :

Ressources fortement typées Au cœur de.NET Framework 2.0 version est prise en charge des ressources fortement typées qui fournit aux développeurs avec Intellisense et simplifie le code requis pour accéder aux ressources au moment de l’exécution.

Éditeur de ressources de gestion Visual Studio .NET 2.0 inclut un nouvel éditeur de ressources avec une meilleure prise en charge pour la création et la gestion des entrées de ressource, y compris des chaînes, des images, des fichiers externes et autres types complexes.

Génération de ressources pour les formulaires Web Les développeurs Windows Forms ont bénéficié d’avantages de l’internationalisation automatique. Visual Studio .NET 2005 sera prennent désormais en charge l’internationalisation rapide en générant automatiquement des ressources pour les formulaires Web, les contrôles utilisateur et les pages maîtres.

Meilleure prise en charge du runtime Les instances de ResourceManager sont managés par le runtime et aisément accessibles au code serveur via des interfaces de programmation plus accessibles.

Expressions de localisation Des expressions déclaratives modernes pour les pages Web prend en charge les entrées de ressources de mappage pour contrôler les propriétés, les propriétés HTML ou des zones de contenu statiques. Ces expressions sont également extensibles, fournissant des méthodes supplémentaires pour contrôler le processus d’association du contenu localisé de sortie HTML.

Sélection de culture automatique Gestion de la culture sélectionnée pour chaque requête Web peut être automatiquement liée aux préférences de navigateur.

Modèle de fournisseur de ressources Un nouveau modèle de fournisseur de ressources permet aux développeurs de ressources de l’hôte dans d’autres sources de données telles que les fichiers plats et les tables de la 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 la globalisation dans ASP.NET 2.0, reportez-vous au site Web de MSDN suivant :
Fonctionnalités de localisation 2.0 ASP.NET : Adopter une nouvelle approche de la localisation d’Applications Web
http://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 vous aidera les quelques clients à résoudre leurs problèmes de globalisation dans ASP et ASP.NET avant optent pour contacter le Support Microsoft. Je se termine par pensé que ce qui suit :

« Où et quand vous développez, pensez à des millions de personnes à que donner dans le monde entier. Rendre vos solutions universelles ! Outils et technologies Microsoft facilitent internationalisation. »

Nous interceptera les à nouveau le mois prochain avec un autre sujet intéressant.

Nous vous remercions pour votre temps.
Pour plus d’informations sur les problèmes de globalisation dans ASP et ASP.NET, consultez les sites Web de Microsoft à l’adresse suivante :
SetLocale et GetLocale dans vbscript
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx
Consultez Global : Localisation des applications Web dynamiques avec IIS 5.0 et SQL Server
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx
Visitez Global : Conception de votre Site Web basé sur ASP pour prendre en charge de la globalisation
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx
315616 comment détecter une langue Client dans un Active Server Pages Page dans IIS
http://support.microsoft.com/?id=315616
Ressources et localisation à l’aide du Kit de développement logiciel de.NET Framework
http://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx
Élément de configuration ASP.NET < globalisation >
http://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx
Conception et mise en oeuvre des directives pour les Clients Web - globalisation et localisation
http://msdn2.microsoft.com/en-us/library/ms978628.aspx
Site officiel de Microsoft – Global Development and Computing Portal
http://msdn.microsoft.com/en-us/goglobal/bb688096
Développement d’Applications mondialisables
http://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx
Architecture de globalisation pour ASP.NET
http://msdn2.microsoft.com/en-us/library/aa478974.aspx
Shared Computer Toolkit de localisation d’entreprise - pour développer des Applications localisées Microsoft ASP.NET
http://msdn2.microsoft.com/en-us/library/aa479334.aspx
839861 les System.Resources.MissingManifestResourceException une exception se produit lorsque vous essayez d’accéder à une ressource localisée

Glossaire

ANSI Acronyme de American National Standards Institute. Dans ce contexte, il représente une page de codes spécifique pour un ensemble de langage spécificité. Désigne généralement la page de codes anglais (windows-1252).

ASCII Un schéma de codage 1 octet (ou 7 bits). Seuls les caractères dans la plage 0 à 127 sont normalisés. La plage de 128 à 255 est ASCII et ne fait pas partie de la norme des extensions. Un exemple de cela est la différence entre la plage supérieure de la table ASCII OEM et de la table ASCII VB.

Jeu de caractères La définition utilisée principalement pour Internet Explorer et de navigateurs qui indique au navigateur comment interpréter les données caractères. Exemple : Response.charSet = « iso-8859-1 ».

Page de codes Une table de conversion qui spécifie le mode de codage des caractères (généralement utilisé pour les serveurs).

Globalisation La globalisation est un processus de conception et de création d’une application afin que les besoins spécifiques d’une culture, région ou besoins nationaux et linguistiques peuvent être satisfaites. En d’autres termes vous créez une application de sorte qu’il peut être localisé plus tard est la globalisation.

Paramètres régionaux/Culture Langue et région spécifique/préférences de formats, y compris, date et formats de calendrier, formats d’heure, formats de devise, la casse, de tri et comparaison de chaînes, formats d’adresse, de téléphone des formats de nombre, les formats de papier, l’unité de mesure, écriture de direction, etc..

LocaleID (LCID) Une valeur DWORD qui spécifie l’identificateur de langue et ID de tri. Il peut être utilisé pour spécifier les formats de région spécifique ex date/heure, etc. doit être formatée en fonction de.

Adaptabilité Capacité d’une application pour présenter le contenu de la langue/région demandée.

Localisation La localisation est le processus de traduction d’une interface utilisateur dans des langues spécifiques ou des paramètres régionaux.

Jeu de caractères codés sur plusieurs octets Un jeu de caractères dans lequel les caractères sont composés de deux octets ou plus, telles que le japonais. UTF-8 est également tombe sous cette catégorie. (Unicode est techniquement dans cette catégorie, mais dans Windows, il a sa propre catégorie).

Unicode Un schéma de codage de 2 octets. Windows utilise Unicode en interne. Les API spécifiquement pour Unicode sont signifié par un « W » à la fin de la fonction. Également appelé type wide char ; ne peut pas être utilisé directement à partir d’applications web.

UTF-8 Un codage de caractères où un caractère peut être représenté par 1-6 octets. Dans Windows, la plage est 1-3 octets. Non pris en charge sous NT4 pour les applications web.
Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
Prise en charge de 175392 UTF8


Jeu de caractères étendus Un alias pour le format Unicode. Également appelé DBCS (jeu de caractères codés sur deux octets), UCS-2, UTF-16.
Comme toujours, n’hésitez à soumettre des idées sur des sujets que vous souhaitez traités dans de futurs des colonnes ou dans la Base de connaissances à l’aide de la
Formulaire Ask For It .
Propriétés

ID d'article : 893663 - Dernière mise à jour : 27 janv. 2017 - Révision : 1

Microsoft Active Server Pages 4.0, Microsoft ASP.NET 1.0, Microsoft ASP.NET 1.1, Microsoft ASP.NET 2.0

Commentaires