Domanda

Come posso fare in modo che la mia applicazione usi sempre l'inglese quando visualizzo i messaggi di eccezioni win32 / .net?

Ho ricevuto questo messaggio, sembra che qualcuno abbia usato babelfish per tradurlo (è svedese): " System.ComponentModel.Win32Exception: Programmet kunde inte starta eftersom programmets sida-vid-sidakonfiguration är felaktig. "

Estremamente inutile, e Google ha avuto 4 enormi successi, nessuno dei quali è stato utile. Quindi devo indovinare quale fosse il messaggio originale e cercarlo su Google. (Era: " Impossibile avviare l'applicazione perché la sua configurazione side-by-side non è corretta. & Quot;)

Questa volta è stato abbastanza semplice scoprire quale fosse il messaggio di errore originale, avere il messaggio in inglese dall'inizio mi avrebbe sicuramente fatto risparmiare tempo.

Quindi, come posso farlo?

È stato utile?

Soluzione

Puoi provare a impostare Thread.CurrentThread.CurrentUICulture e / o .CurrentCulture su CultureInfo (" en-US ") .

Altri suggerimenti

Un motivo in più per cui le eccezioni non dovrebbero essere tradotte (male). Quando si registrano le eccezioni, muc ha più senso farlo in una sola lingua. Non riesco a credere che Microsoft non abbia pensato a un modo per farlo diverso da UICulture, che è fondamentalmente una non opzione :(

Se si tratta di un'applicazione ASP.NET, è possibile impostare la lingua dell'interfaccia utente in web.config (*):

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

Per altre applicazioni, le impostazioni internazionali dell'utente corrente vengono utilizzate per impostazione predefinita e devi sostituirla esplicitamente, ad es. Thread.CurrentUICulture = new CultureInfo (" en-US ").

(*) avvertenza: se un errore nel file di configurazione comporta la generazione di un'eccezione prima dell'elaborazione dell'elemento, otterrai uiCulture predefinito.

Forzare la visualizzazione delle eccezioni in una lingua diversa sembra un po 'duro per l'utente ... puoi visualizzare un codice di errore insieme al messaggio? Quindi l'utente otterrà qualcosa che può capire e puoi cercare il codice di errore per la versione tradotta.

Non sono un tipo .net, quindi non so se sia possibile, solo un'idea.

  

Come posso fare sempre la mia domanda   usa l'inglese quando visualizzi win32 / .net   messaggi di eccezioni?

Prima di tutto, non mostra agli utenti messaggi di eccezione win32 / .net . Dovresti gestire le eccezioni anziché mostrarle all'utente.

Per impostazione predefinita, i messaggi di eccezione verranno visualizzati nella lingua dell'interfaccia utente corrente (se è installato il language pack appropriato, altrimenti ritornano all'inglese). Puoi modificare i messaggi di eccezione cambiando Thread.CurrentThread.CurrentUICulture proprietà, tuttavia influenzerà l'intera GUI della tua app.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top