2009-09-29 6 views
0

Je rencontre un problème avec une culture personnalisée lors du débogage sur ma machine locale. J'ai un site web qui a un fichier resx séparé pour les utilisateurs internes vs externes (la terminologie est différente)Problème lors du débogage de la culture personnalisée

Nous implémentons cela en utilisant une culture personnalisée en-GB-externe et resx associé. Les clients internes utiliseraient le fichier en-GB resx.

Sur un PC lors du débogage, je reçois uniquement le fichier en-GB.resx, pas le fichier en-GB-internal.resx. Cependant, si je construis le code et le dépose sur un serveur, et navigue depuis le même PC cela fonctionne.

Si je débogue le même code (extrait de svn) sur un autre PC cela fonctionne très bien.

Où puis-je même commencer à chercher pour déterminer pourquoi cela ne fonctionne pas lors du débogage sur un PC?

+0

Est-ce toujours un problème? Pouvez-vous poster votre logique/code pour implémenter les fichiers en-gb.resx vs en-gb-internal.resx? –

Répondre

0

Nous avons suivi l'exemple msdn de l'implémentation de cultures personnalisées. Cependant, nous passons ensuite aux cultures aussi tôt que possible dans le cycle de vie de la page. Le problème ci-dessus a été résolu en ayant les différents utilisateurs se connecter sur 2 pages différentes. Nous remplaçons ensuite InitializeCulture:

protected override void InitializeCulture() 
    { 
     SetCulture("en-GB-Internal"); 
     base.InitializeCulture(); 
    } 
public void SetCulture(string nameOfCulture) 
    { 
     CreateCultureCookie(nameOfCulture); 
     SetCurrentThreadCultureFromCultureCookie(); 
    } 

    public void CreateCultureCookie(string name) 
    { 
     CultureInfo culture = new CultureInfo(name); 

     HttpCookie cultureCookie = new HttpCookie("CultureCookie", culture.Name); 
     cultureCookie.Expires = DateTime.Now.AddDays(30); 

     AddCookie("CultureCookie", cultureCookie); 
    } 
private void SetCurrentThreadCultureFromCultureCookie() 
    { 
     if (Request.Cookies["CultureCookie"] != null && Request.Cookies["CultureCookie"].Value != null) 
     { 
      CultureInfo culture = new CultureInfo(Request.Cookies["CultureCookie"].Value); 
      Thread.CurrentThread.CurrentCulture = culture; 
      Thread.CurrentThread.CurrentUICulture = culture; 
     } 
    } 
0

Vérifiez les paramètres de culture d'IE peut-être.

+0

J'ai - et si c'était IE, cela ne fonctionnerait-il pas aussi pour le site distant? – Bernard

Questions connexes