ログを国際化することは意味がありますか?


8

ログを国際化するための有効なユースケースは何ですか?特に、Webアプリケーションにとって意味のある用途はありますか。

私はからWebアプリケーションが使用するロギングAPIの変換に取り組んでいるlog4jのをslf4j、インターフェイスが上抽象的に使用されていることに気づいたlog4jの実装をサポートする国際化。また、との両方が国際化log4jslf4jサポートしていることにも気付きました。

現在、国際化、エンドユーザーがログを表示できるデスクトップアプリケーションをプログラミングするときに役立ちますが、このロギングファサードは、一般的に英語を使用する必要がある開発者が、いくつかのWebアプリケーションのサーバー側でのみ使用します。 。



8
英語以外の言語でログを記録すると、オンラインでのヘルプの検索が困難になります。これは、Googleでの一致結果の量が減少するためです。
TulainsCórdova16年

4
ログにさまざまなフィルタリングルールを使用して1日を何時間も費やしています。エントリーを明らかに国際化すると、さらに困難になります
Gort the Robot

一部の人々は、彼らが実際には「いいえ、これを行うことは間違っている」ことを意味する場合downvoteのだろうか...何のためにあるのかdownvotingないことを:/
アンドレスF.

@AndresF。回答にコメントが付いている場合は、実際には同意しません。この質問は確かに答えることができますが、物事の意見ベースの側面にもあります。1つの反対票はそれほど悪くありません。
jpaugh

回答:


6

ここで与えられた答えは、開発者の視点に拘束されすぎています。ただし、ソフトウェアは人間(ユーザー)が使用(および読み取り)できるように作られています。そのほとんどは、デバッグ、ログパターン、標準などについて何も考えていません。

さまざまなレベルでアクティビティを記録する製品があるとします。この製品には、ユーザーがアクティビティを監視できるダッシュボードまたはコントロールパネルが必要です。したがって、ログトレースは、開発者や技術者ではなく、ユーザーが読み取れるようにする必要があります

さらに、ユーザーはさまざまな場所にいる可能性があります。つまり、ログの日付形式、数値および通貨記号などは、ユーザーの場所に応じて適切に移動する必要があります。

そのような状況で、なぜログをローカライズすべきではないのですか?

ログは機械で読み取り可能である必要がありますが、並列ログプロセスをもう少しユーザーフレンドリーに実装することを妨げるものは何もありません。

ログの標準言語は英語に同意します。しかし、これらすべての「標準」はデファクト標準です。したがって、この時点では、柔軟でなければなりません。

そうは言っても、slog4jローカリゼーション機能を使用する正当な理由がある場合は、先に進んでください。それは正当な理由で作られました。

これらの理由の1つは、今日のアプリケーションが世界中のコンテキストで実行されており、誰もがあなたの言語(または英語)を話したり、読んだり、書いたりするわけではないことです。多分、あなたの製品のヘルプデスクでさえそうではありません。


あなたは良い点を作る。ロギングフレームワークを使用して(国際化された)メッセージをエンドユーザーに送信することは理にかなっています。すでにそこにあるのに、なぜロギングを再発明するのか
jpaugh

1
カスタマイズの問題だと思います。追加機能が必要です。しかし、私たちはしばしば「車輪を再発明」します:-)
Laiv

2
自分で作ったホイールを持っています。史上最高のホイールです!他のものよりも光沢があり、丸みがあります。ただし、既存の車には適合しません。私は自分のホイールに合うように車を作る必要があります... ;-)
jpaugh

11

開発者が「ログ」について話すとき、彼らはほとんどの場合、それらをログに記録した特定のコードのコンテキスト外では意味がなく、何か問題が発生したときにそのコードをトラブルシューティングする以外に意図されていない情報を含むプレーンテキストファイルを参照しています。

開発者が「国際化」について話すとき、彼らはほとんどの場合「ユーザーが言語Xの話者である場合、デフォルトの文字列の代わりに言語Xに翻訳された文字列を使用する」ことを意味します。

これらの特定の定義を考えると、国際化されたログはほとんど常に悪い考えです。

  1. 通常、という言語のセットすべてのあなたの開発者の流暢に話すことができますがという言語のセットよりも多くの小さい任意のユーザーのは、ネイティブスピーカーであるかもしれない。したがって、あなたはログを国際あれば、それはより多くの可能性があります以下というあなたの開発者は意志それらを理解することができません。

  2. 通常、ほとんどのユーザーは、使用しているソフトウェアのアクティブなメンテナーではありません。したがって、英語を話さない顧客は、ログが国際化されていても、ログを理解できません。ログメッセージのほとんどは、特定のコードの断片と、実装すべきではないさまざまな実装の詳細に関するものであるためです。知っている。

  3. メッセージの国際化は、そのメッセージをテキスト検索する機能を完全に無効にします。開発者がコードを検索する場合でも、ユーザーがインターネットで回避策を検索する場合でも同様です。

  4. 国際化は、ソフトウェアのトラブルシューティングのコンテキストでは完全に受け入れられない翻訳エラーまたは微妙なあいまいさの可能性をもたらします。これは、タイムゾーンを明示せずにタイムスタンプを記録するのと同じ問題です。あなたは常にそれが実際に何を意味するのかを理解するために時間を浪費しなければなりません。


もちろん、私が始めたこれらの定義と仮定を緩和すると、いくつかの有効なユースケースがあります。

一般に、「国際化されたログ」は、平均的なユーザーにとって意味のある、簡単に識別できるログメッセージのサブセットある場合、および「国際化された」が開発者のデフォルトの言語ログと並んでユーザーの言語での別個のログを意味する場合に潜在的に役立ちます。

実際には、あなたが「国際化ログ」呼び出すことができます何かが実際に有用であるならば、それはおそらく、とにかくアプリケーションの機能になるだろう。

いくつかの種類のビデオゲーム、特にボードゲームのように動作するビデオゲームがこれを行います。

ここに画像の説明を入力してください

出典:Blood Bowl、https://www.youtube.com/watch?v = UyQB4kDMZzEから取得したスクリーンショット

「ログ」が非常に有用または重要な機能であると考えられる場合、単なるテキストファイルではなく、適切なデータベースになる可能性が高くなります。販売追跡ソフトウェアは、この典型的な例です。

ここに画像の説明を入力してください

出典:http : //www.everlogic.com/i-want-to/see-screenshots/

これらの「ログ」と呼ぶかどうかに関係なく、これらの画像に表示されるテキストは、これらの問題を維持する場合に明らかに国際化したいものです。


あなたは私の視点から来ています。しかし、既存のロギングAPIを再利用してステータスメッセージをユーザーに送信することは、今考えれば非常に理にかなっています。UIのカスタムアドホックロガーを作成するよりも、ロギングに国際化を追加する方が簡単です。
jpaugh

日本語にローカライズされたバージョンでのみ発生するバグがあるとします。そして、開発者は、バグの特定と修正を非常に簡単にするロギングを追加しました。ロギングが日本語であり、
どの開発

問題ありません。エラーの原因となったエラーコードと入力データを教えてください。:-)
Laiv
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.