C#で質問です

157 views
Skip to first unread message

たろサ

unread,
May 18, 2011, 11:10:52 PM5/18/11
to Android勉強会inWAKAYAMA
 山本です。

 C#で質問なのですが、C#でプログラムを作ることになりまして、とりあえず日
本語環境なのですが、用途が生産装置のコントロールソフトで、将来、中国など
に持っていくことも考えられるというのです。

 中国にもって言った場合は、中国語の表示に変えることになるという話しなの
ですが、プログラムするときに、どのように作っておけば、多言語対応が楽にな
るのでしょうか。

 テクニックがありましたら、教えてください。

 よろしくお願いします。

 Androidの話でなくてすいません。Androidの多言語化は、言語ごとのxmlを用
意する感じです。


--
山本三七男 (Minao Yamamoto) ---------------- ハンドル:たろサ -----
E-Mail: taro...@gmail.com

Masuzawa

unread,
May 19, 2011, 6:01:52 AM5/19/11
to androidi...@googlegroups.com
増澤です。

時間たっているので、もう調べが付いているかもしれませんが。
C#の多言語対応です。

↑この辺りが参考になります。

2通りの対応が必要です。
・Form上の文言の多言語化
・Form以外の(たとえばメッセージとか)文字の多言語化
この2つは方法が若干異なります。

Formの多言語化は、比較的簡単で
すべてのコントロールの配置が終わった時点で、以下の対応をします。
Formのプロパティに
LocalizableとLanguageというプロパティがあるのですが、
これを、
Localizable=True
Language=(翻訳対象の言語)
に設定し、そのあと各コントロールのキャプションを、翻訳対象の言語で設定します。
そうすると、Formのresxというファイルに、多言語版のファイルが追加されます。
この対応は、最後に翻訳するときにやればいいので、開発中は気にしなくていいですね。

もう1つのメッセージ等で使う文字列の翻訳ですが、
こちらは、ファイルの追加からアセンブリリソースファイルを追加し、そこで文字列を定義して
ソース内はその文字列を参照するようにします。
(アセンブリリソースファイルは自動的にクラスを生成してくれるのでソースからは、
 リソースファイル名.名前 で呼び出せます。)

中国語版を作るなら、さらにアセンブリリソースファイルを追加し、ファイル名を
(もとのアセンブリリソースファイル名).zh-Hans.resx ←簡体字の例です。
で付けて、各文字列を中国語で定義すれば、完了です。

普通は端末のカルチャに応じて勝手に切り替わりますが、
プログラムから明示的に言語を切り換える場合は
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ja");
みたいにやると、切り替わってくれるみたいです。

なので、開発中は、UI以外の文字列リソースをリソースファイルを参照するようにしておけばOKかと。

以上です。


2011年5月19日12:10 たろサ <taro...@gmail.com>:

たろサ

unread,
May 22, 2011, 5:48:25 AM5/22/11
to androidi...@googlegroups.com
 山本です。

 丁寧な解説ありがとうございます。

 何とかなりそうですね。
 ここしばらくは、Androidを保留して、C#やりたいと思います。

 C#でPCIバスを直接制御しなくちゃいけないようです。制御サンプルはあるみ
たいです。
 他にも、シリアル通信もしつつ、Socket通信もして、データ収集しながら、信
号解析し最適データを抽出するという、私とすればめっちゃ面白そうなプログラ
ムです。(納期無ければね(^^;)

 システムの完成イメージを見せてもらったのですが、1.5m×1.5m×2mくらいの装
置でした。そういえば、エマージェンシの仕様も何パターンかあって、厳しかっ
たです。

 ではでは。

 C#に行き詰ったときには、また、教えてください。未だに、DOCレイアウトに
慣れません。

> 2011年5月19日12:10 たろサ <taro...@gmail.com <mailto:taro...@gmail.com>>:


>
>  山本です。
>
>  C#で質問なのですが、C#でプログラムを作ることになりまして、とりあえず日
> 本語環境なのですが、用途が生産装置のコントロールソフトで、将来、中国など
> に持っていくことも考えられるというのです。
>
>  中国にもって言った場合は、中国語の表示に変えることになるという話しなの
> ですが、プログラムするときに、どのように作っておけば、多言語対応が楽にな
> るのでしょうか。
>
>  テクニックがありましたら、教えてください。
>
>  よろしくお願いします。
>
>  Androidの話でなくてすいません。Androidの多言語化は、言語ごとのxmlを用
> 意する感じです。
>
>
> --
> 山本三七男 (Minao Yamamoto) ---------------- ハンドル:たろサ -----

> E-Mail: taro...@gmail.com <mailto:taro...@gmail.com>

たろサ

unread,
May 26, 2011, 12:57:32 PM5/26/11
to androidi...@googlegroups.com
 こんにちは、山本です。

 C#で質問その2です。

 装置のステージをXY方向に動かすために、画面にボタンを用意するのですが、
ボタンのTextに"▲"と"▼"を書いて、Y方向の移動ボタンとして表示できるのです
が、X方向は、"▲"と"▼"と90度横向けてTextを書きたいのですが、無理なので
しょうか。

 素直に、ボタンにイメージを貼り付けたほうが賢いのでしょうか。

 すいません、教えてください。m(_ _)m


(2011/05/19 19:01), Masuzawa wrote:

> 増澤です。
>
> 時間たっているので、もう調べが付いているかもしれませんが。
> C#の多言語対応です。
>
> http://codezine.jp/article/detail/3288
> <http://codezine.jp/article/detail/3288>↑この辺りが参考になります。
>
> 2通りの対応が必要です。
> ・Form上の文言の多言語化
> ・Form以外の(たとえばメッセージとか)文字の多言語化
> この2つは方法が若干異なります。
>
> Formの多言語化は、比較的簡単で
> すべてのコントロールの配置が終わった時点で、以下の対応をします。
> Formのプロパティに
> LocalizableとLanguageというプロパティがあるのですが、
> これを、
> Localizable=True
> Language=(翻訳対象の言語)
> に設定し、そのあと各コントロールのキャプションを、翻訳対象の言語で設定し
> ます。
> そうすると、Formのresxというファイルに、多言語版のファイルが追加されます。

> この対応は、最後に翻訳するときにやればいいので、開発中は気にしなくていい
> ですね。
>
> もう1つのメッセージ等で使う文字列の翻訳ですが、
> こちらは、ファイルの追加からアセンブリリソースファイルを追加し、そこで文
> 字列を定義して
> ソース内はその文字列を参照するようにします。
> (アセンブリリソースファイルは自動的にクラスを生成してくれるのでソースか
> らは、

>  リソースファイル名.名前 で呼び出せます。)
>
> 中国語版を作るなら、さらにアセンブリリソースファイルを追加し、ファイル名を
> (もとのアセンブリリソースファイル名).zh-Hans.resx ←簡体字の例です。
> で付けて、各文字列を中国語で定義すれば、完了です。
>
> 普通は端末のカルチャに応じて勝手に切り替わりますが、
> プログラムから明示的に言語を切り換える場合は
> Thread.CurrentThread.CurrentUICulture = new
> System.Globalization.CultureInfo("ja");
> みたいにやると、切り替わってくれるみたいです。
>
> なので、開発中は、UI以外の文字列リソースをリソースファイルを参照するよう
> にしておけばOKかと。
>
> 以上です。
>
>

> 2011年5月19日12:10 たろサ <taro...@gmail.com <mailto:taro...@gmail.com>>:


>
>  山本です。
>
>  C#で質問なのですが、C#でプログラムを作ることになりまして、とりあえず日
> 本語環境なのですが、用途が生産装置のコントロールソフトで、将来、中国など
> に持っていくことも考えられるというのです。
>
>  中国にもって言った場合は、中国語の表示に変えることになるという話しなの
> ですが、プログラムするときに、どのように作っておけば、多言語対応が楽にな
> るのでしょうか。
>
>  テクニックがありましたら、教えてください。
>
>  よろしくお願いします。
>
>  Androidの話でなくてすいません。Androidの多言語化は、言語ごとのxmlを用
> 意する感じです。
>
>
> --
> 山本三七男 (Minao Yamamoto) ---------------- ハンドル:たろサ -----

> E-Mail: taro...@gmail.com <mailto:taro...@gmail.com>

Masuzawa

unread,
May 26, 2011, 8:33:03 PM5/26/11
to androidi...@googlegroups.com
どうも、増澤です。

WPFならできますが、通常のWindowsFormsでは無理ですね。
描画する方法もありますが、
まあ、イメージを張り付けるのが一番早いかと。

2011年5月27日1:57 たろサ <taro...@gmail.com>:

Reply all
Reply to author
Forward
0 new messages