2009-05-30 10 views
8

Mi riferisco ai messaggi di eccezione che mostrano che lo sviluppatore utilizza in modo errato un'API. Ad esempio, passare in modo errato un null al metodo. Quindi il tipo di eccezione che lo sviluppatore otterrà la prima volta che hanno eseguito il loro codice errato. Il tipo di messaggio di eccezione che non dovrebbe mai essere visualizzato all'utente di un sistema.I messaggi di eccezione indirizzati allo sviluppatore dovrebbero essere localizzati?

Questo è un po 'correlato alla teoria che dal momento che il linguaggio di programmazione è in inglese, il programmatore ha già una conoscenza dell'inglese. O almeno quanto basta per decifrare un messaggio di eccezione.

http://www.codinghorror.com/blog/archives/001248.html (si prega di nessuna discussione di questa teoria qui)

E sì, lo so che il framework .NET segue l'approccio "localizzare tutto".

+0

Sono sicuro che i messaggi per gli inglesi e gli americani dovrebbero essere localizzate: Ь –

risposta

19

La tua domanda può essere riformulata come "dovrebbe tutti gli sviluppatori ottenere lo stesso messaggio di errore in modo che possano Google?" ;)

E la risposta è sì.

Traduzione significa che

  • il messaggio non è più lo stesso di chi ha scritto l'API previsto. Potrebbe avere lo stesso significato o potrebbe aver perso qualcosa nella traduzione. Potrebbe essere mal tradotto e in alcuni casi potrebbe essere addirittura illeggibile.
  • Chiunque legga non può semplicemente digitare l'errore in Google e vedere cosa hanno fatto tutti gli altri che hanno ricevuto questo errore. Perché tutti gli altri hanno lo stesso errore in una lingua diversa.

Informazioni sull'approccio "localizza tutto" di .NET, è orribile. Sono stato inciampato da esso innumerevoli volte, soprattutto perché se non è in grado di trovare la risorsa localizzata, lo fa non fornire la versione inglese normale. Ti dà invece un errore "Impossibile individuare la risorsa", eliminando in modo efficace le informazioni di errore effettive.

+0

In realtà jal non è quello che stavo chiedendo. Stavo pensando semplicemente al punto di far capire allo sviluppatore cosa hanno fatto di sbagliato. Ma è un ottimo punto che non ho considerato. +1 – Simon

+1

@jalf, penso che sia per questo che ogni prodotto IBM abbia numeri di messaggio (ad esempio, DRL0122I), anche se il testo di errore stesso potrebbe essere localizzato. Puoi sempre cercare il numero del messaggio indipendentemente dalla lingua. – paxdiablo

+1

@Pax: vero, e un buon punto. Ciò risolve metà del problema (consentendo alle persone di google), ma non la parte relativa alla reale comprensione dell'errore in primo luogo. A meno che lo sviluppatore originale non parli correntemente la lingua di destinazione, è improbabile che la traduzione sia perfetta. – jalf

0

Tutto dipende da chi manterrà il codice. Se gli sviluppatori saranno sempre in inglese, allora ha senso tenere tutto in inglese.

Inoltre, non sono sicuro che .NET Framework trasmetta i suoi messaggi di errore in modo localizzato. Ho sempre pensato che quei messaggi di errore fossero sempre in inglese, quindi avrebbe senso tenere i tuoi messaggi di errore interni anche in inglese.

+2

dal costruttore di NullReferenceException NullReferenceException pubblica(): base (Environment.GetResourceString ("Arg_NullReferenceException")) e qui è qualcuno che chiedeva come trasformare off localization for exceptions http://stackoverflow.com/questions/721337/forcing-english-language-exceptions-in-net-framework – Simon

4

No, non penso che dovrebbero essere (o almeno non lo facciamo, e siamo abbastanza grandi :-). C'è abbastanza impegno per localizzare tutto ciò che gli utenti vedono senza doversi preoccupare anche degli sviluppatori.

Non ci sono lingue tradizionali che supportano le parole chiave in lingua straniera e le librerie standard, quindi un comando rudimentale della lingua inglese è già un prerequisito per gli sviluppatori.

Ovviamente, se gli sviluppatori sviluppano le proprie librerie (o lingue), sono abbastanza liberi di localizzare o scegliere una lingua diversa dall'inglese.

2

Presso la nostra azienda permettiamo che le eccezioni/i messaggi di errore vengano tradotti per il nostro compilatore/IDE e forniamo il framework per tradurre queste eccezioni/messaggi di errore, tuttavia non eseguiamo noi stessi la traduzione. Quindi spetta al cliente tradurre se lo desidera.Ci sono un certo numero di paesi in cui l'inglese non è così popolare e dove viene promossa la propria lingua. Quindi ha senso consentire i messaggi di errore tradotti.

+3

Un messaggio di errore non è uguale a un messaggio di eccezione. I messaggi di eccezione sono per gli sviluppatori. I messaggi di errore sono per gli utenti. I messaggi di errore devono essere tradotti. I messaggi di eccezione non devono essere tradotti. Non mi interessa cosa dice la direzione. –

+0

Quasi sempre i messaggi di errore sono ex.Message in modo che siano la stessa cosa. –

0

Se si traducono i messaggi di eccezione, si dovrebbero anche tradurre tutti i testi in cui si verificano messaggi di eccezione. Ciò include qualsiasi sistema di knowledge base o sistema di tracciatura dei bug che hai, perché gli utenti e i programmatori vorranno cercarli per il messaggio di eccezione che vedono sullo schermo.

+1

Gli utenti non vogliono cercare messaggi di eccezione. Non ci si può aspettare che gli utenti capiscano cosa "il riferimento all'oggetto non è impostato su un'istanza di un oggetto". significa, anche nella loro lingua madre. In realtà sembra un po 'sciocco se visto da una prospettiva non di programmazione. –