SetUICulture()のこのコードは何をしますか?

自分のプログラムが世界中の誰かのコンピュータで正しく動作するようにしたいとします。

私はこれがどれくらいの労力を要するかを知りませんが、コンソールアプリケーションを使用する方が簡単なので、MSTest.exeエントリーポイントを逆コンパイルして起動しました。

private static void SetUICulture()
{
    Thread.CurrentThread.CurrentUICulture = 
        CultureInfo.CurrentUICulture.GetConsoleFallbackUICulture();
    if (
        (
            (Console.OutputEncoding.CodePage != 0xfde9) && 
            (Console.OutputEncoding.CodePage != 
             Thread.CurrentThread.CurrentUICulture.TextInfo.OEMCodePage)
        ) &&
        (Console.OutputEncoding.CodePage != 
         Thread.CurrentThread.CurrentUICulture.TextInfo.ANSICodePage)
    )
    {
        Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");
    }
}

ここでは、 “フォールバック”文化を見て、それが
“十分に良い”ことを妨げるいくつかの条件を見て、それが私たちに英語に設定されることを意図しています。

0xfde9は何をしていますか?

これは効果的にコンソールアプリケーションを国際化していますか?

ベストアンサー

0xfde9コードページはUTF-8です。コードページにUTF8、OEM、またはANSIがない場合は、その言語を英語に設定します。

これで、アプリケーションが必要とする.Net
Frameworkのバージョンが存在することを前提に、アプリケーションは正しく動作するはずですが、エンドユーザーがアプリケーションがそのアプリケーションに何を伝えようとしているのかを理解できるかどうかが問題です。

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です