0

ローカライズされた Web サイトがあり、LINQ を使用していくつかのプロシージャを呼び出しています。これらのプロシージャには、言語切り替え後に翻訳する必要があるテキストが含まれています。これは私のプロシージャコールの1つです:

public static IQueryable VyhledejCPN()
        {
            LINQDataContext db = new LINQDataContext();
            IQueryable result = db.spSearchPartNumber(PartNumber).AsQueryable();
            return result;
        }

そして、私はこのようなものが必要です:

if (localize == english)
            {
                public static IQueryable VyhledejCPN()
                    {
                        LINQDataContext db = new LINQDataContext();
                        IQueryable resultEN = db.spSearchPartNumberEN(PartNumber).AsQueryable();
                        return resultEN;
                    }
            }

            else if (localize == czech)
            {
                public static IQueryable VyhledejCPN()
                    {
                        LINQDataContext db = new LINQDataContext();
                        IQueryable resultCZ = db.spSearchPartNumberCZ(PartNumber).AsQueryable();
                        return resultCZ;
                    }
            }

それとも何か他の方法がありますか?

どうもありがとうございました。

4

1 に答える 1

1

クライアントのカルチャを知りたい場合は、HttpRequest.UserLanguagesProperty (Accept-Language header言語優先度のブラウザの ) を使用できます。

クライアントの言語設定のソートされた文字列配列を取得します。

言語名はブラウザによって提供され、すべての可能なコードの決定的なリストはありません。通常、これらは、言語の 2 文字のコード、ハイフン、カルチャの 2 文字のコード (米国英語の場合は「en-us」、カナダ フランス語の場合は「fr-ca」など) で構成されます。

int count;
String[] userLang = Request.UserLanguages;    

for (count = 0; count < userLang.Length; count++) 
{
   Response.Write("User Language " + count +": " + userLang[count] + "<br>");
}

だからあなたの場合:

if (Request.UserLanguages.Contains("en-US"))
{
    // ...
}
于 2013-04-17T07:01:44.743 に答える