DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Japanese Language Packで日本語化されない

環境/言語:[環境(WindowsXp(Sp2) .NET Framework1.1 /Sp1]
分類:[.NET]

いつも大変お世話になっております。

現在VisualBasic.NETにて開発したプログラムを新規PC(WindowsXP(SP2))に
インストールして動作確認を行なっているのですが、日本語メッセージが
うまく表示されません。

開発環境のないWindowsXP(SP2)に以下のインストールを行なったのですが、
メッセージが英語で表示されます。
 @.NET Framework Version 1.1 のインストール
 A.NET Framework 1.1 Service Pack 1.0 のインストール
 BJapanese Language Pack(1041)のインストール確認

MicroSoftのサイトをみてもどこのサイトを見てもBをインストールすると日本語になる
と記述されていますが、例えば、フォルダのアクセスで存在しないFDなどを指定する
と(本来は[デバイスが準備されてません])[device unavailavle]と表示されます。
2台に試して2台とも同様です。(Aはなくても同様)
WindowsXp(SP1)にインストールした場合は問題なく日本語が表示されます。

WindowsXP(SP2)だと問題があるのでしょうか?(私だけ。。?)
どなたか同じような現象はででていないでしょうか?

宜しくお願い致します。
英語版Windowsだとか、.NETのバージョンが違うとかないんですよね?
なんだろ
x86用ではないとか。
■No14966に返信(まどかさんの記事)

>英語版Windowsだとか、.NETのバージョンが
は日本語版WindowsXPで.NETのバージョンは2003(FrameWork1.1)です。

でWindowsXP(SP1)では同一のインストールを行なって日本語表示されるのに
対して、WinodowsXp(SP2)では英語表示となっています。

現在はXP(SP2)が怪しいと思っているのですが、「WinodowsXp(SP2)で上記条件で
日本語表示できてます。」という方がいれば別の原因かなと思い相談させて頂いて
います。XP(SP2)はあまりいい噂を聞かない為、疑っています。。。

>x86用ではないとか。
はすみません、調べ方を教えて下さい。
ちなみにWindows Server 2003 版の「A.NET Framework 1.1 Service Pack 1.0 」
ではないことは確認済みです。
■No14964に返信(浦島タロウさんの記事)
>  @.NET Framework Version 1.1 のインストール
>  A.NET Framework 1.1 Service Pack 1.0 のインストール
>  BJapanese Language Pack(1041)のインストール確認

もう一度アンインストールしてやり直してみたらいかがでしょうか?
私は@->B->Aの順に行うと思いますが、その辺りが影響しているのかもしれません???
>現在はXP(SP2)が怪しいと思っているのですが、「WinodowsXp(SP2)で上記条件で
>日本語表示できてます。」という方がいれば別の原因かなと思い相談させて頂いて
>います。XP(SP2)はあまりいい噂を聞かない為、疑っています。。。

まったく問題ありません。
XPSP2はセキュリティが高くなっていいと思いますけどね。
■No14975に返信(中博俊さんの記事)
> まったく問題ありません。
> XPSP2はセキュリティが高くなっていいと思いますけどね。

追伸でWindowsXP(SP2)のPCでVisual Studio.NET 2003をインストールしているPCでは
問題なく日本語が表示されています。ということは開発版にあってFramework1.1にない
ツールでしょうか?

「アプリケーションの追加と削除」を見て気になると言えば、「Visual J#.NET Japanese Language Pack」くらいですが。。。(あんまり関係はなさそうですが。。)
> 「アプリケーションの追加と削除」を見て気になると言えば、「Visual J#.NET Japanese Language Pack」くらいですが。。。(あんまり関係はなさそうですが。。)

Visual J# .NET Japanese Language Pack は
Visual J# .NET 再配布可能パッケージがインストールされていなくてもインストールできちゃいますよ。

Microsoft .NET Framework 1.1
Microsoft .NET Framework 1.1 Hotfix ( KB886903)
Microsoft .NET Framework 1.1 Japanese Language Pack
の 3つが見つかりますか?
■No14998に返信(通りすがりさんの記事)
> Microsoft .NET Framework 1.1
> Microsoft .NET Framework 1.1 Hotfix ( KB886903)
> Microsoft .NET Framework 1.1 Japanese Language Pack
> の 3つが見つかりますか?
今、入っているのは以下の3つです。

 @.NET Framework Version 1.1
 A.NET Framework 1.1 Service Pack 1.0
 BJapanese Language Pack(1041)

> Microsoft .NET Framework 1.1 Hotfix ( KB886903)
は入っていませんがこれの影響??でしょうか?

これはA.NET Framework 1.1 Service Pack 1.0が入っていると
インストールできません。A.NET Framework 1.1 Service Pack 1.0の
インストール後に入れるべきでしょうか?
■No15015に返信(浦島タロウさんの記事)
> ■No14998に返信(通りすがりさんの記事)
>>>>Microsoft .NET Framework 1.1 Hotfix ( KB886903)
> は入っていませんがこれの影響??でしょうか?
>
> これはA.NET Framework 1.1 Service Pack 1.0が入っていると
> インストールできません。A.NET Framework 1.1 Service Pack 1.0の
> インストール後に入れるべきでしょうか?

文面にあやまりがありましたので訂正します。
A.NET Framework 1.1 Service Pack 1.0はMicrosoft .NET Framework 1.1 Hotfix ( KB886903)が入っていると
インストールできません。
A.NET Framework 1.1 Service Pack 1.0の インストール後にMicrosoft .NET Framework 1.1 Hotfix ( KB886903)を
入れるべきでしょうか?
> 文面にあやまりがありましたので訂正します。
> A.NET Framework 1.1 Service Pack 1.0はMicrosoft .NET Framework 1.1 Hotfix ( KB886903)が入っていると
> インストールできません。
> A.NET Framework 1.1 Service Pack 1.0の インストール後にMicrosoft .NET Framework 1.1 Hotfix ( KB886903)を
> 入れるべきでしょうか?

日本語表示とは直接関係は無いです。
# KB886903 は SP1 用で、SP1適用前ならば KB886904 でしょう。
# 入れておいたほうが望ましいとは思いますけど。

SP1 は 「アプリケーションの追加と削除」に表示されなかったと思います。

trapemiya さんのいうとおり、入れる順番は本来
@->B->A
のとおりですが、
@->A->B
でも日本語のメッセージに置き換わることを確認しています。

ところで

>(本来は[デバイスが準備されてません])[device unavailavle]と表示されます。

は、language pack がうまく当たっていないというのとは違うような気がします。

日本語版Windows + language pack
「アプリケーションのコンポーネントで、ハンドルされていない...(略)
デバイスの準備ができていません。」
ですが、日本語版Windows + language pack を当てない場合
「An unhandled exception has occurred in your application... (略)
デバイスの準備ができていません。」
と表示されるのではないでしょうか。
■No15024に返信(通りすがりさんの記事)
>
> 日本語版Windows + language pack
> 「アプリケーションのコンポーネントで、ハンドルされていない...(略)
> デバイスの準備ができていません。」
> ですが、日本語版Windows + language pack を当てない場合
> 「An unhandled exception has occurred in your application... (略)
> デバイスの準備ができていません。」
> と表示されるのではないでしょうか。

通りすがりさんの言う通りでした。大変、お騒がせ致しました。
結果から言いますと、 Microsoft .NET Framework 1.1 Japanese Language Pack
は正しく日本語を表示していました。
強制的にエラーを発生させ、 Microsoft .NET Framework 1.1 Japanese Language Packをアンインストール時と比べて見ると
エラーは日本語で表示されていたことが分かりました。


言い訳ながら今回の経緯を纏めますと事の発端はDriveListBoxで存在しないドライブを選択した場合に、
「device unavailavle a:\」(Err=68)と表示されていたことから日本語表示されないと騒いでおりました。
しかしながら、通りすがりさんの言われていることを見て調査しなおした所、このコンポーネントは
「Microsoft.VisualBasic.Compatibility.VB6.DriveListBox」となっていることが分かりました。
DriveListBoxは.NETではサポートされなくなっている為、エラーメッセージを英語で返しても不思議はないと分かりました。
ちなみに DriveListBoxを使用せずにErr.Rase(68)としてErr.Descriptionで表示すると正しく日本語で表示されました。
DriveListBoxのイベント内で発生した内容をそのままエラーメッセージを置き換えることで解決できました。
Err.Description = ErrorToString(Err.Number)

大変、お騒がせして申し訳ございませんでした。DriveListBoxがVB6のコンポーネントだと気付きませんでした!!
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板