WinFormアプリの多言語対応(3)
どもです。
前回、前々回と、C#/WinFormでの多言語対応について書いてきました。その中で、ふと気になったことがありました。それは、別のバイナリ(アセンブリ)には、言語設定が引き継がれるのか?ということです。もう少し言うと、DLLの言語設定(カルチャの指定)は、呼び出し元(.exe)と一致するのか?ということです。そこで今回のエントリは、呼び出し元の言語設定(カルチャの設定)が別DLLのカルチャに反映されるか否かについて調べてみます。
1. 開発環境
毎度ですが、開発環境です。これは、前回と全く同じです。
項目 | 内容 |
---|---|
OS | Windows10 Pro(22H2) |
CPU | i7-8700 |
メモリ | 16GB |
IDE | Visual Studio Community 2022 Version 17.7.6 |
.NET | .NET Framework 4.8.1 |
2. 調査方法
WinFormを表示するDLL(C#)を作成し、そのDLLに表示される内容/言語が、呼び出し元(の言語設定(カルチャ))と一致するか確認することで、調査とします。
3. DLLの実装
基本的には、前回、前々回で紹介してきたWinFormを流用します。目新しい実装は何一つありません。そのため、詳細は割愛します。
4. 結果
結果を示します。
呼び出し元(.exe)のカルチャにjaを指定した場合、DLLのFormの表示は以下のようになりました。
次に、呼び出し元(.exe)のカルチャをenに指定した場合の結果が、以下です。
見ての通り、全ての画面において言語が統一されていることが確認できます。
5. まとめ
今回は、別のバイナリ(アセンブリ)には、言語設定が引き継がれるのか?について、調査を行いました。その結果、引き継がれるということが確認できました。
本音を言えば、もっと詳細を調査、結果を書きたいですのですが、今回は記事を公開することを優先してみました。詳細の調査は、引き続き継続しようと思います。
ではっ!
ex. 公開しています
今回のコードは、GitHubにて公開しています。適宜参照してみてください。
ディスカッション
コメント一覧
まだ、コメントがありません