2012-04-03 6 views
2

私は多国籍プロジェクトに取り組んでいます。ここでは、ログのターゲットユーザーは2つの国籍からなる可能性があります。したがって、2つ以上の言語でログインすることが重要になってきています。何かをログに記録するたびに言語に基づいて2つの異なるログフォルダに書き込むことを考えていますが、 log4cppのようなロギングフレームワークで?C++を使用してローカライゼーションを行うための最善のアプローチ

+4

ログは開発者のためのもので、英語で書かなければなりません。そうすれば、他の言語を理解していない人が問題をデバッグしなければならないときに作業する必要がなくなります。 –

+0

@RafałRawickiおそらく、ログを見たい多くの開発者グループがいるでしょう。 –

+1

@RafałRawicki:私の経験では誰も最初の言語が英語ではないチームで英語を使用するように全員に統一性はコミュニケーションを犠牲にする価値がないと教えてくれました。チームが最もよく知っている言語を使用してください。さらに、ウェブサーバを含む多くのアプリケーションは、第1言語が普遍的に英語でないかもしれないエンドユーザ(例えば、システム管理者)のためのロギング機能を提供する。我々のシステムログの –

答えて

1

他のコメント作成者が触れたように、多言語ロギングを行うことで間違ったトラックをダウンしているようです。

私の推薦は、英語を使用することです(技術情報の標準である、とされ、私は推測するが、あなたは最高の知っている言語である)と、使用言語があることを確認する明らか、文法的に正しいは曖昧でないです。技術者の一人が理解できない場合、Google翻訳などの機械翻訳エンジンを使用して技術者を非常に簡単かつ効率的に実行できます。または、実際には、ログを処理してGoogle翻訳を介してすべてを実行して、特に言語コンテンツにマークを付けるためにログに注釈を付けると、翻訳されたテキストを追加することができます。

入力言語がうまく書かれていると仮定すると、機械翻訳は通常エンドユーザーが理解できる良い結果をもたらします。メッセージが明確ではなく、タイプミスや略語がある場合は、それが見事に失敗します。

+1

私はこの答えにもう一つのポイントを追加します。各ログメッセージに一意のIDを付けます。そうすれば、ログメッセージを理解できなくても、ログエントリを生成したコード行を特定できます。 –

0

ログを書くことは、ファイルのオープン、シーク、および書き込み操作の一部として実行速度が低下するため、自然に実行速度が低下します。

これは、多くの開発者とアーキテクトが異なるレベルでログを書き込むことを提案する主な理由の1つです。ログエントリの深度を増やすほどレベルが上がり、問題が改善されます。より高いレベルでは、より多くのログエントリが生成されるため、プロセスの速度が低下することがわかります。

言語を他言語に翻訳できるサービスを使用することをお勧めします。 この翻訳は無料または有料のライブラリがあると確信しています。バックグラウンドで実行される小さなユーティリティプログラムを作成し、プロセスのアイドル時間中にこの変換を実行できます。

0

まあ1つの提案は、あなたがそこからログインすることができ、あなたのログメッセージをリッスン異なるプロセス/スレッドを使用することができます..です

これはあなたのメインのプロセス/スレッドでI/Oのログ時間を短縮し、私はわからないのに..私はあなたがWIDECHAR文字列で書いてみてくださいすることができると思いリンガルサポート..

0

するための最良のアプローチ - あなたはマルチについて

...あそこログ言語に関連するすべての変更を行うことができますC++を使用したロギングのローカライゼーション

Install Qt 4文字列にQObject :: tr/tr()マクロを使用します。必要な言語で文字列を書いてください。 QT Linguistを使用して文字列をローカライズするための翻訳者を取得します。

あなたの翻訳者が天才であっても、完璧な翻訳は不可能なので、多くの「面白い」誤解がありますのでご注意ください。プログラミングチームの主な言語を選択する方がよいでしょう。それにアプローチする1つの方法は、ログリーダーを実装することで、複数の言語で

:前

--EDIT--

は、この部分に気付きませんでした。プレーンテキストメッセージを書く代わりに、メッセージID(何らかの種類のマクロによって生成された)と、文字列がフォーマットされている場合は文字列引数をダンプすることができます。 「ログリーダー」を使用すると、ログファイルを表示しながら言語を選択し、QTranslatorと同様のメカニズムを使用してID /引数に基づいてメッセージを翻訳できます。このアプローチの良い点は、後で言語を追加できることです。古いログを再変換することが可能になります。悪い点は、このフォーマットは "普通の人間"のために読みにくいが、メッセージIDと引数に加えて平文メッセージを追加することができるが、ログビューアを書く必要があるということだ。

Qt 4にはこのフレームワークのほとんどが実装されています(バリアントをテキスト/データストリームにダンプするルーチンなどがあります)。詳細については、QTranslatorのドキュメントとLinguist manualを参照してください。

+0

ログメッセージのローカライズについては、両方ではなくログに1つの言語が表示されます。 OPは両方の言語のメッセージが利用できるようにログを取る方法について尋ねています。 – Clafou

関連する問題