29 votes

Empêcher que les messages d'exception soient traduits dans la langue de l'utilisateur ?

Comment faire pour que mon application utilise toujours l'anglais lors de l'affichage des messages d'exceptions win32/.net ?

J'ai reçu ce message, il semble que quelqu'un ait utilisé babelfish pour le traduire (c'est du suédois) : "System.ComponentModel.Win32Exception : Programmet kunde inte starta eftersom programmets sida-vid-sidakonfiguration är felaktig."

Extrêmement inutile, et Google a obtenu quatre résultats pour cette question, dont aucun n'était utile. Je dois donc deviner quel était le message original et le chercher sur Google. (C'était : "L'application n'a pas réussi à démarrer car sa configuration côte à côte est incorrecte").

Cette fois, il a été assez simple de trouver le message d'erreur d'origine. Le fait d'avoir le message en anglais dès le départ m'a bien sûr fait gagner du temps.

Alors comment je fais ça ?

8voto

Alexander Kojevnikov Points 9389

Vous pouvez essayer de régler Thread.CurrentThread.CurrentUICulture et/ou .CurrentCulture a CultureInfo("en-US") .

2voto

Joe Points 60749

S'il s'agit d'une application ASP.NET, vous pouvez définir la langue de l'interface utilisateur dans web.config (*) :

<system.web>
    <globalization ... uiCulture="en-US" ... />
</system.web>

Pour d'autres applications, les paramètres régionaux de l'utilisateur actuel sont utilisés par défaut, et vous devez les remplacer explicitement - par exemple Thread.CurrentUICulture = new CultureInfo("en-US").

(*) Attention : si une erreur dans le fichier de configuration entraîne la levée d'une exception avant le traitement de l'élément, vous obtiendrez l'uiCulture par défaut.

2voto

MrZebra Points 6508

Forcer les exceptions à s'afficher dans une autre langue semble un peu dur pour l'utilisateur... pouvez-vous afficher un code d'erreur avec le message ? Ainsi, l'utilisateur obtiendra quelque chose qu'il pourra comprendre, et vous pourrez rechercher le code d'erreur pour la version traduite.

Je ne suis pas un spécialiste de .net et je ne sais pas si cela est possible, mais c'est juste une idée.

2voto

Raison de plus pour ne pas (mal) traduire les exceptions. Lorsque vous enregistrez des exceptions, il est beaucoup plus logique de le faire dans une seule langue. Je n'arrive pas à croire que Microsoft n'ait pas pensé à un autre moyen de faire cela que UICulture, qui est en fait une non-option :(

0voto

aku Points 54867

Comment faire pour que mon application utilise toujours l'anglais dans l'affichage des messages d'exceptions win32/.net dans les messages d'exception win32/.net ?

Tout d'abord, ne pas montrer les messages d'exception win32/.net aux utilisateurs . Vous devez gérer les exceptions plutôt que de les montrer à l'utilisateur.

Par défaut, les messages d'exception sont affichés dans la langue de l'interface utilisateur actuelle (si le pack de langues approprié est installé, sinon ils reviennent à l'anglais). Vous pouvez modifier les messages d'exception en changeant Thread.CurrentThread.CurrentUICulture mais cela affectera l'ensemble de l'interface graphique de votre application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X