2009-05-30 8 views
8

私は、開発者が誤ってAPIを使用していることを示す例外メッセージを参照しています。たとえば、メソッドにnullを誤って渡すつまり、開発者が最初に誤ったコードを実行した場合の例外のタイプです。システムのユーザーに表示されるべきではない例外メッセージのタイプ。開発者向けの例外メッセージはローカライズする必要がありますか?

これは、プログラミング言語が英語であるため、プログラマーはすでに英語を理解しているという理論に関係しています。少なくとも、例外メッセージを解読するのに十分なものです。

http://www.codinghorror.com/blog/archives/001248.html(ここでは、この理論の無ください議論)

そして、はい、私は、.NET Frameworkは、「ローカライズすべて」アプローチに従っていることを知っています。

+0

私はイギリス人とアメリカ人のためのメッセージがローカライズされるべきであると確信している:とNullReferenceException 公共とNullReferenceException(のコンストラクタからЬ –

答えて

19

あなたの質問は、「すべての開発者が同じエラーメッセージを表示してGoogleに送信できるようにする必要がありますか?」と言い換えることができます。 ;)

その答えは「はい」です。

翻訳は、そのメッセージがもはや意図APIを書いた人は誰でも同じです

  • ことを意味しません。それは同じ意味を持つかもしれないし、翻訳で何かを失ったかもしれない。それはひどく翻訳されるかもしれないし、場合によってはそれはまったく読めないかもしれません。
  • それを読んだ人は、単にGoogleにエラーを入力して、このエラーが発生したすべての人が何をしたのか見ることはできません。誰もが違う言語で同じエラーを起こすからです。

について.NETの「すべてをローカライズする」アプローチについては、恐ろしいことです。私はそれが無制限に、特にそれがローカライズされたリソースを見つけることができない場合は、あなたが平易な英語のバージョンを提供しないためにトリップしてきた。代わりに、実際のエラー情報を効果的に捨てて、「リソースを見つけることができませんでした」というエラーが表示されます。

+0

実際に私が求めていたものではないjal。私は開発者に彼らが間違っていたことを理解させるという点から純粋に考えていました。しかし、それは私が考慮しなかった非常に良い点です。 +1 – Simon

+1

@ jalfだから、エラーテキスト自体がローカライズされていても、すべてのIBM製品にメッセージ番号(例:DRL0122I)が付いていると思います。言語に関係なく常にメッセージ番号を検索することができます。 – paxdiablo

+1

@Pax:真実、そして良い点。それは問題の半分(人々にGoogleを許可する)を解決しますが、最初に実際にエラーを理解することについての部分ではありません。元の開発者が目標言語に堪能でない限り、あなたの翻訳は完璧ではないでしょう。 – jalf

0

これは誰がコードを維持するかによって異なります。開発者が常に英語であれば、英語ですべてを保つことが理にかなっています。

さらに、.NET Frameworkがエラーメッセージをローカライズされた方法でスローするかどうかはわかりません。私はいつもそれらのエラーメッセージは常に英語であると思っていたので、あなたの内部エラーメッセージを英語でも維持するのは意味があります。

+2

):ここではベース(Environment.GetResourceString(「Arg_NullReferenceException」)) とは、オンにする方法を尋ねる人ですオフのローカリゼーションオフ http://stackoverflow.com/questions/721337/forcing-english-language-exceptions-in-net-framework – Simon

4

いいえ、私はそうではないと思います(少なくとも、私たちはそれをしません。そして、私たちはかなり大きいです:-)。開発者についても心配することなく、ユーザーが見るすべてのものをローカライズするのに十分な努力があります。

外国語のキーワードと標準ライブラリをサポートする主流の言語はないので、英語の基本的なコマンドは既に開発者の前提条件です。

もちろん、開発者が独自のライブラリ(または言語)を開発すると、英語以外の言語をローカライズしたり自由に選ぶことができます。

2

私たちの会社では、例外/エラーメッセージをコンパイラ/ IDE用に翻訳し、これらの例外/エラーメッセージを翻訳するフレームワークを提供していますが、翻訳は自分では行いません。彼が望むなら翻訳するのは顧客次第です。英語が普及しておらず、自国の言語が促進されている国はいくつかあります。したがって、翻訳されたエラーメッセージを許可することは理にかなっています。

+3

エラーメッセージは例外メッセージと同じではありません。例外メッセージは開発者向けです。エラーメッセージはユーザー用です。エラーメッセージは翻訳する必要があります。例外メッセージは翻訳されるべきではありません。私は経営陣の言うことを気にしない。 –

+0

ほとんど常にエラーメッセージはex.Messageなので、同じものです。 –

0

例外メッセージを翻訳する場合は、例外メッセージが出現するすべてのテキストも翻訳する必要があります。これには、知識ベースやバグトラッキングシステムが含まれます。ユーザーやプログラマーは、画面上に表示される例外メッセージを検索する必要があるためです。

+1

ユーザーは例外メッセージを検索したくありません。ユーザは、「オブジェクト参照がオブジェクトのインスタンスに設定されていない」ことを理解することはおそらく期待できません。母国語でさえも意味します。実際には、プログラミング以外の観点から見ると少しばかげているようです。 –

関連する問題