1

環境 - C#、.NET 4.0、WPF、VS2010

複数のカルチャ/言語をサポートする単純な Windows アプリケーションがあります。ユーザーが日本語、韓国語、中国語 (簡体字)、または中国語 (繁体字) を選択すると、Windows XP はグリフの代わりに変な見た目の「四角」または「ブロック」文字を表示します。この問題は、Windows Vista、7 または 8 では発生しません。

解決策として、「コントロール パネル | 地域と言語のオプション」に移動し、「言語」タブを選択して、「東アジア言語用のファイルをインストールする」ボックスをチェックするようにアドバイスされました。

そして、それは問題を解決しました...私のマシンで。「日本語」を選択した日本のユーザーは、必要なリソースが既にインストールされている可能性が高く、この問題は発生しない可能性が高いことを理解しています。

しかし...アプリケーションを実行している Windows XP マシンに東アジア言語がインストールされているかどうかを検出する機能が必要です。そのような場合、言語をインストールするように通知するメッセージ ボックスを表示できます... または、日本語、韓国語、中国語 (簡体字)、および中国語 (繁体字) のカルチャ/言語の選択を非表示にすることもできます。

では、Windows XP に必要な東アジア言語ファイルがインストールされているかどうかを確認するにはどうすればよいでしょうか? 私は .NET ソリューションを好みますが、必要に応じて API 呼び出しを行います。

JP

4

3 に答える 3

1

をチェックする代わりに、関数呼び出しを使用してInputLanguageチェックする必要があります。CultureInfoGetCultures

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.getcultures.aspx

文書化InstalledWin32Culturesされているように、 がパラメーターとして使用されている場合、この関数は必要なものを返す必要があります。

http://msdn.microsoft.com/en-us/library/system.globalization.culturetypes.aspx

于 2012-05-20T01:27:53.720 に答える
0

次のように繰り返すことができます。

        foreach (System.Windows.Forms.InputLanguage p in System.Windows.Forms.InputLanguage.InstalledInputLanguages)
            Console.WriteLine(p.Culture.EnglishName);

探しているものが表示されます。

于 2012-05-19T21:48:19.340 に答える
0

私はこれを試したことはありませんが、東アジアの言語で何かを描き、その結果を調べてみたいという単純な傾向があります。箱はつきましたか?

編集:どうやら、テキストを描画してからコードで結果を調べるつもりだったことに気付かなかった人もいるようです。私は人間の眼球検査を意味していませんでした!

于 2012-05-19T21:58:16.787 に答える