- - PR -
C#によるGUIアプリでローカライズはどうやる?
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2002-05-25 22:47
VS.NETを使い、C#でGUIアプリケーションを作って学習中です。
VS.NET開発環境のフォームデザイナで、メニューとかボタンとか貼り付けていくと、C#ソースがデザイナによって書き換えられ、メニューやボタンのテキストが、ソース中に文字列リテラルで書き込まれています。 これって、他国語にアプリケーションをローカライズする場合は、どうするのでしょう?ソースを直接変更するほかないのでしょうか? | ||||
|
投稿日時: 2002-05-26 10:58
.NET Frameworkでは組み込みで国際化対応機能がサポートされています。ドキュメントで「サテライトアセンブリ」「ローカリゼーション」あたりを検索してみてください。サンプルもついています。\\Program Files\\Microsoft Visual Studio .NET\\FrameworkSDK\\Samples\\Tutorials\\resourcesandlocalization
| ||||
|
投稿日時: 2002-05-26 18:29
情報ありがとうございます。早速調べてみようと思います。
さすがに、.NETだからといって、ローカライズの仕組みがないことはないだろうとは思っていましたが。 ざっとドキュメントを斜め読みしましたが、ローカライズできるようにするためには、従来のリソースファイル(.rc,.res)に相当するようなファイルを使用するように見受けられました。 ということは、何も考えなしにGUIアプリをVS.NET上で作ってしまうと、そのようなリソースファイル(に相当するもの?)は作られないようですから、ローカライズしづらいアプリに出来上がってしまうということでしょうか。 | ||||
|
投稿日時: 2002-05-26 20:19
うーん?まだ、C#は使いこなしてないですが。。。
下位互換+デファクトスタンダードを狙うとしたら。。。 しょうがないのでは? 新規に作ったり、概要仕様から、移植するならともかく、 過去の資産を今後、改良及び、機能追加するときに、 今後、もっと効率を上げるために、言語を変える事もあると 思うんですが。。。 これ、Cのあと、CClassが作られたのが、これに近いですよね? C++は、最終的に、中途半端に2種類できてしまいましたが。。。 完全に表面をスキンじゃないですけど、新しくして、 内部で、変換するって方法が無いともいえないですけど。。。 これだと、MS-DOSの為に、Win95,98系列を作ったり、OS/2を作ったり WinNTと、平行したような2種類必要になってしまう。。。 OS/2のような強引なマジックみたいな方法を使うか? Win2000にくらべ、重くなってる、WinXPProとか、 Win95,98系列より、ずっと、同じスペックでは重かった WinNTかつ、中途半端な互換、低次元のプログラムを組もうと思うと、2種類作らなくては ならない。。。 これでは、意味が無いと思うので、 私も、今、試行錯誤中です。 どちらかと言うと、低次元の部分で、あっちこっちぶつかってます。 SDKの中身を、たどっていくと、頭が痛くなる。。。 JISもやめ、ShiftJISもやめ、EUCもやめ、UNICODEの16ビット版のみに してしまえば、すっきりするのに。。。 出来るなら、32ビット版のUNICODEでも作って、 統一してしまえば。。。 | ||||
|
投稿日時: 2002-05-28 01:24
VS.NETで作っていれば、知らず知らずに .resファイルは作成されています。 VS6あたりに比べてずっと洗練されています。 Formを基本となる言語向けに作成し、あとは差分を作成します。 普通にコンパイルすれば、多言語対応になっています。 このとき、自動的にサテライトアセンブリが生成されました。 | ||||
|
投稿日時: 2002-05-28 01:30
余談ですが。 32ビットのUNICODEとはUCS-4のことでしょうか UCS-4は31ビットですが・・。 UCS-4のサブセットであるUCS-2は、ほぼUnicodeと同じものみたいです。 Unicodeをエンコードするときに、UTF7,8,16などが使われます。 |
1