Visual C++でウィンドウアプリケーション(Win32 API)を開発しました。このアプリケーションで多言語機能を追加する必要があります。いずれかのPlsが私にこの作業を進める方法を教えてくれるでしょうか?win32 APIアプリケーションのグローバリゼーション/多言語機能の実装
答えて
Windows上の多言語アプリケーションの基本は「リソース」の使用です。リソースは、実行可能ファイルの末尾に追加されたチャンクです。このチャンクは、データのみを含み、Windowsがそれらのデータを解釈できるように、非常に特殊な方法でフォーマットされています。
あなたのリソースには、ダイアログボックス、文字列テーブルだけでなく、バージョン情報(エクスプローラでファイルのプロパティダイアログボックスに表示されるもの)があります。 Visual C++でexeまたはdllを開くと、dllまたはexeのリソースを見ることができます。アプリケーションを開発するときは、リソース(ファイル/新規)を作成し、プロジェクトに追加し(ファイルを追加するときと同じ)、リソースを編集します(リソースエディタを使用します。プロジェクトエクスプローラで)。
各リソース(ダイアログ、ダイアログ、テンプレート、バージョン情報、文字列テーブルなど)には、変更可能な言語識別子が含まれています。異なる言語識別子を使用して同じリソースを複数回作成することができます。コンパイルされると、アプリケーションがWindowsによってロードされると、言語がWindows UI言語に近いリソースを開こうとします。
Windows SDKには、LoadString、LoadCursor、LoadBitmap、およびresources chapterのすべてのリソースを有効に活用するための一連の関数が定義されています。
コードで文字列を使用するたびに、文字列テーブルリソースに格納し、LoadString関数を使用してその文字列を取得します。ウィンドウとダイアログボックスは、一般的に、リソースに正しい言語識別子を設定している限り、特定の関数呼び出しを必要とせずに正しい言語でロードされます。
voila、それは私ができるWindowsの多言語開発への最も短い導入です。私はあなたがネット上のWindowsの下でリソースや多言語開発に関する多くのよく書かれた記事を見つけることができると確信しています。
すべての文字列にgettextを使用します。
WindowsはWindowsに言いました。Windowsには、Un * xから移植されたライブラリよりも、これを行うためのより多くのネイティブツールが用意されています。 –
gettextはWindowsの貧弱な文字列リソースよりもはるかに多くを提供します。元の翻訳が変更される状況を管理すること。 gettextはそれを明確にするので、すべての翻訳者は翻訳を更新する必要があり、翻訳者には前の翻訳のヒントが提供されます。 –
このはですはあなたのプログラムが何をするかによって大きな問題や小さな問題になります。見て
もの:
文字列と文字エンコーディング。文字列をリソースに入れる(またはgettextを使用する)ことは始まりですが、文字列を内部的に格納する方法を検討することもできます。例えば。このようなエンコーディングをまだ使用していない場合は、UTF-16のようなUnicodeエンコーディングを調べてください。
文字列データをどのように処理して格納するかを考慮してください。ソートや大文字と小文字の区別は必要ですか? ASCII順(例えば、 'char'の単純な値を比較するなど)は正しいとは限りません。これらの懸念の一部は、hereで概説されています。
日付と時刻の出力形式、お金の出力形式などは文化によって異なります。
最後に、使用しているインターフェイス技術に応じてUI要素を再レイアウトする必要がある可能性があります。文字列は、さまざまなシステムフォントを使用して、さまざまな遅れで長くなったり短くなったりします。極端な場合は、右から左の読者のレイアウトを考慮する必要があります。
あなたが心配する必要は、いくつかの側面があります。
- が、それは別の言語を「話す」
- 利用ロケールを作るユニコード
- ローカライズ(翻訳)アプリケーションとしてアプリケーションをコンパイルしますあなたがソートしなければならない、または日付/時刻/数字をフォーマットする必要がある場合の動作
ローカライゼーションの最善の方法は、コード内に文字列を使用せず、リソース専用のDLL(または「サテライトDLL」)に格納することです。 おそらくここから開始するのが最も良いでしょう。http://msdn.microsoft.com/en-us/goglobal/bb978454.aspx、特にチュートリアルと右側のプレゼンテーション細部までローカライズ作業のため
、あなたはこれをチェックすることができます:あなたはGetNumberFormatまたはてgetDateFormatのような特別なAPIを使用する必要がロケール対応行動についてhttp://mihai-nita.net/2007/05/03/how-to-localize-an-rc-file/
を。 おそらくここから始めることができますhttp://msdn.microsoft.com/en-us/library/dd319078%28VS.85%29.aspxまたはここにhttp://msdn.microsoft.com/en-us/goglobal/dd565826.aspx
もちろん、トピックに関する全書籍があるので、ここでは答えはありません。 MSのグローバリゼーションポータル(http://msdn.microsoft.com/en-us/goglobal/)、特に "Learn"タブから始め、そこからoを始めてください。
あなたがいくつかの問題にぶつかったら(おそらくそうです)、microsoft.public.win32.programmer.internationalのニュースグループに立ち寄ってください(私は知っています、誰かをstackoverflowから遠ざけることは良いフォームではないかもしれませんが、専用の場所があるので、より良い回答が得られるかもしれません)。
- 1. MVC3の多言語実装剃毛
- 2. buddypressでの多言語実装
- 3. 多言語djangoサイトの検索機能
- 4. 多言語機能のサポートWindows phone 7
- 5. Java/Swingアプリケーションで多言語を実装する方法は?
- 6. 多言語APIのコンテンツ言語
- 7. 剣道UIグローバリゼーション/言語パック
- 8. 多言語HTML5アプリケーション
- 9. 多言語アプリケーションUI
- 10. 多言語PHPクラス - ショートカット機能
- 11. iPhoneでの多言語アプリケーション
- 12. WP7の多言語アプリケーション
- 13. Verilogの "大多数"機能の実装
- 14. 機能的な言語でESB(Enterprise Service Bus)を実装する
- 15. クイックソートを機能的言語で実装する
- 16. SilverlightとWPFで多言語アプリケーションを実装する最良の方法
- 17. 実装言語の選択
- 18. REST API、多言語設計
- 19. 多言語MVC 4アプリケーション
- 20. Asp.net多言語Webアプリケーション
- 21. K2 blackpearl多言語アプリケーション
- 22. DataAnnotationsと多言語Webアプリケーション
- 23. 多言語を使用したコードビハインドからUWPアプリケーションに異なる言語を実装します
- 24. Zend Frameworkで多言語を実装する最良の方法
- 25. Windows CEでの多言語アプリケーションのサポート?
- 26. 多言語Javaアプリケーションのフォントの問題
- 27. プログラミング言語機能
- 28. 地域の言語の辞書アプリケーションを実装する
- 29. PHP - 多言語アプリケーションの設計
- 30. 私のAndroidアプリケーションで多言語サポート
多言語対応のこのようなテキストを書き留めてくれてありがとう –