Question

やじゅ on Fri, 07 Mar 2014 01:52:47


Windows 7の英語版OSを日本語化にしました。
地域と言語(intl.cpl)の「形式」「場所」「システムロケール」の3箇所は日本(語)としており、
基本的な部分は日本語で表示されています。

気になったのが、ClickOnceの自動更新時のダイアログ画面が英語で表示されることです。
他のWindows 7の日本語版の場合には日本語で表示されます。

ClickOnceの機能としては問題ありません。
出来れば日本語で表示されるようにしたいのですが、何かインストールや設定が必要でしょうか。

よろしくお願いします。



Sponsored



Replies

Azulean on Fri, 07 Mar 2014 15:51:46


システムアカウントが英語設定のままなのではないでしょうか。試しに、日本語版 Windows 7 で英語設定をシステムアカウントにコピーしたらインストール確認ダイアログが英語になりました。
以下を参考に日本語設定をコピーすれば改善するかもしれません。

http://windows.microsoft.com/ja-jp/windows/apply-regional-language-settings-reserved-accounts#1TC=windows-7

(参考:システムアカウントが英語のままだと、起動時の Starting Windows とか、ログオン直後の Welcome とか、日本語になるところが英語のままになります)

やじゅ on Mon, 10 Mar 2014 00:53:52


システムアカウントが英語設定のままでしたので、ご提示されたサイトを参考に
設定し、Welcomeがようこそに変わりました。
これならとClickOnceを動かしましたが、相変わらず英語表記のままでした。

いったい、どこの言語の設定を参考にしているんだろう。

Azulean on Mon, 10 Mar 2014 01:00:36


念のためですが、.NET Framework の Language Pack は入っているのですよね?
手元で確認する限り、.NET Framework の日本語の Language Pack が入っていて、システムアカウントの設定が合致する場合のみ、日本語で表示されるようでした。
(初回、.NET Framework インストール時に英語環境だった場合、Language Pack はデフォルトで入りませんので見逃している可能性を考慮しました)

やじゅ on Mon, 10 Mar 2014 05:19:51


下記サイトで確認しましたが、日本語Language Packはインストール済みです。

.NET Frameworkのバージョンを確認する方法
http://www.atmarkit.co.jp/ait/articles/1210/26/news086.html

.NET Framework 2.0 Service Pack 2 がインストール済みです
 日本語Language Pack(Service Pack 2)がインストール済みです
.NET Framework 3.0 Service Pack 2 がインストール済みです
 日本語Language Pack(Service Pack 2)がインストール済みです
.NET Framework 3.5 Service Pack 1 がインストール済みです
 日本語Language Pack(Service Pack 1)がインストール済みです

Azulean on Mon, 10 Mar 2014 05:22:41


最初に確認しておくべきだったのかもしれませんが、.NET 2.0 - 3.5 の範囲のアプリケーションということでしょうか?
また、発行に使っている開発環境は Visual Studio のどのバージョンでしょうか。

Windows 7 ですので、.NET 2.0 - 3.5 の Language Pack は Windows の言語パックに含まれています。
私が言語パックの有無を確認させていただいたのは、.NET 4.0 以降かと考えていたためです。

*追記部分を削除しました。 (14:40 JST)
上記 URL のコマンドを実行すると .NET 4.0 検出もされているようなので間違った指摘であったため。

追記2 (15:11 JST)
その後、思いつくいくつかを試していたのですが、うまく再現できず、これ以上の私からのコメントは難しそうです。すみません。。。

試した事柄
・初回インストール時に言語が違った場合に再現するのではないか? →再現せず。
・発行時の言語を変えたら再現するのではないか? →再現せず

やじゅ on Mon, 10 Mar 2014 07:44:06


Azulean さん

>NET 2.0 - 3.5 の範囲のアプリケーションということでしょうか?
NET 2.0のアプリケーションです。
>また、発行に使っている開発環境は Visual Studio のどのバージョンでしょうか。
Visual Studio 2010です。

>その後、思いつくいくつかを試していたのですが、
>うまく再現できず、これ以上の私からのコメントは難しそうです。すみません。。。
いろいろ試して頂きありがとうございますm(_ _)m

一旦ClickOnceのアプリケーションをアンインストールして再インストールしてみましたが
インストール段階から英語表記です。結果、変わらずです。


ひらぽん on Mon, 10 Mar 2014 09:28:19


もしかして以下と同じ現象なのかも知れません。

クリックワンスのダイアログが英語で表示される

以前DELLのVostro(確か220だった筈(汗) Windows7 x64 プリインストールマシンにCilckOnceアプリケーションをインストールしたところ、上記記事と同じく自動更新ダイアログだけが英語で表示されることがありました。

今まで数十台の端末にインストールしてきましたが当該現象は発生してませんでしたが、現象が発生したのがイベント出展時のプレゼン用マシンで、しかも新品を会場で開封し、最初にインストールしたアプリがClickOnceアプリケーションだっただけに、たいへん驚いた覚えがあります。

マシン固有の問題かと思ってましたが、同時期他社に導入したDELLのVostroでも同様の現象が発生、そちらのマシンはその後Windows8.1にアップグレードしたら問題は発生しなくなったと報告を受けています。

プレゼン用マシンもWindows8.1にアップグレードしており現象が発生しなくなっているため、原因の特定はできておりません。<(_ _)>

何かの参考になれば幸いです(汗

Azulean on Mon, 10 Mar 2014 11:37:02


一つ可能性を思いついたのでダメ元で書いておきたいと思います。

可能性:言語パックが壊れている

"C:\windows\microsoft.net\Framework\v2.0.50727\JA\System.Deployment.resources.dll" が読めなくなっている or ファイルが存在しなくなっているのなら英語で表示されそうですけれど…。


追記(3/11 7:13 JST)
よく考えると GAC に入っているので C:\windows\assembly\GAC_MSIL\System.Deployment.resources\2.0.0.0_ja_b03f5f7f11d50a3a みたいなフォルダーにあるものがあるかどうか、壊れていないかどうかかもしれません。

やじゅ on Fri, 14 Mar 2014 06:30:44


>C:\windows\assembly\GAC_MSIL\System.Deployment.resources\2.0.0.0_ja_b03f5f7f11d50a3a みたいなフォルダー
フォルダーはありますね、壊れているか判断つかないですが。

自分なりに調べてしました。結果はまだ駄目ですね。
【ClickOnceの仕組みを調査】
第2回 ClickOnceの仕組みを理解しよう 
http://www.atmarkit.co.jp/ait/articles/0603/11/news018.html
ClickOnceのエンジンは、dfsvc.exe
リソースを取得するためにResourceManagerを使用し、CurrentUICultureにより決定する

Microsoft の実装では、ResourceManager は実行アセンブリにデフォルトカルチャ、サテライトアセンブリに
固有カルチャのリソースが導入されていることを前提するため、en をデフォルトカルチャとしたアセンブリに
対して ja カルチャを指定すると、日本語サテライトアセンブリが存在しない限り en へフォールバックする。

【現在の値】
レジストリ 0409:英語 / 0411:日本語 0x411→1041
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MUI\UILanguages
en-US / ja-JP
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Language
Default 0411 / InstallLanguage 0409
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\Locale
既定 0409 / Default 0411

PS> get-culture
LCID             Name             DisplayName
----             ----             -----------
1041             ja-JP            日本語 (日本)
PS> get-UICulture
LCID             Name             DisplayName
----             ----             -----------
1041             ja-JP            日本語 (日本)
PS> [System.Threading.Thread]::CurrentThread.CurrentUICulture
LCID             Name             DisplayName
----             ----             -----------
1041             ja-JP            日本語 (日本)
PS > [System.Threading.Thread]::CurrentThread.CurrentCulture
LCID             Name             DisplayName
----             ----             -----------
1041             ja-JP            日本語 (日本)

値を見る限りは、ダイアログは日本語になっても良さそうなのものなんですが、
何か壊れているのか、日本語が無いと判断され英語となってしまっているって感じかな。

lesser panda on Thu, 27 Mar 2014 07:26:19


こんにちわ。

横槍ですいません。当方DELL VOSTRO 3570 Win7 64bitですが、1年ほど前から同様の現象で困っていました。

もっともテスト用の機械なので、未解決のまま無視していましたが解決策があるのであれば知りたいです。

.netは2.0 Visual Studioは2005です。