Question

Bonjour,

Mes excuses pour la question des débutants. Je commence tout juste à utiliser les paramètres d'internationalisation ASP.NET.

Informations générales:

J'ai un site Web qui affiche un objet HTML < table > . Dans cet objet HTML < table > , j'ai une colonne qui affiche les dates. Mon serveur étant aux États-Unis, ces dates apparaissent sous la forme MM / JJ / AAAA . Beaucoup de mes utilisateurs se connectent à cette page Web via Excel, via le menu Données - > Importer des données externes - > Interface d'importation Web Query. La plupart de mes utilisateurs se trouvent aux États-Unis. Ces dates apparaissent donc correctement dans leurs écrans Excel.

Maintenant, je dois faire en sorte que la page Web fonctionne pour les utilisateurs britanniques. En l’état, ils téléchargent les dates au format MM / JJ / AAAA , ce qui rend leurs feuilles de calcul inutilisables car leurs paramètres régionaux sont définis sur JJ / MM / AAAA .

Ma question est la suivante:

Comment faire en sorte que le serveur Web réalise que la demande entrante a un paramètre de culture en-GB ? Je pourrais concevoir ma propre petite solution de contournement personnalisée, mais je suis sûr que je ne suis pas le premier programmeur à avoir découvert cela. Comment les pro gèrent-ils cela? Je cherche une solution qui soit relativement simple et rapide à mettre en place, mais je ne veux pas simplement mettre un morceau de bêtise de ma propre logique en même temps que je craindrais dans 6 mois.

Merci beaucoup d'avance, -Alan.

Était-ce utile?

La solution

Quelques points:

  • La < mondialisation > L'élément nécessite également l'attribut culture = " auto " ;. L'attribut uiCulture affecte la langue utilisée pour récupérer les ressources. L'attribut culture affecte la culture utilisée pour formater les nombres et les dates.

  • Comme indiqué dans cet article MSDN , il Il n'est pas recommandé de se fier exclusivement aux paramètres du navigateur pour déterminer la culture d'interface utilisateur d'une page. Les utilisateurs utilisent fréquemment des navigateurs non conformes à leurs préférences (par exemple, dans un cybercafé). Vous devez fournir une méthode permettant aux utilisateurs de choisir explicitement une langue ou une langue et une culture (nom CultureInfo) pour la page.

Autres conseils

Vous pouvez autoriser le navigateur à définir automatiquement votre culture d'interface utilisateur en ouvrant le fichier Web.config, comme suit:

<configuration>
   <system.web>    
       <globalization uiCulture="auto" />
       ...

Ensuite, la culture définie par le navigateur sera automatiquement définie dans votre application. Cela signifie que lorsque la structure affichera les valeurs de date / heure, elles seront formatées en fonction de la culture de l'interface utilisateur du fil actuel.

Cela vous aidera également si vous utilisez du texte monétaire et / ou un texte localisé (vous devez toutefois fournir les ressources localisées pour chaque culture que vous prenez en charge).

Vous pouvez également accepter un paramètre de chaîne de requête pour remplacer les paramètres de culture.

L’initialisation de la culture doit aller à la méthode Page.InitializeCulture.

protected override void InitializeCulture ( )
{
  Thread.CurrentThread.CurrentCulture
    = Thread.CurrentThread.CurrentUICulture
    = Request.QueryString [ "culture" ] != null ? new CultureInfo ( Request.QueryString [ "culture" ] ) : CultureInfo.InvariantCulture;
  //base.InitializeCulture ( );
}

Utilisation: http://tempuri.org/page.aspx?culture=en -GB

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top