Précédent   Forum des professionnels en informatique > Systèmes > Windows > IIS
IIS Forum d'entraide serveur Web IIS (Internet Information Services)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/03/2007, 13h40   #1
Membre éprouvé
 
Avatar de elbj
 
Inscription : novembre 2004
Messages : 341
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2004
Messages : 341
Points : 422
Points : 422
Par défaut IIS et Culture linguistique

Bonjour à tous

Savez vous s'il y a un paramètre de configuration quelque part dans IIS v.6 qui "oblige" tous les sites web asp.net qui s'exécutent à adopter une culture linguistique définie dans ce paramètre ?

Lorsque je parle de culture linguistique, il est question d'affichage de date et de symbole monétaire.

Merci par avance pour votre aide

Christophe
elbj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 13h54   #2
Membre confirmé
 
Avatar de zzzThibaut
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : février 2007
Messages : 223
Points : 253
Points : 253
Dans IIS cela n'existe pas. Par contre si tu développes en .Net, je pense que tu peux forcer cette valeur dans le web.config
zzzThibaut
zzzThibaut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 14h05   #3
Membre éprouvé
 
Avatar de elbj
 
Inscription : novembre 2004
Messages : 341
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2004
Messages : 341
Points : 422
Points : 422
Oui tu as parfaitement raison, dans le web-config tu peux mettre une proprieté de globalization tout comme dans le code tu peux dynamiquement changer la culture d'exécution de l'application asp.net grâce au CultureInfo.

Je cherche ailleurs que dans ASP.NET car j'ai fait tout bien et sur mon PC de dev ça fonctionne parfaitement. Par contre en déploiement ça marche plus. Donc j'essaye de comprendre. C'est même pire que ça, même si les paramètres linguistiques de windows sont correctement configurés ça change rien.

Par exemple, je paramètre pour un affichage culturel espagnol (web-config et windows) et les montants s'affichent en $

Dingue !
elbj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 15h44   #4
Membre confirmé
 
Avatar de zzzThibaut
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : février 2007
Messages : 223
Points : 253
Points : 253
Juste une idée. Tu as vérifié la langue que tu envoies de ton browser à ton serveur web ? tu es peut-être en en-us
zzzThibaut
zzzThibaut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 17h04   #5
Membre éprouvé
 
Avatar de elbj
 
Inscription : novembre 2004
Messages : 341
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2004
Messages : 341
Points : 422
Points : 422
Effectivement ça peut venir de là. Mais c'est une donnée que je ne prends pas en compte car je force la langue par rapport à un paramètre du Web-Config.

Ceci dit, cette discussion sur IIS se transforme en discussion sur ASP.NET, peut-être faudrait-il déplacer le sujet, non ?
elbj est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/03/2007, 17h11   #6
Membre confirmé
 
Avatar de zzzThibaut
 
Inscription : février 2007
Messages : 223
Détails du profil
Informations personnelles :
Âge : 38

Informations forums :
Inscription : février 2007
Messages : 223
Points : 253
Points : 253
C'est certains que l'on s'éloigne tout doucement d'un sujet purement IIS.
Et tu auras certainement plus de réponse coté aspx.
zzzThibaut
zzzThibaut est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/04/2007, 06h38   #7
Membre éprouvé
 
Avatar de elbj
 
Inscription : novembre 2004
Messages : 341
Détails du profil
Informations personnelles :
Âge : 38
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations forums :
Inscription : novembre 2004
Messages : 341
Points : 422
Points : 422
Enfin résolu... mais quelle galère !

Comme je ne supporte pas ceux qui écrivent simplement "Ca y est, j'y suis arrivé..." sans expliquer comment ils ont fait, je vais tacher d'expliquer grosso-modo ci-dessous comment j'ai résolu mon problème.

Dans le site ASP.NET j'avais mis en place une classe spécialisée pour gérer le linguistique. En gros c'est elle qui était chargée de gérer le CultureInfo. Dans le Global.asax j'instancie cette classe et modifie le Thread principal pour que les pages aient la bonne culture d'affichage des dates et données monétaires. Ca a très bien fonctionné jusqu'à ce que le problème expliqué ci-dessus arrive.

Après avoir longtemps cherché dans de nombreuses directions j'ai finalement opté pour une solution un peu expéditive. Désormais non seulement je change le CurrentThread dans le Global.asax mais aussi dans chacune des pages où je dois afficher des dates et des montants. En plus de cela, je force l'affichage culturel en incluant la variable CultureInfo provenant de la classe de gestion linguistique dans la méthode ToString.

Ci-dessous la méthode permettant de changer la langue en cours dans la classe de gestion linguistique :
Code :
1
2
3
4
5
6
7
8
public void ChangeLanguage(string codeLangue)
{	
    lngCur = new CultureInfo(codeLangue);			
    Thread.CurrentThread.CurrentCulture = lngCur;
    lngDate = new DateTimeFormatInfo();
    lngDate = lngCur.DateTimeFormat;
}
Et ci-dessous l'utilisation sur une page .aspx :
Code :
1
2
3
4
5
6
7
8
private void ShowDatas()
{
    Thread.CurrentThread.CurrentUICulture = Langue.LngCur;
    ValDateHeure.Text = MonObjet.Date.ToString(Langue.LngDate);
    ValMontant.Text = MonObjet.Montant.ToString("c",Langue.LngCur);
    [...]
}
Au final ça fonctionne bien...

Bonne journée à tous
elbj est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h37.


 
 
 
 
Partenaires

Hébergement Web