2010-10-14 29 views
1

Le titre de la question est essentiellement toute la question. Dans ASP.NET, vous pouvez définir les propriétés Culture/UICulture d'une page en remplaçant la méthode InitializeCulture ou vous pouvez définir les propriétés du thread en cours.Globalisation .NET: définir Culture/UICulture sur une page ou un thread? Quelle est la différence?

Quelles sont les différences? Quels sont les avantages/inconvénients des deux? Dans quelles situations utiliseriez-vous chaque option?

+0

Là vous allez: http://support.microsoft.com/kb/306162 –

Répondre

3

Les deux approches définissent finalement les propriétés sur l'unité d'exécution en cours. La plus grande différence est que les méthodes Page prennent en charge la détection automatique de la langue - elles peuvent déterminer la langue à partir de la requête (si vous définissez la valeur sur "auto", avec une valeur par défaut facultative). En revanche, les méthodes Thread nécessitent une instance de culture spécifique. Pour une application web, j'utiliserais simplement les méthodes Page, car elles fournissent des options supplémentaires et me sauvent le (bien que trivial) problème de construction d'une instance CultureInfo moi-même.

+0

Brillant, cela a du sens. Un suivi rapide cependant .. comment le langage est-il détecté à partir de la requête? – Liggi

+0

Il y accède via [HttpRequest.UserLanguages] (http://msdn.microsoft.com/en-us/library/system.web.httprequest.userlanguages.aspx), qui analyse les en-têtes HTTP de la requête. (Je * pense * l'en-tête 'Accept-Language', peut-être' Content-Language'.) –